I can recommend Rebirth as well, it has worked well with NPC Mod for me. (Its also given me a lot of modding insight under the hood)
On a side note, khzmusik had mentioned a way to summon an NPC for a quest reward, as shown further below. But if anyone's interested, there's another way to do it that kind of surprised me but works well, by using "SpawnEnemy." The good news is these civilians and soldiers spawn, but not as actual enemies to the player. They ARE hostile to zombies, and I'm guessing raider/ bandits as well:
Here's an example of spawning 5 NPC civilians into the middle of a quest:
<action type="SpawnEnemy" id="npcTestFemaleKhzAxe" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcFemaleScrubsKhzAShotgun" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcMaleCowboyKhzDPistol" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcMaleYoung1KhzMachete" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcMaleJKhzClub" value="1" phase="3"/>
And how to summon a non-recruitable survivor soldier (that is friendly to you, but hostile to Zombies as far as i can tell). This could be a fun way to setup a battle between the army and zombies nearby that the player can join etc.
<action type="SpawnEnemy" id="survivorSoldier1TRifle" value="1" phase="3"/>
and the way to quest reward one of the NPC's per khzmusik's helpful comments earlier in the thread:
View attachment 27260
And lastly, a sample of a "Rescue some civilian survivors nearby" type quest:
<quest id="quest_Rescue">
<property name="name_key" value="quest_Rescue"/>
<property name="subtitle_key" value="quest_Rescue_subtitle"/>
<property name="description_key" value="quest_Rescue_offer"/>
<property name="icon" value="ui_game_symbol_zombie"/>
<property name="repeatable" value="false"/>
<property name="category_key" value="quest"/>
<property name="offer_key" value="quest_Rescue_offer"/>
<property name="difficulty" value="medium"/>
<objective type="RandomGoto" value="100-200" phase="1">
<property name="completion_distance" value="50"/>
<property name="nav_object" value="quest" />
</objective>
<objective type="RallyPoint">
<property name="start_mode" value="Create"/>
<property name="phase" value="2"/>
<property name="nav_object" value="rally" />
</objective>
<action type="SpawnEnemy" id="zombieFatHawaiian" value="15" phase="3"/>
<objective type="ZombieKill" id="zombieFatHawaiian" value="15" phase="3"/>
<action type="SpawnEnemy" id="npcTestFemaleKhzAxe" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcFemaleScrubsKhzAShotgun" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcMaleCowboyKhzDPistol" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcMaleYoung1KhzMachete" value="1" phase="3"/>
<action type="SpawnEnemy" id="npcMaleJKhzClub" value="1" phase="3"/>
<action type="ShowTip" value="You rescued the civilian survivors!" phase="3"/>
<property name="chainquest" value="false"/>
<reward type="Exp" value="500"/>
</quest>