Vs Sonic.exe Psych Engine Port [PRO ✯]

Example: SONIC_EXE.xml should contain frames like SonicExe idle , SonicExe singLEFT , etc. Create data/characters/SONIC_EXE.json :

mods/ └── vs_sonic_exe/ ├── data/ │ ├── songs/ │ ├── characters/ │ └── stages/ ├── songs/ ├── images/ ├── sounds/ └── _metadata.xml Step 1 – Convert Sprites Psych Engine uses .xml for sprite sheets (Flash-like). Original mod uses .txt (Sparrow) or .json . Use FNF Sprite Sheet Converter or manually convert. vs sonic.exe psych engine port

{ "stage": "sonic_stage", "background": "sonicBG", "default_zoom": 0.9, "is_static": false, "positions": { "boyfriend": [600, 450], "girlfriend": [1000, 500], "opponent": [1100, 300] }, "camera_speed": 1 } Place stage sprites in images/sonic_stage/ . Convert Charts Original .json charts from FNF are compatible with Psych Engine’s chart format (same structure). If they fail, use Psych Engine’s built-in Chart Editor (press 7 in freeplay) to re-chart manually. Song Metadata data/songs/too-slow/song.json : Example: SONIC_EXE

function onSongStart() triggerEvent('Screen Shake', '0.05,0.1', '0.2,0.1') setProperty('defaultCamZoom', 0.7) end function onBeatHit() if curBeat % 8 == 0 then triggerEvent('Add Camera Zoom', '0.03', '0.03') end end Use FNF Sprite Sheet Converter or manually convert

This recreates EXE’s signature screen shake and zoom effects. Add song to Freeplay Edit mods/vs_sonic_exe/data/freeplaySonglist.json :

For , use DialogueBoxPsych . 6. Lua Scripting (Optional but Powerful) Psych Engine allows per-song Lua scripts in data/songs/too-slow/script.lua :

{ "animations": [ {"name": "idle", "anim": "idle", "fps": 24, "loop": true, "indices": []}, {"name": "singLEFT", "anim": "singLEFT", "fps": 24, "loop": false}, {"name": "singDOWN", "anim": "singDOWN", "fps": 24, "loop": false}, {"name": "singUP", "anim": "singUP", "fps": 24, "loop": false}, {"name": "singRIGHT", "anim": "singRIGHT", "fps": 24, "loop": false} ], "position": [700, 100], "camera_position": [0, 0], "flip_x": false, "healthicon": "sonic_exe_icon", "healthbar_colors": [150, 0, 0] } Repeat for , GF , and Sonic.exe (opponent). 3. Stage Porting Create Stage JSON data/stages/sonic_stage.json :