Modding:Getting Started

From Vintage Story Wiki
Revision as of 02:36, 29 February 2024 by Barrowisp (talk | contribs) (added a little guidance)
Other languages:

This page was last verified for Vintage Story version 1.19.


Vintage story has an extensive modding system built into the game, allowing any user to make their own changes and additions as they see fit.

Before you get started, it's important to understand what you would like to accomplish so you can know what to expect.

Searching the wiki

By default the wiki's search feature excludes the modding pages. To update your search preferences, click the "Search Modding" button below. The results page will show that the (Main), BlockJson, and Modding namespaces are checked. Check "Remember selection for future searches", then click search to save the changes.

What Mods can I make?

The current modding system for Vintage Story is incredibly flexible and quite easy to use even if you don't know how to program. You can add fully functional blocks, items and even entities into the game without ever opening an IDE. More complex changes and systems can be made using C# programming.

This is because nearly every feature of the game relies on the usage of JSONs, which are text documents that utilize a flexible, easy to read format. You can open these files with any text editor, and with just a little bit of practice you can learn how to format them to avoid errors. The best way to learn this is to study the existing JSONs that are visible to anybody who has the game installed. To do so you'll need to locate the Vintage Story Assets folder, which you can learn about at the Asset System page.
In addition, here is a 12 minute video that will teach you why json is used, and the basic syntax, making it easier to understand the rest of the documentation.

If you're looking to add more complex systems to Vintage story you can accomplish this as well, but you likely won't be able to do this with JSONs alone. Vintage Story is written in C#, and it is highly suggested you learn the basics of programming and of C# in general before moving onto more complex mods that can't be accomplished with just JSONs.

Types of Mods

In general there are 3 main types of mods one can create for Vintage Story, with each having different levels of complexity:

  • Theme Packs: These are mods that only affect visuals and don't add more content or change features significantly.
  • Content Mods: These are mods that add additional content (i.e. blocks, items, mobs) to the game but don't utilize C# code and are mostly limited to JSONs.
  • Code Mods: These are mods that add more complex features and systems that require the use of C# code to accomplish.

Moving Forward

If you're just starting out, it's best to begin with a content mod, as most code mods simply extend the features of blocks, items and entities made from a content mod anyway. Once you've mastered content mods you can move onto coding if you want to add some really special things to your Vintage Story experience.

More advanced programmers may be tempted to jump to code mods immediately, but it is still highly suggested you familiarize yourself with content mods first since you'll almost certainly be using them in tandem with any C# code you write.

The first thing to do while starting your first mod is to familiarize yourself with the Asset System. This is where most of the magic in Vintage Story is accomplished, and you'll be using these resources constantly while modding.

To move on with a content mod, head over to the Basic Block page or Basic Item page. To start with a theme mod, head over to the Theme Pack page.

 

Wondering where some links have gone?
The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.

Modding
Modding Introduction Getting Started Theme Pack
Content Modding Content Mods Developing a Content Mod Basic Tutorials Intermediate Tutorials Advanced Tutorials Content Mod Concepts
Code Modding Code Mods Setting up your Development Environment
Property Overview ItemEntityEntity BehaviorsBlockBlock BehaviorsBlock ClassesBlock EntitiesBlock Entity BehaviorsCollectible BehaviorsWorld properties
Workflows & Infrastructure Modding Efficiency TipsMod-engine compatibilityMod ExtensibilityVS Engine
Additional Resources Community Resources Modding API Updates Programming Languages List of server commandsList of client commandsClient startup parametersServer startup parameters
Example ModsAPI DocsGitHub Repository