Create roaming NPC vendors (NPC shop keepers) with customizable vending profiles
Vendor view with pagination
Pathing Example (running for the purpose of showing the pathing)
Features
Populate vendors with items defined per vendor in the config
Customize vendor name and clothing
Support for selling skinned items
Vendors support pagination, add as many items as you like and players can cycle through the pages of available goods
NPCs stop to trade when player is within 5m of them. When the player leaves the NPC will continue roaming
Automatic pathing, you will always find vendors travelling down dirt paths and along the side of roads
If the vendor reaches the end of a path, they will switch to a nearby connected path if available, else return the way they come
If the vendor comes across a intersection there is a 50% chance they will take the branch
Comes with 5 pre-defined vendors
Permissions
roamingnpcvendors.admin - Required to use the chat command
Chat Commands
/vendor list - List all active vendor names
/vendor tp "vendor name" - Teleport to the specified vendor
/vendor kill "vendor name" - Kill the specified vendor
/vendor spawn "vendor name" - Spawn a vendor with the specified vendor profile in the config
Stock Refresh and Randomization
There are 2 config options for each vendor profile that can randomize and refresh the items that they have for sale
'Maximum items to sell at a time' - Setting this to a number lower than the amount of items you have set up in the config will create sell orders using randomly selected items from the item list in the config. To disable this and show all items in the config set this value to 0
'Refresh stock rate' - This option is only used when you are not displaying all the items in the config and they have been randomly select. It will refresh the vendors current sell orders using randomly selected items from the item list in the config at the interval provided. This value is in seconds
Config
Vendor view with pagination
Pathing Example (running for the purpose of showing the pathing)
Features
Populate vendors with items defined per vendor in the config
Customize vendor name and clothing
Support for selling skinned items
Vendors support pagination, add as many items as you like and players can cycle through the pages of available goods
NPCs stop to trade when player is within 5m of them. When the player leaves the NPC will continue roaming
Automatic pathing, you will always find vendors travelling down dirt paths and along the side of roads
If the vendor reaches the end of a path, they will switch to a nearby connected path if available, else return the way they come
If the vendor comes across a intersection there is a 50% chance they will take the branch
Comes with 5 pre-defined vendors
Permissions
roamingnpcvendors.admin - Required to use the chat command
Chat Commands
/vendor list - List all active vendor names
/vendor tp "vendor name" - Teleport to the specified vendor
/vendor kill "vendor name" - Kill the specified vendor
/vendor spawn "vendor name" - Spawn a vendor with the specified vendor profile in the config
Stock Refresh and Randomization
There are 2 config options for each vendor profile that can randomize and refresh the items that they have for sale
'Maximum items to sell at a time' - Setting this to a number lower than the amount of items you have set up in the config will create sell orders using randomly selected items from the item list in the config. To disable this and show all items in the config set this value to 0
'Refresh stock rate' - This option is only used when you are not displaying all the items in the config and they have been randomly select. It will refresh the vendors current sell orders using randomly selected items from the item list in the config at the interval provided. This value is in seconds
Config
JSON:
{
"Vendors": [
{
"Vendor Enabled": true,
"Vendor Name": "Weapons Vendor",
"Movement Speed (Slowest, Slow, Normal, Fast)": "Slow",
"Clothing Items": [
{
"Shortname": "hazmatsuit.nomadsuit",
"SkinID": 0
}
],
"Vending Sell Orders": [
{
"Sell Item - Shortname": "pistol.nailgun",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "pistol.revolver",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 200,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "shotgun.double",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 250,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "smg.thompson",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 300,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "rifle.ak",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 400,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "rocket.launcher",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 800,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.silencer",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.extendedmags",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.muzzlebrake",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.muzzleboost",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.holosight",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.small.scope",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 200,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
},
{
"Sell Item - Shortname": "weapon.mod.8x.scope",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 250,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 600.0
}
]
},
{
"Vendor Enabled": true,
"Vendor Name": "Building Trader",
"Movement Speed (Slowest, Slow, Normal, Fast)": "Slow",
"Clothing Items": [
{
"Shortname": "hazmatsuit.nomadsuit",
"SkinID": 0
}
],
"Vending Sell Orders": [
{
"Sell Item - Shortname": "small.oil.refinery",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 125,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "furnace.large",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 350,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "computerstation",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 300,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "electric.fuelgenerator.small",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 125,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "electric.teslacoil",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 75,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "electric.solarpanel.large",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 75,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "electric.igniter",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 50,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
}
]
},
{
"Vendor Enabled": true,
"Vendor Name": "Farming Vendor",
"Movement Speed (Slowest, Slow, Normal, Fast)": "Slow",
"Clothing Items": [
{
"Shortname": "hazmatsuit.nomadsuit",
"SkinID": 0
}
],
"Vending Sell Orders": [
{
"Sell Item - Shortname": "composter",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 30,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 3,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "fertilizer",
"Currency Item - Amount": 2,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 60.0
},
{
"Sell Item - Shortname": "planter.large",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 30,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "water.barrel",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 30,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "electric.sprinkler",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 15,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "fluid.switch",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 30,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "fluid.splitter",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 30,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "ceilinglight",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 30,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
}
]
},
{
"Vendor Enabled": true,
"Vendor Name": "Vehicle Vendor",
"Movement Speed (Slowest, Slow, Normal, Fast)": "Slow",
"Clothing Items": [
{
"Shortname": "hazmatsuit.nomadsuit",
"SkinID": 0
}
],
"Vending Sell Orders": [
{
"Sell Item - Shortname": "piston2",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 40,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "crankshaft2",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 65,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "valve2",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 40,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "sparkplug2",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 40,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "carburetor2",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 65,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "modularcarlift",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "scrap",
"Currency Item - Amount": 150,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
}
]
},
{
"Vendor Enabled": true,
"Vendor Name": "Scrap Vendor",
"Movement Speed (Slowest, Slow, Normal, Fast)": "Slow",
"Clothing Items": [
{
"Shortname": "hazmatsuit.nomadsuit",
"SkinID": 0
}
],
"Vending Sell Orders": [
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "crude.oil",
"Currency Item - Amount": 6,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "metal.fragments",
"Currency Item - Amount": 20,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 2,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "metal.refined",
"Currency Item - Amount": 1,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 1,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "antiradpills",
"Currency Item - Amount": 1,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 15,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "keycard_green",
"Currency Item - Amount": 1,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 40,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "keycard_blue",
"Currency Item - Amount": 1,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
},
{
"Sell Item - Shortname": "scrap",
"Sell Item - Amount": 80,
"Sell Item - As Blueprint": false,
"Sell Item - Skin ID": 0,
"Currency Item - Shortname": "keycard_red",
"Currency Item - Amount": 1,
"Currency Item - As Blueprint": false,
"Refill Amount": 1,
"Refill Delay (seconds)": 10.0
}
]
}
],
"Version": {
"Major": 0,
"Minor": 1,
"Patch": 0
}
}