--- Enhanced Rhythm Game Mod ---


Update 1.1:

* Smoother song preview in rhythm room
* New variable read for track start time (customsong_info's 9th line)
* Brought back missing scripts of "Charter Fan Fixes" mod

Update 1.2:

* Automatic Track Start Pos and Track Lenght set (if both numbers of those variables in song_info are nonexistent)
* Hard Mode Chart support
* Fixed Chart Load from SongCharts folder
* Added "No Save File Found" message popup in editor
* Added edited chart loading of existing songs (from Rude Buster to Knock You Down)
* Custom Lyrics support
* New variable check - Mixed or Separated Songs Play (like play both audio or only one of them)
* Fixed player teleport after beating custom song entry

Update 1.3:

* Album Selector Added (now you can have specific songs in specific albums)
  ^ In case if you dont have AlbumsInfo.txt
* Little update of Music Events - you can now change the variables of rhythm game (still no clue how to edit BPM with that)
* Little addition to Music Events - you can now load existing sprites over performers via searching for its name (if 5th variable in event is "sprite_get_name")
* Update to Song Selector system - You can select Hard Mode Play in Song Selector itself (Press C)
* Custom Lighters Live Background Support

Update 1.4:

* You can now load custom songs out of number order (e.x. you can load song 4 despite not having song 3 info; works in charter too)
* Made Song Image Cover selectable (aka new 12th variable in song info - just type in the name of your png file)
* New "Custom Songs" album category
* Updated Chart Editor (Song Menu Part)
* New "Debugless" way of opening Chart Editor - new interactable computer that can make editor popup as portable menu
* Updated template files
* Fixed XDelta patch

Update 1.4.5:

* Fixed preview for Original Songs
* Made Rhythm Room accessable w/o need to recruit chapter 3 enemies first

Update 1.4.6:

* Fixed crusual memory leaking scripts
* Made editor change "TAMBOURINE" text to "VOCALS" whenever it finds custom song lyrics file for selected song in song menu
* Fixed crash that is caused by having any custom song files BUT song info file 1
* Fixed crash that is caused by song info having no "Song Image Name" line written (12th line)

Update 1.4.7 - Made mod work on newest game patch (v137)
Update 1.4.8 - Made mod work on newest game patch again (v138 or whatever I hate updates)

(To update mod, simply do the Code Part install step)


! WARNING ! This mod was made ONLY for Chapter 4



Features:

* Brand new Song Select Menu for rhythm room (unused songs included).

* Automatic and Easy Custom Song Porting (most of it goes to SongCharts folder)
  ^ Supports Song Events - music_timing_customsong_events
  ^ Supports automatic Chart File loading - music_timing_customsong (" ", "_drums" and "_vocals")
  ^ Supports Ranks Scores 
  ^ Supports Custom Lyrics - music_timing_customsong_lyrics
  ^ All songs go to CUSTOM_SONGS folder (still in .ogg format)

* Rhythm Chart Editor Fixes and Upgrades

* New Song Image Cover Support (in SongAlbums Folder, .png format)
* New Album Song Selector (its info in SongCharts Folder, in AlbumsInfo.txt)
* New Custom Lighters Live Background Support (in SongAlbums Folder, only "rhythm_custom_bg.png")



How to install the mod:

0 - Extract the folder containings from ZIP file (anywhere, but preferable in appdata's deltarune folder)

1 - Install Code Part

   0. Download DeltaPatcher (if you haven't done that yet)
   1. Load your data.win file of Chapter 4 into the "Original File" slot
      ^ note that you need unmodified version of it
   2. Load my XDelta patch into, well, "XDelta patch" slot (ERS_vX_X_X.xdelta that is)
   3. Press "Apply patch"
   4. Profit

2 - Install Assets Part
   1. All of Assets folder Containings (charts, song info, song events, image covers) go to %localappdata%\DELTARUNE
   2. All of Custom Songs files (containings of mus folder e.x.) go to (your game folder)\mus\CUSTOM_SONGS

Consider memorizing those for Custom Song adding



How to add Custom Songs:

0) Things to know (as I mentioned earlier)
   1. The folder where all of your song charts, image covers and save files are included - %localappdata%\DELTARUNE
   2. The folder where all of your custom song music is stored - (your game folder)\mus\CUSTOM_SONGS

1) Song Information Adding
   1. Copy paste the customsong_info_template.txt file
   2. Edit its containings to the variables you need
      ^ let me break down each of variable:
	1 - Name of Song File w/o guitar
	2 - Name of Song's guitar sounds
	3 - Lenght of the song (in seconds)
	4 - BPM
	5 - Notes' speed
	6 - Ranks (C, B, A, S, T)
	7 - Name of (low quality) Song Preview sound
	8 - Name of (crisp) Song Preview sound
	9 - The start position of track (usually zero, but if you want it to start a bit later put negative numbers in it)
	10 - Name of the song
	11 - Mix/Separated Songs Play (if it's set at "true" - separated play; if anything else - mixed play)
	12 - Song Image Cover Name
   3. Save your file as `music_timing_customsong_infoX.txt` (X - the entry number of your song)

2) Song Chart Making
   1. Go to Chart Editor (either use save file with 40266 Room ID or any other way to access it)
   2. Select the new Custom Song entry you just made via Song Info file
   3. Chart the song for every single instrument
      ^ Not gonna explain how to do that, the charter is self explainotory and enchanced thanks to applied Charter Fan Fixes mod scripts

3) Song Image Cover
   0. Just make 175x175 PNG file and call whatever you want it (if you havent yet)
	^ It's recommended to NOT rename names of first 5 image covers
   1. Type in the name of your PNG file (or the pre-existing one) in 12th line of song info

4) Song Events Adding
   1. Copy paste the customsong_events_template.txt file
   2. Edit its containings to the variables you need
      ^ let me break down each of variable in one line:
	1 - Instrument choose (only drums or vocals)
	2 - Track Position
	3 - Action (sprite_index/mid/idle - sprite, animspeed/shakeamt - animation)
	4 - Action's variable (ID of Sprite, Shake Power and etc)
	5 - Sprite Load condition (if it's "sprite_get_name" it loads sprite by its name; if not - by its index)
   3. Save your file as `music_timing_customsong_eventsX.txt` (X - entry number of your song)

5) Custom Lyrics note
   0. Just to point things up, game syncs lyrics words with ralsei's chart inputs
      ^ Input info
	1. "-" symbol works as separater for words per note - for example var "ral-sei" will look like "ralsei" but it will take 2 notes for full fill
	2. [X:Y] code is for fitting symbols (Y) into specific symbols lenght (X) - for example var [8:kris] will look like kris word being stratched by 2 times.

   1. Copy paste the customsong_events_template.txt file
   2. Edit its containings to the variables you need
      ^ let me break down each of variable in one line:
	1 - Track Position -> either Lyrics Start (if 2nd variable is set) or Lyrics Clear (if only this variable is set)
	2 - Normal Lyrics
	3 - Censored Lyrics (ignores if empty)
   3. Save your file as `music_timing_customsong_lyricsX.txt` (X - entry number of your song)


EXTRAS:

1) How to add Custom Albums:
   1. Open AlbumsInfo.txt in SongAlbums/ folder
   2. Add required variables (or Edit the fourth existing line)
      ^ let me break down each of variable in one line:
	1 - Album Name
	2 - Album Songs Length (if -1, loads all)
	3+ - Song ID (add those variables as much as your album will contain depending on second variable)

2) How to add Custom Background - just edit the rhythm_custom_bg.png image, that's it.



--- !!! !!! !!! ---