Mods / Player Model NPCs

Tags:
NPC Villagers Roleplay UI
Author:
SiiMeR
Side:
Both
Created:
Aug 20th at 10:32 AM
Last modified:
Oct 3rd at 10:53 AM
Downloads:
5189
Recommended download (for Vintage Story 1.22.0-pre.1 - 1.22.7):
playermodelnpcs_1.6.0.zip  1-click install

This mod adds NPCs that look like players. An NPC can use any character model added by PlayerModelLib, wear real clothes and armor, hold items, do activities, and talk to you.

Everything can be set up in-game. The game already has a built-in dialogue system, trading functionality, and an activity editor, which I have conveniently hooked into here.

The mod has been made with performance in mind. Every NPC should have somewhere between the cost of a player and a trader. 

Features

Placing an NPC

  • Take the NPC Placer from the creative inventory and right-click a block to place an NPC there
  • The edit window opens right away
  • Only works in creative mode or with the controlserver privilege
  • To edit an NPC later, look at it (while in Creative mode) and hold Sprint + RMB, or use .npcedit 

image

The NPC editor

Four tabs:

  • Model - pick any model that PlayerModelLib has loaded and is available to you, with a size slider

 

image

 

  • Appearance - the same skin, hair, eye, and color options you get when making your own character, mostly complete in terms of components

 

image

 

  • Worn items & armor - put clothes, armor, and held items straight onto the NPC, laid out like the character (C) window

 

image

  • NPC - various options like name, dialogue, activities, trade list, max health, invulnerable, immovable, default emote (only with Emotes mod), default facing, show on map

 

image

  • NPCs use the voice selected in the Appearance editor
  • The name can stay hidden. Players see the name Stranger (configurable) until the talk reaches a step with a revealname trigger that reveals the name
  • The waypoint on the map can also stay hidden. Until the revealname trigger is used, no marker will be shown on the map.

 

Talking

  • Right-click an NPC that has a dialogue to talk to it. The NPC says a line, you pick a reply, the talk moves on, etc
  • The format is based on the vanilla JSON dialogue format
  • NPCs without a dialogue do not open a window

 

image

Dialogue editor (.dialogeditor)

A dialogue editor using the same JSON format the game uses for its dialogues. 

  • A dialogue is a list of steps. The first one in the list is where the talk starts
  • Steps can be text spoken by the NPC, or reply options by the player, or do something silently
  • Every step, and every single reply, can jump anywhere else in the list
  • Steps can remember variables (per player, per NPC, per group, or globally). Later steps can use these variables.
  • Lines can have conditions, so the same NPC could greet a stranger and a friend differently
  • Text can be plain writing or a lang key, and {playername} and {npcname} are filled in
  • A step can optionally play a sound

 

Triggers a step can fire:

  • close the talk dialogue
  • play an animation on the NPC
  • give the player an item or block
  • take an item from the player
  • spawn a creature near the NPC
  • repair the tool or the armor the player is holding
  • have the NPC attack the player
  • reveal the NPC's real name
  • unlock a story door
  • play an emote: playemote, with an optional timer after which the emote will end
  • start or stop following the player
  • open the trading dialogue (only if you set up the trading list)
  • open the hair styling menu (the one that Nadiya barbers use)
  • run a command (teleport player for example)

 

Note on the runcommand trigger: 

  • Allows you to run commands as a part of the dialogue system
  • Requires controlserver privilege to setup because you could very well brick the server with these commands
  • 2 placeholders for you to use: {playername} will be replaced with the name of the player the NPC is talking to, {playeruid} will be replaced by the current player's UID
  • Example: /tp {playername} 512 110 512

 

Most fields have hover text explaining what they do. 

Your dialogues are saved on the server in ModData\playermodelnpcs\dialogue , in the game's dialogue format. Dialogues that come with a mod can be opened and read but not overwritten.

 

image

image

Trade list editor

  • Accessed using the NPC tab
  • Basically the same as vanilla trade functionality 
  • Can be opened using the opentrade trigger (check the playermodelnpcs:example-trading for a guide on how) 
  • Custom trade lists will be stored in ModData/playermodelnpcs/dialogue/
  • Allows you to set a custom currency to be used for the shop 
    • Note that these currencies will be saved to the trade lists, so 2 NPCs using the same list will get the same currency used
  • There is also a handy "No restocking" toggle to make the shop stock finite
  • The trade item editor has a convenient slot where you can drop items in and their attributes will correctly be mapped over
    • You can also choose variants for items that define their variants using creativestacks

image

Activities (.dev aedit)

  • NPCs work with the vanilla activity system, so you can build a daily routine with the game's own .dev aedit editor and pick the collection from the NPC tab
  • Activity collections are saved to ModData\playermodelnpcs\activitycollections  
  • Comes with a idle collection, and a return to spawn collection that walks an NPC back to where it was placed when it wanders off
  • Honestly I cannot tell you much about this system because the VS devs made it

 

image

Commands

These require the gamemode permission to use, and are limited 16-64 range: 

    • /npcdebug playemote <code> [radius] - make all NPCs in range play a specific animation
    • /npcdebug lookatplayer [radius] - make all NPCs in range look at player
    • /npcdebug followplayer [radius] - makes all NPCs in a provided radius (default 16) follow the player
    • /npcdebug followstatus - see the status of how many NPCs are following you 

Dependencies

  • PlayerModelLib - the model selector is based on PML. The mod was built on v1.23.8 but most likely it works on earlier versions of PML too.

Compatibility

  • OverhaulLibLegacyCompat and Combat Overhaul Fork - if both of these mod are installed, the armor slots of CO will be rendered in the worn items & armor tab, otherwise vanilla armor slots will render.
  • Emotes - If you have the mod installed, you can choose a default emote for the NPC, and also use the playemote trigger for triggering emotes during dialogue steps
  • Carried: NPCs can be carried around if not set to Immovable

 

Future ideas

  • Compatibility with my Downed and Dead mods

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.6.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
239 Oct 3rd at 10:38 AM playermodelnpcs_1.6.0.zip 1-click install
  • Fix NPCs rotating in place
  • New runcommand dialogue trigger 
    • Allows you to run commands as a part of the dialogue system
    • Requires controlserver privilege to setup because you could very well brick the server with these commands
    • 2 placeholders for you to use: {playername} will be replaced with the name of the player the NPC is talking to, {playeruid} will be replaced by the current player's UID
    • Example: /tp {playername} 512 110 512
1.5.3 playermodelnpcs
1.22.0-pre.1 - 1.22.7
706 Sep 26th at 10:26 AM playermodelnpcs_1.5.3.zip 1-click install
  • Dialogue replies now automatically jump to the next step when (none) is selected  
  • Condition fields made wider 
  • playanimation step now uses a searchable combobox to display a list of all animations the currently selected model is able to play
    • Known issue: animations from some mods like Emotes and Carried are not playable due to how they implement their animations, so they have been filtered out
    • No longer is it possible to write a freeform animation code, the animation must actually exist
  • Trade range lowered a bit to match the actual action, otherwise it would appear to do nothing. An error is now shown when you are too far from the NPC to start trading 
  • Added an always-true condition to the example idle collection 
1.5.2 playermodelnpcs
1.22.0-pre.1 - 1.22.7
985 Sep 12th at 11:28 AM playermodelnpcs_1.5.2.zip 1-click install
  • Added an example quest dialogue (example-quest.json), a fetch quest requesting an iron falx
  • Fixed NPCs with a custom currency taking gears out of the player's inventory instead of the item they actually charge in
  • Trade items and the currency slot now keep the exact item with all the attributes
  • Every skin part the player's model has can now be styled by a hairstyler NPC. Previously, it didn't detect patched-in parts
  • Map markers now use the NPC-s name if the player knowns that
1.5.1 playermodelnpcs
1.22.0-pre.1 - 1.22.7
273 Sep 9th at 12:55 PM playermodelnpcs_1.5.1.zip 1-click install
  • Refresh trade lists automatically when they change
  • Fix item attributes check being too lax when looking for an item in player inventory
1.5.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
186 Sep 8th at 12:37 PM playermodelnpcs_1.5.0.zip 1-click install
  • New openhairstyling dialogue trigger, opens the same styling editor the Nadiya village barber uses
    • Hairstyle categories, the price per changed part and the currency it is paid in are all configurable
    • You can additionally pick which skin parts an NPC is allowed to change, either for all models or per model
  • NPCs can show themselves on the world map in a colour you pick (optionally hidden until a revealname trigger reveals them)
  • Trade list items and the giveitemstack/takefrominventory triggers now accept stack attributes as JSON
  • New Copy held item button, fills in the type, code, amount and attributes from whatever you are holding
  • New variant picker on trade items, lists every variant the item registers for the creative inventory (creativestacks to be precise)
  • Preview slot next to the item code shows the item, and also accepts items to easily setup a trade slot
  • Fixed NPCs forgetting their activity collection when they get loaded back in
  • Fixed container items in trade lists losing their contents
  • Fixed hover texts drawing on top of dialogs above them and over item tooltips
  • Searchable dropdowns (the comboboxes) show 100 matches instead of 30
  • The creative inventory hotkey now works while the NPC editor is open
1.4.2 playermodelnpcs
1.22.0-pre.1 - 1.22.7
365 Sep 3rd at 10:02 AM playermodelnpcs_1.4.2.zip 1-click install
  • Dialog editor textbox size and wrapping improvements
  • Fix clothing not being properly applied to player models that add shapes 
1.4.1 playermodelnpcs
1.22.0-pre.1 - 1.22.7
132 Sep 1st at 6:14 PM playermodelnpcs_1.4.1.zip 1-click install
  • Using perishing food as currency no longer crashes the game
  • NPC only follows behind you while you are moving
1.4.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
131 Sep 1st at 10:43 AM playermodelnpcs_1.4.0.zip 1-click install
  • New feature: trading  
    • Uses vanilla trade lists functionality 
    • Allows you to use custom currencies per trade list
    • Comes with a trade list editor
    • Allows you to mark a shop as not restocking 
    • Must be triggered from the dialogue using the opentrade trigger
  • Hopefully fixed some warnings about held items not being step-parented properly 
  • More dialogue hardening
    • If your dialogue has a next step that is not available, it not be save-able and will be ignored during execution
1.3.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
223 Aug 28th at 6:21 PM playermodelnpcs_1.3.0.zip 1-click install
  • New triggers you can use in dialogues: followplayer and stopfollowing
    • The NPCs will follow you around until you relog 
    • Having multiple NPCs following you, they will for a grid formation
    • See the example "follow" in the dialogue list on how to implement it in a conversation
  • Added dialogue validation and prevented broken dialogue from crashing your game
  • Added a "Save as..." option to the dialogue editor
1.2.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
432 Aug 21st at 9:17 PM playermodelnpcs_1.2.0.zip 1-click install
  • Emotes mod support
    • NPCs can have a default emote, picked from the NPC tab. It stops when they walk or take damage. After a while they will return to their default animation. 
    • New dialogue trigger: playemote 
      • Can be used to play any emote during a step, with an optional stop timer
      • Emotes are cleared when the dialogue box is closed
      • If the mod is not installed, vanilla emotes can still be played using this step 
  • Searchable comboboxes in more places where they make sense
  • Freshly placed NPCs now get a random model and size
  • Randomize respects game's randomizer constraints
  • New debug/fun commands: 
    • /npcdebug playemote <code> [radius]
    • /npcdebug lookatplayer [radius] 
    • Max for radius is 64, defaults to 16
1.1.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
148 Aug 21st at 12:30 PM playermodelnpcs_1.1.0.zip 1-click install
  • Dialogues are now saved to ModData/playermodelnpcs/dialogue 
    • Old dialogue will be moved there on first launch after mod update
  • Activity collections are now saved to ModData/playermodelnpcs/activitycollections
    • Otherwise they would have been wiped when you update the game to a new version
  • Editing a dialogue from the base game now creates an editable copy for you 
  • Dialogues from other mods will be picked up by the dialogues list and editor
  • Dropdowns for dialogues, creatures and animations are now searchable
  • Entity codes without a domain now resolve properly. Should fix entities not being able to be spawned
  • Dialogue JSON is read case-insensitively, meaning hand-written and vanilla files load correctly (they have some minor differences to the expected format)
1.0.2 playermodelnpcs
1.22.0-pre.1 - 1.22.7
35 Aug 21st at 7:42 AM playermodelnpcs_1.0.2.zip 1-click install

Fix mod crashing without OverhaulLibLegacyCompat

1.0.1 playermodelnpcs
1.22.0-pre.1 - 1.22.7
179 Aug 20th at 1:43 PM playermodelnpcs_1.0.1.zip 1-click install

Some small improvements

1.0.0 playermodelnpcs
1.22.0-pre.1 - 1.22.7
27 Aug 20th at 1:11 PM playermodelnpcs_1.0.0.zip 1-click install

First release

0.9.160 playermodelnpcs
1.21.0-pre.1 - 1.21.7
129 Oct 3rd at 10:52 AM playermodelnpcs_0.9.160.zip 1-click install
  • Fix NPCs rotating in place
  • New runcommand dialogue trigger 
    • Allows you to run commands as a part of the dialogue system
    • Requires controlserver privilege to setup because you could very well brick the server with these commands
    • 2 placeholders for you to use: {playername} will be replaced with the name of the player the NPC is talking to, {playeruid} will be replaced by the current player's UID
    • Example: /tp {playername} 512 110 512
0.9.154 playermodelnpcs
1.21.0-pre.1 - 1.21.7
187 Sep 26th at 10:39 AM playermodelnpcs_0.9.154.zip 1-click install
  • Dialogue replies now automatically jump to the next step when (none) is selected  
  • Condition fields made wider 
  • playanimation step now uses a searchable combobox to display a list of all animations the currently selected model is able to play
    • Known issue: animations from some mods like Emotes and Carried are not playable due to how they implement their animations, so they have been filtered out
    • No longer is it possible to write a freeform animation code, the animation must actually exist
  • Trade range lowered a bit to match the actual action, otherwise it would appear to do nothing. An error is now shown when you are too far from the NPC to start trading 
  • Added an always-true condition to the example idle collection 
0.9.153 playermodelnpcs
1.21.0-pre.1 - 1.21.7
261 Sep 13th at 4:32 PM playermodelnpcs_0.9.153.zip 1-click install

Attempt to fix hairstyling not applying

0.9.152 playermodelnpcs
1.21.0-pre.1 - 1.21.7
11 Sep 12th at 11:43 AM playermodelnpcs_0.9.152.zip 1-click install
  • Added an example quest dialogue (example-quest.json), a fetch quest requesting an iron falx
  • Fixed NPCs with a custom currency taking gears out of the player's inventory instead of the item they actually charge in
  • Trade items and the currency slot now keep the exact item with all the attributes
  • Every skin part the player's model has can now be styled by a hairstyler NPC. Previously, it didn't detect patched-in parts
  • Map markers now use the NPC-s name if the player knowns that
0.9.150 playermodelnpcs
1.21.0-pre.1 - 1.21.7
178 Sep 8th at 10:37 AM playermodelnpcs_0.9.150.zip 1-click install
  • New openhairstyling dialogue trigger, opens the same styling editor the Nadiya village barber uses
    • Hairstyle categories, the price per changed part and the currency it is paid in are all configurable
    • You can additionally pick which skin parts an NPC is allowed to change, either for all models or per model
  • NPCs can be put on the world map in a colour you pick (optionally hidden until a revealname trigger reveals them)
  • Trade list items and the giveitemstack/takefrominventory triggers now take stack attributes as JSON
  • New Copy held item button, fills in the type, code, amount and attributes from whatever you are holding
  • New variant picker on trade items, lists every variant the item registers for the creative inventory (creativestacks to be precise)
  • Preview slot next to the item code shows the item, and also accepts items to easily setup a trade slot
  • Fixed NPCs forgetting their activity collection when they get loaded back in
  • Fixed container items in trade lists losing their contents
  • Fixed hover texts drawing on top of dialogs above them and over item tooltips
  • Searchable dropdowns (the comboboxes) show 100 matches instead of 30
  • The creative inventory hotkey now works while the NPC editor is open
0.9.142 playermodelnpcs
1.21.0-pre.1 - 1.21.7
186 Sep 3rd at 10:19 AM playermodelnpcs_0.9.142.zip 1-click install
  • Dialog editor textbox size and wrapping improvements
  • Fix clothing not being properly applied to player models that add shapes 
0.9.141 playermodelnpcs
1.21.0-pre.1 - 1.21.7
121 Sep 1st at 6:12 PM playermodelnpcs_0.9.141.zip 1-click install
  • Using perishing food as currency no longer crashes the game
  • NPC only follows behind you while you are moving
0.9.140 playermodelnpcs
1.21.0-pre.1 - 1.21.7
13 Sep 1st at 11:16 AM playermodelnpcs_0.9.140.zip 1-click install
  • New feature: trading  
    • Uses vanilla trade lists functionality 
    • Allows you to use custom currencies per trade list
    • Comes with a trade list editor
    • Allows you to mark a shop as not restocking 
    • Must be triggered from the dialogue using the opentrade trigger
  • Hopefully fixed some warnings about held items not being step-parented properly 
  • More dialogue hardening
    • If your dialogue has a next step that is not available, it not be save-able and will be ignored during execution
0.9.120 playermodelnpcs
1.21.0-pre.1 - 1.21.7
21 Aug 21st at 11:09 PM playermodelnpcs_0.9.120.zip 1-click install
  • Emotes mod support
    • NPCs can have a default emote, picked from the NPC tab. It stops when they walk or take damage. After a while they will return to their default animation. 
    • New dialogue trigger: playemote 
      • Can be used to play any emote during a step, with an optional stop timer
      • Emotes are cleared when the dialogue box is closed
      • If the mod is not installed, vanilla emotes can still be played using this step 
  • Searchable comboboxes in more places where they make sense
  • Freshly placed NPCs now get a random model and size
  • Randomize respects game's randomizer constraints
  • New debug/fun commands: 
    • /npcdebug playemote <code> [radius]
    • /npcdebug lookatplayer [radius] 
    • Max for radius is 64, defaults to 16
0.9.1 playermodelnpcs
1.21.0-pre.1 - 1.21.7
21 Aug 20th at 3:32 PM playermodelnpcs_0.9.1.zip 1-click install

1.21 compat

Disclaimer

By downloading a mod you consent to our Terms of Use.

We tell you this specifically because we want to make sure you are aware that we cannot validate every mod, and you are responsible for any damages you might incur by installing or loading mods.

This prompt will not be shown to you again (for the current browser session) if you proceed.


134 Comments (oldest first | newest first) (threaded | flat)

Jorrit, 1 day ago

Amazing work! Really good mod
Can an npc be duplicated somehow?

Scrublord1013, 1 day ago

maybe i am severely misunderstanding the activities system but everytime i give a goto command it gives coordinates at the edge of the world. no matter the coordinate i set the npc will always walk to the edge. if anyone can help me figure out why i would appreciate it.

Zeekakkeloebes, 2 days ago

Is it possible to make an NPC force a player into a .charsel? I'd specifically need a .charsel, not an .allowcharselonce, because I'd want my players to only be able to change their class at that NPC instead of banking the allowed charsel and then using it later.

SteelCryptid, 3 days ago (modified 3 days ago)

Incredible mod! So far I don't think I'm having too much trouble figuring it out, BUT...

I'm having trouble with branching dialog? I can ask my NPC how he's doing, he should give one of his three moods/three lines, but the player options are from the next dialog in line rather than the dialog I pointed it at. Am I doing something wrong?

Gadiel, 5 days ago (modified 4 days ago)

Amazing mod, im implementing this for my RP server. Thanks very much for all your hardwork.

I have some question or suggestion, is there anyway to do quests for my users using this mod? Im trying to play with triggers o dialogues, but for example, a daily quest o something like that may be possible? 

Thanks!

Khana, 5 days ago

for some reason my comments wernt showin previously but i see them and ur reply now. sadly ur ref pics on this page do not show for some reason and its jst a big purple box sayin unavailable. iv managed to make greeter nocs at least but still cant make a farmer or anything that DOES something.

Grandfather, Oct 4th at 11:39 AM (modified Oct 4th at 11:39 AM)

Hello, SiiMeR!

I have continued to use and test the mod with other people involved.
I would like to report that entity.hasmet true doesn't seem to work properly? We have tested a dialogue tree where a variable is set when a step is accessed, and initiating conversation with the NPC first has a check for entity.hasmet = true before directing to two opening steps respectively, (one in case its the first time, and another in case the npc has introduced themselves and the name has been revealed, which is the step where the variable entity.hasmet=true is set). Unfortunately, once one player triggers this variable, the change is applied to all other players. We also tested the dialogue with a vanilla trader on the same world with the NPCs, but with the vanilla trader the identity is kept separate knowledge for players.

I am not sure if this is a user error where I am setting the variables wrong, or if something in the mod is not functioning as intended?
Please let me know if I can provide you with anything to verify this issue.

Dharaos, Oct 3rd at 5:45 PM (modified Oct 3rd at 5:45 PM)

On our server we made a behavior collection to fix the default idle animation that rotates in circles. It initially worked as intended but after a server reset all the NPCs with the custom made collection were deleted.

Dharaos, 6 days ago
@SiiMeR: Were you using the latest version from today?

We were on the last patch. I will make some NPCs with collections to test on latest release and let you know. Thank you for all your hard work, great mod!

Stason4ikRU, Oct 3rd at 11:12 AM

In the latest update, you added a teleport via an NPC. Is it possible to make it a paid feature?

SiiMeR , Oct 3rd at 11:32 AM
@Stason4ikRU: In the latest update, you added a teleport via an NPC. Is it possible to make it a paid feature?

Yes, you could first have a step with takefrominventory trigger, taking the amount of items from inventory, and then it would jump to another trigger with the runcommand trigger

Vice0042, Oct 2nd at 10:15 PM

Just a small report, after the most recent update the npcs all seem to rotate in place during their idle animations. Some don't seem to have this behaivour but it's causing a lot of my vendors and idle npcs to end up facing walls or turning randomly

Khana, Sep 30th at 11:50 AM

could of sworn i left a comment. askin if theres any like instructions how to use him coz hes jst stood there eve tho im sure i set his job

Khana, Sep 29th at 1:59 PM

is there a handbook or something on how to use this coz i cant get him to move. 

and the pictures on this page for somereason wont show

Khana, Sep 29th at 1:19 PM (modified Sep 29th at 1:52 PM)

errrr.. how do u get it to go? i set him as working farmer n hes jst stood there liek a pleb

SiiMeR , Sep 29th at 6:00 PM
@Khana: errrr.. how do u get it to go? i set him as working farmer n hes jst stood there liek a pleb

This mod is more for creators of NPC. The provided farmer example is a Nadiyan villager which I don't know if it works It mostly is there to reference the system.

yurajoh, Sep 28th at 10:58 PM

Could it be possible to add a dialogue trigger than runs a command? I'd like to use the NPC to teleport people, if possible.

yurajoh, Oct 3rd at 11:00 AM (modified Oct 3rd at 11:03 AM)
@SiiMeR: Added in 1.6.0

Awesome, much appreciated! That playername and playeruid functionality is exactly what I was looking for and what some other NPC mods lacked, great work.

Neoelfeo, Sep 26th at 12:01 PM

This is a great mod.

SiiMeR , Sep 26th at 2:55 PM
@Neoelfeo: This is a great mod.

Thanks

BladeRed64, Sep 26th at 9:25 AM

then this mod don't modify the traders? u need to do a NPC from 0? srry if I don't get it

Grandfather, Sep 26th at 9:45 AM
@BladeRed64: then this mod don't modify the traders? u need to do a NPC from 0? srry if I don't get it

This mod allows you to manually place down persistent NPCs using the playermodellib mod, which means those NPCs will be entities that will look just like any other player from the set of playable races you also have installed on your game instance. The vanilla traders still exist separately and appear both work alongside any NPCs that you manually place yourself using this mod.

Grandfather, Sep 25th at 4:33 AM

Hey, SiiMeR!

Have been experimenting with your mod for the past 3 weeks.
I am testing locally, and also on a dedicated hosted server.

Currently, any NPC that is running any custom activity collection does not save and disappears by the following server restart.
I've looked into the logs saved by the server after it is restarted, but could not find anything that pertains to the NPCs being saved or not.

If there is anything I can give you in order to verify this please let me know.

Grandfather, Sep 26th at 8:45 AM
@SiiMeR: I will try to reproduce it myself and then make a fix if I can Thanks for your deep interest in this mod, I appreciate it!

You are welcome.

There are a few things I have also found that might be of interest to you:

  1. Setting up a condition check for player.inventory for an item caps out at that item's full stack value. This means that setting up a quest where two stacks of the same item are requested cannot be checked by a single step. Instead, one has to daisy chain checks with custom variables for each step which in turn expand the dialogue tree and create logic complications when a player might want to submit the full amount, or when a player only has a partial amount of what is requested.

    I'm not sure if this is a code limitation with JSON and the base game through that, but perhaps there could be some way to allow the dialogue step to accomodate for inventory checks of multiple stacks on the same item type. (If there is one, I would love to know it also! :D)

  2. The field for condition checks is very small, especially when having to place the JSON input for player.inventory checks, sometimes the I-beam disappears into the end of the box if the text is too long, making it very difficult to edit the text in the field without accidentaly erasing wrong portions. The UI field for the condition input could be moved down to accomodate it being wider if that element is controlled by the mod.

  3. When creating a dialogue, each step has a jump option for each response, and a jump option for the dialogue step. A dialogue jump option can be set to "(none)", yet this option is missing for a repsonse entry. Something which sometimes causes trouble when dialogue tree is split into two separate directions.

    I think it would be a good idea to include the option (none) for dialogue responses as well.

 

I am also on the VS community discord if you would like to communicate there.

SiiMeR , Sep 26th at 10:31 AM
@Grandfather: You are welcome.There are a few things I have also found that might be of interest to you: Setting up a condition check for player.inventory for an item caps out at that item's full stack value. This means that setting up a quest where two stacks of the s

Hey,

 

I have fixed 2 and 3 in 1.5.3

 

About the custom activity collection not saving, can you check ModData\playermodelnpcs\activitycollections and see if the collection is saved there? 

About being able to turn in 2 or more stacks at once, it's a bit more involved and I will not be implementing it at this time. 

Grandfather, Sep 26th at 2:34 PM (modified Sep 26th at 2:48 PM)
@SiiMeR: Hey, I have fixed 2 and 3 in 1.5.3 About the custom activity collection not saving, can you check ModData\playermodelnpcs\activitycollections and see if the collection is saved there? About being able to turn in 2 or more stacks at once, it's a bit more i

The collection files created are indeed saved on the playermodelnpcs moddata folder. Since I am currently running 1.5.2, I will update and see if npc disappearing persists in 1.5.3.

addendum:

I have updated to 1.5.3 both run it on the dedicated server.
Upon placing an NPC and assigning it a custom collection through a connected client, the NPC still disappeares once the server restarts.
Trying to apply the custom collection to the NPCs entity number returns that the entity does not exist, which goes to suggest that it does not save the NPC as the server shuts down to restart.

Grandfather, Sep 21st at 1:33 AM

To anyone dealing with issues opening trade windows,

I have been struggling to get an NPC dialogue to open a trade window only to accidently discover that the trade window will not open if you are not sufficiently close to the npc. This means that if the NPC is behind a counter it might be close enough to open the dialogue, but not close enough to open the trade window.

 

Ensure that the NPC is within ONE BLOCK distance from the player in order for the trade window to open!

SiiMeR I think this might be important to add into the mod description for trade windows.

Grandfather, Sep 22nd at 2:42 AM
@SiiMeR: I might make it a red error message to indicate you are too far away. or make the range a bit bigger. rn I think it is 2 meters

Not bad!

I have also noticed that the activity collection you've included called playermodelnpc:idle does not have a condition, yet when creating one a red message flashes which states that a condition must be set. Is that part of your mod, or is it part of the .dev aedit editor?

Also, is there a chance that you might know a source for listing the available animations that could be used for playanimation entry, or a source for learning more about activity collections?

SiiMeR , Sep 26th at 10:32 AM
@Grandfather: Not bad!I have also noticed that the activity collection you've included called playermodelnpc:idle does not have a condition, yet when creating one a red message flashes which states that a condition must be set. Is that part of your mod, or is it part o

Fixed in 1.5.3 

The playanimation entries are now enumerated and filtered down to what the animation system can actually play. 

Also fixed the trade range mismatch

Vice0042, Sep 20th at 5:43 AM

Hope this is the right place for issues but I'm having some issues with the animation collections on NPCs.

I cant tell if it's a bug or I'm missing something, but some animations play just fine (ex: clap, nod) While others get stuck in a weird jerky loop as soon as they're called (ex: wipetable, shelves-lookup) 

I've spent all day on it and at this point I just want to know if it's something I'm doing wrong or a limitation of the mod.

Dangodangodango, Sep 14th at 3:15 PM

Any plans of adding a faction functionality/compatibility to the mod? So NPCs could attack players from other factions if getting too close?

SiiMeR , Sep 19th at 9:07 AM
@Dangodangodango: Any plans of adding a faction functionality/compatibility to the mod? So NPCs could attack players from other factions if getting too close?

Maybe in the further future, right now I am trying to stabilize just having single NPCs 

Stason4ikRU, Sep 12th at 4:20 PM

I don’t know if this is possible, but I’ll try to ask. Is it possible to make it compatible with the Alegacy mod? Your mod works well and sees dialogues from alegacy, but the journal and opening the quest menu do not work. Or can compatibility only be made by the creator of alegacy?

Stason4ikRU, Sep 13th at 1:22 PM (modified Sep 13th at 1:24 PM)
@SiiMeR: Uhhh I am not sure how much is possible to integrate

The code seems to be similar to vanilla, but slightly changed in places. And it has its own graphical menu, perhaps because of it it does not work fully with your mod.

Stason4ikRU, Sep 11th at 8:41 PM (modified Sep 11th at 8:42 PM)

I made my own mod for coins and when I set them as the price in the NPC store, the player buys the item for free. They don't take any money. If I put a vanilla item, then it is taken away as the price correctly.. How can this be fixed?

SmashleePotato, Sep 10th at 4:21 PM

Not sure if you would like bugs reported here still, but with the shops the meta data doesn't seem to hold correctly. 

We have custom RPG Items, they wipe some of their stats when placed into the NPC shop but do not in Vinconomy shops. Same with Chiseled items, they turn into stone simple chiseled items instead of the same item slotted into the shop. It feels like these are from the same root issue.

Thanks
- Smashy

SmashleePotato, Sep 10th at 6:10 PM (modified Sep 10th at 6:10 PM)
@SiiMeR: Thank you for the report! Yes, they should be reported here. I will look into it.

We are really getting a lot of use out of it, so I feel bad reporting so many things. Haha, another we noticed is they say stranger on the map even after talking to. I have no idea if it is because we use Mobs Radar or not. And if you talk to them sometimes the name comes up but only after leaving the area, I will ask more players to mess with them and let me know what they notice. :D Thank you a bunch!

Stason4ikRU, Sep 9th at 7:14 PM

Please provide an example with quests.

SiiMeR , Sep 12th at 11:31 AM
@Stason4ikRU: Please provide an example with quests.

example-quest.json is available in 1.5.2

GrimoireODS, Sep 7th at 4:16 PM

Can this be used for making custom enemies as well 

SiiMeR , Sep 7th at 5:33 PM
@GrimoireODS: Can this be used for making custom enemies as well

Currently they don't have any behavior that can make them hostile towards you, but I am looking into making the base game enemy AI available for use.

SmashleePotato, Sep 7th at 1:47 PM

I was wondering if there was some way/ option to add the ability to use some custom mob models as variations for the npc skins? We want to make a goblin themed town but don't want players to choose this specific of the model. Thanks for any information on this!

-Smashy

SiiMeR , Sep 7th at 5:32 PM (modified Sep 7th at 5:32 PM)
@SmashleePotato: I was wondering if there was some way/ option to add the ability to use some custom mob models as variations for the npc skins? We want to make a goblin themed town but don't want players to choose this specific of the model. Thanks for any information on

In PlayerModelLib you can have models which are not available to regular players in charsel unless they are granted by an admin command 

 

In model config:

"Enabled": true, // If set to 'false', this model will not appear in list of models in character creation dialog,

Granting it to players:

/player <name> enablePlayerModel <modelcode>
/player <name> disablePlayerModel <modelcode>

SmashleePotato, Sep 8th at 7:37 PM
@SiiMeR: In PlayerModelLib you can have models which are not available to regular players in charsel unless they are granted by an admin command In model config: "Enabled": true, // If set to 'false', this model will not appear in list of models in character creat

Aweome, thank you!

I did want to note, when using emote mod or anything that adds too many options to the list, it just says "& 6 more" but I can't use any of these options. Also was curious if there would be a cycle animation option, he did it the one time when I set the emote, and doesn't do it again. It would be nice if they cycled between two or three for immersion etc

Thanks,
-Smashy

SiiMeR , Sep 8th at 7:49 PM (modified Sep 8th at 7:49 PM)
@SmashleePotato: Aweome, thank you!I did want to note, when using emote mod or anything that adds too many options to the list, it just says "& 6 more" but I can't use any of these options. Also was curious if there would be a cycle animation option, he did it the one tim

The latest version ups the dropdown item limit to 100 

But the point of that dropdown is that you have to type and search for the correct option. the vanilla dropdowns start bugging out if a dropdown contain hundreds of items so I implemented this combobox. 

Maybe there will be some cycling, but not in the near future.

SmashleePotato, Sep 9th at 12:31 AM
@SiiMeR: The latest version ups the dropdown item limit to 100 But the point of that dropdown is that you have to type and search for the correct option. the vanilla dropdowns start bugging out if a dropdown contain hundreds of items so I implemented this combobox

Loving the mod, been messing with it most of the day. Is it possible to get a reload command of some sort so the shops atually update the json files? I keep editing them, adding items, removing items, but they hold previous data even though I have made a new json. Not sure if it will update after a server restart or what. 

Right now it seems the amount of items that the trader window will show doesn't actually let me alter it. I tried setting it to 14 to see everything, no luck. Set back to 2, sells more than 2 etc. 


Awesome work,

Thank you !!

LittleWalker_NL, Sep 6th at 12:30 PM

every time i reload my world all npcs reset the activities

SiiMeR , Sep 7th at 5:27 PM
@LittleWalker_NL: every time i reload my world all npcs reset the activities

I'll fix it in the next version

Qheshiir, Sep 5th at 9:59 AM

Excellent mod! It reminds me of the beloved old Noppes NPC mod from Minecraft. Is it possible to create NPCs that can become hostile to player(s), perhaps on conditions - such as setting a condition (like be within x block distance to NPC) to swap the NPC's set collection to a generic Hostile AI like the basegame monsters, then back if the condition is not met (I.e; player is far enough away)? If not, could such a feature be added to the mod? A condition for hostile could lead to all sorts of interesting setups - such as having a leader NPC that triggers hostile on all nearby NPCs if you pick the insulting dialogue option you set up.

 

Ultimately, I would love to set up raiding parties to test my servers colony, perhaps with warchiefs that could be 'negotiated with' through dialogue to remove the hostile trigger. Lots of gameplay options could open up through being able to make NPCs able to do these things.

Maaagicmaaan, Sep 4th at 2:27 AM

Is it possible to have the npcs place a custom location on the map for all players to see?

JustRichardTbh, Sep 3rd at 6:23 PM

holy shit what model does Samantha use

DilanRona, Sep 3rd at 10:41 AM

If and when a fork for Player Model Lib came out would you be able to switch to the fork? Would love to try your mod, but not after what happened with PML (regardless of the fact the bad code was removed).

DrWrights, Sep 3rd at 8:08 AM

The clothes seem to clip with Female Seraph

CoziClem, Aug 31st at 2:49 PM

Hey SiiMeR!

Noticed we've got some warnings getting thrown everytime a chunk is loaded with an NPC that is holding an item. It may be coincidence, but we're also getting freeze crashes (no logs, just have to sift through client.main and client.debug) on the threshold of that chunk load as well.
The warning looks something like this depending on the item that is held:

31.8.2026 10:42:10 [Warning] Step parented shape game:item/tool/hammer defined in Item game:hammer-blackbronze did not define a step parent element for parent shape game:entity/humanoid/seraph-faceless. Will not be visible.

Let me know if you'd like to have client.mains or debugs to look through or need anymore info. My dms are open! I'm happy to help!

Thank you for this mod, we've been making quests with the dialogue system, and it's been very cool <3

grunge_forever, Aug 30th at 12:30 AM

Your recent patch claims to have fixed crashing with broken dialog but I'm finding that this issue is still present. Other than that, super satisfied with the customization possible with this mod.

grunge_forever, Aug 30th at 6:11 PM
@SiiMeR: Can you link me a dialog example that is crashing for you?

I'm fairly certain the problem was caused by incorrectly linking dialog together using "jump to". My crashing happeneded whenever I was trying to choose which dialog was to come after the one I just made. When testing it I would click through the dialog, then when the problematic line came up the game would freeze forever.

HP4You, Aug 28th at 8:00 PM (modified Aug 28th at 8:01 PM)

Is the mod/dialog compatabile with VS Quest?

SiiMeR , Aug 28th at 8:18 PM
@HP4You: Is the mod/dialog compatabile with VS Quest?

If VS Quest reads vanilla format dialogue files then yes, but I don't know if that is the case

Zeorik, Aug 28th at 5:12 PM

Dumb question, is it possible to have an NPC follow? I genuinely forget if there was any way to hire/ party up.

I'd honestly love it if you could, and/ or make a survival-accessible method. Build/ hire your own party, arm them, and adventure!

Zeorik, Aug 28th at 6:05 PM
@SiiMeR: You asked this just at the right time because I am almost ready to release that feature!!!

awesome! As a side note to that... uh.. maybe an animal cage-type tool to pick up npcs, or a teleport/ summon flute? I fly by dragon usually, but even if I travel by boat I don't expect them to be able ot sit reliably.

Zeorik, Aug 28th at 7:57 PM (modified Aug 28th at 8:07 PM)
@SiiMeR: I have not been thinking in that direction yet, how far I wanna take the functionality offered by this mod.

Fair. Could make a small patch for the Animal Cages mod, depending how the NPCs are named by code. (I'd probably say use Small rather than medium, as medium has odd mechanics for wild creatures, and I doubt these NPCs would ocunt as 'tamed'... pfft.)

or... might just do that myself, save you the hassle. I'll poke at it.

jackaloffal, Aug 22nd at 9:40 PM (modified Aug 22nd at 9:40 PM)

Very streamlined use of the basegame mechanics! UI is good, and this has been super fun to work with. My first quick impressions are:

1) There's a 'save' function that overwrites, but an additional 'save as' function to make a copy would be even better

2) If you even slightly cock up the syntax on any input, you will crash yourself out of the game the second you talk to the NPC; I'm not sure if there's even a workaround to prevent that, but some kind of double check would be excellent. I'm the worst at instinctively right clicking instead of shift right clicking, forgetting I just did that, and crashing myself 4 times in a row...

Hydromancerx, Aug 21st at 11:44 PM (modified Aug 21st at 11:44 PM)

Could you add a way to pick up the NPCs in creative? That way you can move them to diffrent spots without having to place a new NPC. Also maybe an ability to "clone" an NPC you already made.

SiiMeR , Aug 21st at 11:49 PM
@Hydromancerx: Could you add a way to pick up the NPCs in creative? That way you can move them to diffrent spots without having to place a new NPC. Also maybe an ability to "clone" an NPC you already made.

Picking up would be quite tricky to implement considering you would have to then store all of the data on the item. 

I would rather imagine that players would re-apply the dialogue and activity collections again. 

 

Cloning: can be done 

Maybe I will add some kind of appearance presets so you can reuse the previous looks you have made

Hydromancerx, Aug 21st at 8:41 AM

I notied that in the activities that ones from the VS Village mod show up. Dose this mean you can make custom villagers for that mod if you select that activity on your NPC?

Hydromancerx, Aug 21st at 5:28 PM
@SiiMeR: Theoretically, they should be cross-compatible, yes, but it needs testing.

That's awesome! There are a few NPC mods out there. Is it possible to use their behavior in your mod's NPCs? Here are some mods ...
- Ale Trader
- Animal Trader
- Bartender
- Book Trader
- Domestic Animal Trader
- Feral Kinship: Compaions
- Fish Trader
- Herbs Trader
- Hirelings
- Holdfast
- Lumberjack Trader
- Mushroom Trader
- NDL Villagers
- Outlaws Mod
- Pet AI
- Roleplay NPCs
- Soupman
- Tailored Society
- Trader Expansion
- VS Village
- Wild Animal Trader

Honorable Mention of obsolite mods
- Sabre au Clair

Let me know if i forgot any.

SiiMeR , Aug 21st at 5:47 PM
@Hydromancerx: That's awesome! There are a few NPC mods out there. Is it possible to use their behavior in your mod's NPCs? Here are some mods ...- Ale Trader- Animal Trader- Bartender- Book Trader- Domestic Animal Trader- Feral Kinship: Compaions- Fish Trader- Herbs Tr

A lot of them implement their own custom logic instead of using the activity system built into the base game, so they aren't compatible. 

The custom trader dialogue can be reused, but you currently cannot open a trade dialog in this mod because that logic is tied to humanoid traders specifically.

SiiMeR , Aug 21st at 6:50 PM
@Hydromancerx: Yeah i saw them in the dialog drop menu as a choice. So is there no way to make your NPC into a trader?

No, the trader logic is tied to a specific kind of Entity which hardcodes a lot of the logic. In addition it implements it's own skin and wearables system, which PlayerModelLib will fight with. 

In the coming versions I plan on making the trading modal available without the NPC needing to be a trader-ish entity. 

Ashleyyy33, Aug 21st at 5:04 AM

well THIS will definitely make my world feel more alive. TYSM for this :3

Wulk, Aug 21st at 4:16 AM (modified Aug 21st at 4:24 AM)

"A warning to all people, seraph and human alike: The Protoype class Drocust pattern is experimental, unstable, uncapable of cognisance and not a friend, any friendly interactions might be due to malfunction, modified parameters or conveninence of fueling nature. if detected by The Prototype via CDER (Cardiac Detection Elucidation Relay) or other elucidatory means (of which it should NOT have), be advised: HIDE."

Hydromancerx, Aug 21st at 1:32 AM

When i type /npcedit i says no command exists.

SiiMeR , Aug 21st at 7:43 AM
@Hydromancerx: When i type /npcedit i says no command exists.

It was actually .npcedit

MoonyBeasty, Aug 20th at 9:17 PM

Unfortunately, this mod won't load for me, even with PlayerModelLib being up to date. The NPC Placer doesn't appear in game.
I get these errors in the log

Errors
20.8.2026 15:04:40 [Error] [playermodelnpcs] Exception thrown when attempting to retrieve all types of the assembly PlayerModelNpcs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. Will ignore asssembly. Loader exceptions:
20.8.2026 15:04:40 [Error] [playermodelnpcs] Exception: Unable to load one or more of the requested types.
Could not load file or assembly 'OverhaullibLegacyCompat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
   at System.Reflection.RuntimeModule.GetDefinedTypes()
   at System.Reflection.RuntimeModule.GetTypes()
   at Vintagestory.Common.ModContainer.GetModSystems(Assembly assembly) in VintagestoryLib\Common\API\ModContainer.cs:line 690
20.8.2026 15:04:40 [Error] [playermodelnpcs] Exception: Could not load file or assembly 'OverhaullibLegacyCompat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
   at Vintagestory.API.Common.LoggerBase.Error(Exception e) in VintagestoryApi\Common\API\ILogger.cs:line 269
   at Vintagestory.Common.ModContainer.GetModSystems(Assembly assembly) in VintagestoryLib\Common\API\ModContainer.cs:line 690
   at Vintagestory.Common.ModContainer.<>c__DisplayClass38_0.<LoadAssembly>b__1(Assembly ass) in VintagestoryLib\Common\API\ModContainer.cs:line 609
   at System.Linq.Enumerable.IEnumerableWhereIterator`1.ToList()
   at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in VintagestoryLib\Common\API\ModContainer.cs:line 606
   at Vintagestory.Common.ModLoader.instantiateMods(List`1 mods) in VintagestoryLib\Common\API\ModLoader.cs:line 286
   at Vintagestory.Common.ModLoader.LoadMods(List`1 mods, IEnumerable`1 disabledModsByIdAndVersion) in VintagestoryLib\Common\API\ModLoader.cs:line 262
   at Vintagestory.Common.ModLoader.LoadMods(IEnumerable`1 disabledModsByIdAndVersion) in VintagestoryLib\Common\API\ModLoader.cs:line 199
   at Vintagestory.Server.ServerSystemModHandler.OnLoadAssets() in VintagestoryLib\Server\Systems\ModHandler.cs:line 46
   at Vintagestory.Server.ServerMain.EnterRunPhase(EnumServerRunPhase runPhase) in VintagestoryLib\Server\ServerMain.cs:line 671
   at Vintagestory.Server.ServerMain.Launch() in VintagestoryLib\Server\ServerMain.cs:line 571
   at Vintagestory.Client.ClientProgram.ServerThreadStart() in VintagestoryLib\Client\ClientProgram.cs:line 487
   at System.Threading.Thread.StartCallback()
20.8.2026 15:04:40 [Error] [playermodelnpcs] An exception was thrown when trying to load assembly:
20.8.2026 15:04:40 [Error] [playermodelnpcs] Exception: C:\Users\jayfe\AppData\Roaming\VintagestoryData\Cache\unpack\playermodelnpcs_1.0.1.zip_bed174710df7\PlayerModelNpcs.dll declared as code mod, but there are no .dll files that contain at least one ModSystem or has a ModInfo attribute
   at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in VintagestoryLib\Common\API\ModContainer.cs:line 614
zeldakos, Aug 20th at 7:32 PM

i was literally thinking the other day wouldnt it be so cool if the NPCs were all races possible like an Elder Scrolls game? This is baller

MoonyBeasty, Aug 20th at 5:20 PM

YESSSS I was just wishing for a mod like this the past few days! Thank you so much!!
I've been working on an adventure map set in a world with multiple sapient species, not just humans. This will make that fact more believable if you actually get to see talking wolves and such in the world. Also, as I'm certain most people are going to use it, it'll be great for rp servers and single player worlds.
Thank you again for this mod :3

MagentaLizard [currently restricted], Aug 20th at 4:59 PM

YOU MEAN MY CHUBBY AND CUDDLY DRIFTER ROOMMATE CAN BE REAL!?

Serefinwen, Aug 20th at 4:41 PM

GOLD

SiiMeR , Aug 20th at 8:33 PM
@Serefinwen: GOLD

❤️

CoziClem, Aug 20th at 4:08 PM

SiiMeR... you absolute god... this literally is coing out at the PERFECT time for our server T-T
I can also be a lot more confident that this will work well as we've used a lot of your mods.
Thank you for this awesome feature!!!

jackaloffal, Aug 20th at 4:05 PM

EXACTLY what we've been looking for to add to the Lunaria RP server! Thanks for your hard work, please expect ten thousand bug reports imminently o7

Yochan, Aug 20th at 3:52 PM

damn now we need a mercenary/companion mod for hire

SiiMeR , Aug 20th at 8:33 PM
@Yochan: damn now we need a mercenary/companion mod for hire

i hope someone will use my mod to make one!!!

Sparkplug04, Aug 20th at 3:05 PM

Incredible idea!
Can't get over the very "we are going to beat you to death" lineup for the thumbnail lmao

W4RD0, Aug 20th at 1:17 PM

Another revolutionary mod by the greatest.