I've been working on a mod to add some unique NPCs spread throughout the game. However, I want them to wear specific attributes to make them consistent. How would I have to write the code in the .npctype file to force the spawned NPC use skin color, hair color, etc. that I specify?
There are three ways to do this; 1. When building your dungeon with the NPC in it you specify a seed so that the character always spawns the same way, 2. Or you could specify what the NPC's features are in the NPC file "identity" : { "name" : "George", "gender" : "male", "hairGroup" : "hair", "hairType" : "male54", "bodyDirectives" : "?replace=ffe2c5FF=fff7ecFF?replace=ffc181FF=f9d3a9FF?replace=d39c6cFF=d3a57cFF?replace=c7815bFF=b37c5dFF", "emoteDirectives" : "?replace=ffe2c5FF=fff7ecFF?replace=ffc181FF=f9d3a9FF?replace=d39c6cFF=d3a57cFF?replace=c7815bFF=b37c5dFF", "hairDirectives" : "?replace=d9c189FF=7f5a39FF?replace=a38d59FF=5b3523FF?replace=735e3aFF=3b1f15FF" } This is an example from the NPC George who shows up at the outpost some times. 3.You could design something like the Ester, Nuru, or the Baron if you wanted some especially unique NPCs
The second method worked for me, but I do have a bit of a doubt: I also want the custom NPCs to have a specific personality, but I can't seem to be placing the line of code correctly. Would you happen to know where I should put the line that specifies the NPC's personality?
The parameters can be placed pretty much in any order on that line. This is the parameters that need to be placed to get specific poses. "personalityIdle" : "idle.2", "personalityArmIdle" : "idle.2" These specify how the NPC stands when it is not moving. The parameters call upon the frames of the body and the arms respectively, so it will help to use the frames file of a humanoid as a reference. With this you can call upon any frame used in a species animation; you could even make it look like an NPC is stuck in a swim pose with his arms flying in the air. You could create an NPC with a unique pose that is not seen in game.
I figured that one out after some experimenting as well, but what I mean is the way the NPC behaves to its surroundings and other NPCs. I want to give an NPC the anxious personality, for example.
Hmm. I think you'd want to create a .npctype file with the anxious personality and attribute it to your npc. There seems to be no API call to set that via script, so you would have to do that at the NPC creation time.
I managed to get it to work, also discovered that you can actually make custom personalities by overwriting reactions with the probability of happening. However, I'm having trouble trying to figure out the actual percentage of certain reactions happening. For example: I can make a personality react to somebody vomiting by running way or getting annoyed or laughing. I understand that the number that goes before each reaction is the chance of the reaction triggering (1.0 being 100%). Keeping this in mind, putting all three reactions at 1.0 would split the chance of triggering to about 33%, but beyond that, I just can't figure out these percentages with 1.0s.
Yes, all pools which have weights work like that. Example, suppose a pool like this: a - 3 b - 5 c - 1 3 + 5 + 1 = 9, so a will have a 3/9 chance of happening, b a 5/9 chance and c a 1/9 chance. To get it as percentages, just execute the fractions: 33.33...% + 55.55...% + 11.11...% = 99.99...% = 100%.