Modding:Modding Efficiently

From Vintage Story Wiki
Revision as of 22:01, 28 June 2020 by Tyron (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Modding and even Game development itself usually requires a lot of trial & error. The more time you can save on those iteration times the better, as it accumulates quickly. Besides being quick to start up, VS offers a bundle more tricks to help you mod fast and efficiently. Here are some of the tricks every serious modder should use:

  • Use macros! Switching from/to creative/survival mode and /time set day bound to a keyboard shortcut is a must have. Hit CTRL+M to open the macro manager which will let you set those up!
  • Don't fully restart the game to test out changes! In 95% of cases its enough to just leave the game world and rejoin or use ingame reload commands. You can quickly reload a world using the shortcut CTRL+F1
  • Don't restart/rejoin at all if you are doing trial&error on textures and shape files. These can be reloaded with the commands .reload textures and .reload shapes. The latter may require you to place&remove a block so that the chunk gets redrawn
  • Set up a quickstart.bat script, that contains e.g. VintageStory.exe -oTestWorld -pcreativebuilding - this will insta-launch you into a super flat creative world named "TestWorld"
  • Leave your mod unpacked in the mods folder! No need to zip it up, it'll load up just fine unpacked :-)
  • Use .tfedit to modify the lookings of your item/block inside the GUI, Hands or on the ground - with live preview.
  • Use .bsedit to edit block selection and collisionboxes ingame - with live preview.
  • Use the /expclang command to generate a neatly pre-formatted list of language entries destined for your en.json, it's placed in a file named collectiblelang.json in the same folder where VintageStory.exe is. It creates language entries for any block or item that currently has no translation. Can save you a ton of time by not needing to handwrite your en.json file.
  • Use the error reporter activated via /errorreporter 1 to save yourself the work of finding and scouring through the log files for problems. This feature will make it so that a dialog pop ups during start up of the game if any errors were encountered.
  • If you want to create json patches, you can use ModMaker 3000™, a command line tool that ships with the game, to build the patches for you
  • If you are doing programming tasks
    • Use break points for debugging
    • Browse through the many utility classes provided by the VS API, you might be able to save a lot of coding efforts! (e.g. ColorUtil, GameMath, ArrayExtensions, DictExtensions, HashsetExtensions, JsonUtil, ReaderWriterExtensions, SerializerUtil, WildcardUtil
    • You can use edit&continue feature of Visual Studio to modify code while the game is running!
    • If you don't already use the RedirectLogs mod during testing to see the log output live in the Visual Studio output window
    • If you are working with shaders, you can reload them with .reload shaders
    • If you do not use Visual Studio, you may have limited success with the /reloadmods command to reload source code mods during runtime.