Skip to content

Mod Structuring

riconuts edited this page Sep 5, 2024 · 2 revisions

Mods, or content, are structured a little differently here in Troll Engine. From here on in, instead of calling them mods I will be calling them content folders.

A content folder usually has a metadata.json, and then the folders containing mod data such as images, songs/charts, etc. A content folder containing a metadata json file and folders for characters, events, images, music, scripts, shaders, songs, and stages.

Each folder is used as follows:

  • characters: This is full of character data jsons generated by the character editor. Same as Psych Engine, essentially.
  • events: Event files. Each event should have a .hscript file, and a .txt file. The txt file is used for the description in the chart editor, and the hscript is used for the actual functionality.
  • fonts: Font files, pretty simple.
  • images: All images in the mod. Can also be used to replace images from the base engine.
    • images/chapters: Icons for the chapters contained in the content folder
    • images/characters: Used for character spritesheets
    • images/icons: Used for character icons
    • images/songs: Used for song popups
  • music: Non-gameplay related music (pause menu, game over, etc.)
  • notetypes: Script files related to note types
  • scripts: Scripts that should run on every song for this content folde.
  • shaders: Shader files. Make sure to use the proper file format (.frag for fragment shaders and .vert for vertex shaders)
  • songs: Songs used for gameplay. Charts, etc should go here
    • songs//Inst.ogg: The instrumental for the song. Make sure this is an ogg file!
    • songs//Voices.ogg: The voices for the song. Make sure this is an ogg file!
    • songs//.json: The chart for the song
    • songs//metadata.json: Contains information about who composed, charted and modcharted the song. Will probably be deprecated in the future, like events.json
    • songs//events.json: Contains event data. Do not use this please, the events are saved in the normal json when you save the chart dont use events.json please
    • You can also have any amount of .hscript or .lua files named anything. These scripts will be ran whenever the song is played An example of a song folder, including 2 hscript files, 1 lua file, a metadata file
  • sounds: All sound effects.
  • substates: HScript files used for custom substates.

TODO: add an example metadata.json im going to bed

Clone this wiki locally