I recently decided to give modding Fallout 2 another go and redid the hours-long routine of finding tutorials and modding tools, relearning them, etc. etc. Anyway, one recurring complaint has been that there aren't really any tutorials of intermediate difficulty. As in, there's the standard beginner stuff on compiling, and so on, and some very in depth stuff, but nothing on what you can actually do once you've set everything up in the first place. Specifically, there's (as far as I can tell) no tutorials on doing what everyone wants to do the second they start modding fallout: making weird extra party members and sending them into battle. The most common advice is to just copy what the designers did with existing party member x (which any beginner will know is nigh impossible). Now, I'm not much more than a beginner myself, so part of the goal of this tutorial is to hopefully get some pointers on which step is wrong/unnecessary/whatever (hence the attempt part). Also, I'm assuming you already know the absolute basics. Anyway, without further ado: Let's say you want to make Lucas in Arroyo (the fisticuffs guy) a potential party member, what to do? 1: Right now Lucas doesn't have his own prototype (he's just another villager, while party members need to be *unique*), so you need to go to the critter proto folder, copy the villager proto file (i.e. 00000003.pro) and rename this copy to an available slot (e.g. 00000484.pro), which you have to also add at the end of the critter.lst file. Problem is, right now the proto file still "thinks" it's the old one, so use FUCK or some other critter changing program and change the ID number to 484 (and any other parameters you want to change of course). 2: Now we should give this unique little prototype a name. Open the critrpid.h header file and add Code: #define PID_LUCAS (16777700) (remember that pids are the proto number + 16777216) 3: Now go to the party.h header file and just start copying, only with lucas instead op party member x. So, instead of Code: #define Sulik_Ptr party_member_obj(PID_SULIK) you do Code: #define Lucas_Ptr party_member_obj(PID_LUCAS) etc. 4: Now go to the individual script file (i.e. acfist.ssl in the mapper scripts) and add Code: #define lucas_joins_party party_add_self; \ critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,TEAM_PLAYER) and put lucas_joins_party at whichever point (e.g. in converstation) you want him to come in your party. Now put in some extra local variables you will need: Code: #define LVAR_WAITING (7) #define LVAR_FOLLOW_DISTANCE (8) #define LVAR_TEAM (9) #define LVAR_Joined_Party_Before (14) #define PARTY_NODE_X Node1000 Now add this line to the beginning of procedure map_enter_p_proc: Code: begin party_member_map_enter; if (Lucas_In_Party) then begin //do nothing end else... etc. so he doesn't join the arroyo team everytime you enter a map. Then at critter_p_proc add Code: else if (Lucas_In_Party) then begin if (party_is_waiting == false) then begin party_member_follow_dude end end to get him to follow you around. Then add this line to the beginning of talk_p_proc: Code: if ( ( Lucas_Ptr != 0 ) or ( party_is_waiting ) ) then begin start_gdialog(NAME,self_obj,4,-1,-1); gSay_Start; call Node1000; gSay_End; end_dialogue; end This calls the party options screen we all love so much. Just copy the nodes 1000-1100 from an existing party member script (don't forget to also introduce them at the beginning of the script, i.e. procedure Node1000; etc.) and change the sultik_party_member_options (and similar) to party_member_default_options (same with the gear and follow variants). Finally remove the Code: critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_ARROYO_WARRIOR); line, so that you can alter the ai through the party options later on. Now you should be able to compile. 5: Go to the party.txt file and copy whichever existing party member you want him to resemble (i.e. in Lucas' case, Sulik) and add a new entry, changing the PID number and removing level up stuff so that you get: Code: [Party Member 26] ; pMLucas_PID party_member_pid=16777700 area_attack_mode=always, sometimes, be_careful attack_who=whomever_attacking_me, strongest, whomever, closest best_weapon=melee, melee_over_ranged, ranged_over_melee, unarmed chem_use=clean, stims_when_hurt_little, stims_when_hurt_lots, sometimes, anytime, always distance=stay_close, charge, snipe, on_your_own, stay run_away_mode=none, tourniquet, never disposition=none, custom, defensive, aggressive, berserk level_minimum=0 level_up_every=0 level_pids=-1 Of course, if you happen to want Lucas to be able to level up to a martial arts master later on, make some more protos, edit them in FUCK, and add each consecutive pid number to "level_pids". 6: Finally go into the mapper and replace Lucas' villager prototype with your new prototype, give him one of Sulik's AI's (i.e. Berserk or Aggressive or whatever, it's just the default setting you can change) and give him the acfist.int script again. Now F8 and it should work swimmingly!