Bot System

From Vintage Story Wiki
Other languages:

This page was last verified for Vintage Story version 1.15.

Vintage Story comes with some rudimentary interface to control creatures and humanoids through commands, which is mostly aimed for video recordings. Here's how to use it:

Spawn in a bot

Only some creatures are supported, here's a list

  • /entity spawn playerbot
  • /entity spawn animalbot-wolf-male
  • /entity spawn animalbot-hyena-male
  • /entity spawn animalbot-hyena-female
  • /entity spawn animalbot-hyena-pup
  • /entity spawn animalbot-chicken-hen
  • /entity spawn animalbot-chicken-rooster
  • /entity spawn animalbot-chicken-baby
  • /entity spawn animalbot-sheep-bighorn-male
  • /entity spawn animalbot-sheep-bighorn-female
  • /entity spawn animalbot-sheep-bighorn-lamb
  • /entity spawn animalbot-locust-corrupt
  • /entity spawn animalbot-hare-female-lightgrey
  • /entity spawn animalbot-piglet
  • /entity spawn animalbot-drifter-normal
  • /entity spawn animalbot-drifter-corrupt
  • /entity spawn animalbot-drifter-nightmare

Select a bot

Right click the creature to select it. You can now tell it to execute commands or define a list of commands to execute in a loop

Instruct the bot

Legend: flexiblepos means either x y z coordinates as defined in the coordinate hud, absolute coordinates through =x =y =z or coordinates relative to the player with ~x ~y ~z, you can also do ~ ~ ~ do use exactly the players position.


Type one of either commands to execute a command right away

  • /npc exec tp flexiblepos teleport to given position
  • /npc exec lookat rad look in given direction in radians (0..2PI)
  • /npc exec goto flexiblepos animcode speed [animspeed] walk to given position with given animation, given speed (normal walking speed is about 0.02) and given animation speed (default 1)
  • /npc exec playanim animcode players given animation. Valid ones for animals, if supported by the respective animal: hurt, die, eat, walk, cry, shamble, lowshamble, sleep, sit, listen, hide, idletwitch, drill


If you want to bot to run or remember a list of commands replace "exec" with "enq" to enqueue commands:

  • /npc enq [tp|lookat|goto|playanim] (see args above)
  • /npc start to start command list
  • /npc stop to stop
  • /npc loop to make the bot endlessly loop through his list of commands
  • /npc clear will clear the command list
  • /npc list show list of queued commands
  • /npc remove [index] remove command of given index as shown in /npc list
  • /npc upd allows you do modify some commands

Green Items require C# coding

Getting Started | Mod Types | Simple Examples | Theme Pack

Asset System | Textures | Items | Recipes | Blocks | Entities | Model Creator | Animation Basics | VTML & Icons | Mod Packaging & Release | Modinfo | Debugging


JSON Patching | Advanced JSON Items | The Remapper | Server-Client Considerations | Compatibility with other mods

Setting Up Your Development Environment (General - Windows - Linux)

Advanced Blocks | Advanced Items | Item-Block Interactions | Block Behavior | Block Entities | Particle Effects | World Access | Inventory Handling | Chat Commands | GUIs | Server-Client Networking | Monkey patching (Harmony)

Data Management

Savegame Data Storage | ModConfig File | Chunk Data Storage | Tree Attribute


WorldGen Concepts | Terrain | Ores | Trees | WorldGen API


Shaders and Renderers

Property Overview

Item | Entity | Block | Block Behaviors | Block Classes | Block Entities | Block Entity Behaviors

Workflows & Infrastructure

Modding Efficiency Tips | Mod-engine compatibility | Mod Extensibility | Load Order

Additional Resources

List of server commands | List of client commands | Client startup parameters | Creative Starter Guide | ServerBlockTicking | Bot System | WorldEdit | Cinematic Camera

Example Mods | API Docs | GitHub Repository