Vs Sonic.exe Psych Engine Port Official
Example: SONIC_EXE.xml should contain frames like SonicExe idle , SonicExe singLEFT , etc. Create data/characters/SONIC_EXE.json :
{ "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 : vs sonic.exe psych engine port
This recreates EXE’s signature screen shake and zoom effects. Add song to Freeplay Edit mods/vs_sonic_exe/data/freeplaySonglist.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 If they fail, use Psych Engine’s built-in Chart
{ "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 :
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.
For , use DialogueBoxPsych . 6. Lua Scripting (Optional but Powerful) Psych Engine allows per-song Lua scripts in data/songs/too-slow/script.lua :