ZERO Sievert Guide - Senjay-id/GMLoader GitHub Wiki
This guide assumes that your familiar with UndertaleModTool and GMLoader
Requirement
GMLoader from nexus, the one from modders guide is not valid.
GIMP or Aseprite or other image editor
Visual Studio Code with Stitch or other text editor
7-Zip or Nanazip or other file archiver
Where the data is stored
You can find references to the item's properties at ZERO Sievert\ZS_vanilla\gamedata
You may make edits to the files to change their values but it isn't recommended because game update will invalidate these files.
Json Override Framework or LazyDataLib can help alleviate the issue.
Adding items into the game
The Modders guide should already explained how you can replace any texture files inside the game data so we're gonna try adding a new item into the game.
Try making one using any image editor mentioned above, then name it mysprite.png then place it at
ZERO Sievert\mods\textures
Make a text file named myspriteproperties.yaml place it at ZERO Sievert\mods\config\textures_properties\
then write this
mysprite:
frames: 1
x: 0
y: 0
For the next part we'll need to use LazyDataLib to import the data into the game. Install it by just extracting the mod files into the game folder.
Make a new text file named gml_Object_obj_cursor_Create_0.gml place the file into
ZERO Sievert\mods\code\appendgml\mymodname\
Open the file using Visual Studio Code or other text editor and copy paste the code below
// Initialize the item's data as a tradeable and consumable item
item_set("my_item_id", "basic", "categoria", "consumable");
item_set("my_item_id", "basic", "description", "my first modded item");
item_set("my_item_id", "basic", "name", "my modded item");
item_set("my_item_id", "basic", "quest_item", false);
item_set("my_item_id", "basic", "can_be_sold", true);
item_set("my_item_id", "basic", "scrap", "none");
item_set("my_item_id", "basic", "sprite_ingame", "mysprite");
item_set("my_item_id", "basic", "sprite_inv", "mysprite");
item_set("my_item_id", "basic", "stack_max", 1);
item_set("my_item_id", "basic", "value", 100);
item_set("my_item_id", "basic", "weight", 1);
item_set("my_item_id", "consumable", "animation", "s_arms_eat");
item_set("my_item_id", "consumable", "energy", 10);
item_set("my_item_id", "consumable", "fatigue", 0);
item_set("my_item_id", "consumable", "radiation", 0);
item_set("my_item_id", "consumable", "sound", "snd_eating_1");
item_set("my_item_id", "consumable", "thirst", 10);
// Add the item into the first trader with 100% chance, requires 0 reputation level and at 1 quantity
trader_set("bar", "items", 100, "my_item_id", 0, 1);
Then save the file and run GMLoader, you should see your item at the trader's menu now.
Adding audio files into the data
External Audio Framework is needed for this. Install it by extracting into the game folder
The accepted audio format is .ogg or .wav
You should only use ogg format for music or long audio track and wav format for repeating audio files like gunshot or footstep.
Place the audio file that you want to load at ZERO Sievert\mods\sounds
if your audio name is my_eating_sound.ogg you can reference your audio by the filename without the extension, for example
item_set("my_item_id", "consumable", "sound", "my_eating_sound");