What each flag changes
Sightstops the NPC from noticing anything. It does not see the player, does not notice other NPCs or targets, does not witness crimes, and does not turn its head toward the player. An NPC with no field of view is not affected. (The NPC’s field of view component (NPC_FOV) is stopped from detecting anything while the flag is held.)Talkstops the player from starting a conversation with the NPC by pressing the use key. The game shows its “Can’t talk” message instead. Conversations the game forces still start, such as the NPC’s own scripted reactions, the police and robber acts, card game prompts and the black screen dialogue.Barksstops the game’s own short comments from the NPC. A bark is a quick line an NPC says by itself, such as when it is hit or when it sees a crime. The game’s own comments about hits, guitar playing, crimes and random things all stop. (It stops the NPC’sBarkStarter(including its character bark starter) and everyDialogueSystemTriggeron the NPC that has a bark conversation set. Barks that the game sends straight to the Dialogue System, without a bark starter, are not stopped. An example is the behaviour tree’s bark task.)- While
Barksis held,NpcActions.Comment(NPC actions) refuses the NPC.NpcActions.Sayis not stopped, because it does not go through the comment system. Fadestops the game from hiding the NPC when it is far away or out of view. Normally the game hides an NPC that is far from the player, and when the camera looks away, to save work. WithFadeheld, the NPC stays shown. A far-away NPC that was already hidden is shown again on the game’s next update, not at once. (It raises thehideDistanceof the NPC’s ownFadeGameObjectto one million metres. It also stops camera culling from hiding the NPC: a culled NPC is shown when you take it, and while the flag is held the game’s culling callback does nothing for it. The framework reads the privateculledflag through reflection. If the game does not have aculledbool field, the flag does nothing and the framework logs that once.)- When you release
Fade, the NPC may stay shown a little while. The framework puts the distance back, but it does not write the “out of view” flag back, so the game’s next change decides. A hidden-by-camera NPC that is out of view can stay shown until then. Movementstops the NPC from walking and from starting new activities. The NPC stays where it is. The game’s schedule does not start or change what the NPC is doing while the flag is held. This is the same hold asSetActivityEnabledon the NPC movement page. When you release, the NPC can move again. (It setsrichAI.canMovetofalseand holds the NPC’s activity, under the feature groupobenseuer.moddingframework.npccontrol. The framework setscanMovetofalseagain on every frame while the flag is held. On release,canMovecomes back as it was when you took the NPC, andtrueif the game turned movement on during the take. A mod NPC that is in a routine order is not timed out while it is held.)Movementwaits if the game has switched the NPC’s activity off. The hold is not placed while the game itself has the NPC’s activity disabled, so releasing never turns on an activity the game turned off. The hold is placed on a later frame, once the game turns the activity back on. A hold is also not placed while the NPC’s body is switched off, for example when the game has hidden it for being far away. The framework tries again each frame until it can. (The game flag isactivityDisabled, and the controller is not live while it is hidden by the fade.)- The framework only holds the NPC’s activity for
Movement. Releasing drops only the hold thatMovementplaced. Another mod’s hold on the same NPC is left alone.