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");