When The Funkin’ Crew paused content work to rebuild Friday Night Funkin’ from the ground up, many players were confused. The older game could still run standard weeks, so the rewrite looked excessive from the outside.
This article looks at the structural reasons behind the FNF V-Slice overhaul: the limits of the old prototype base, the gradual input changes, and the official move toward native modding support.
Audience: New players
Last verified: 2026-07-01
Builds checked: Desktop v0.8.4 (2026-03-26) and Android v0.8.5 hotfix (2026-04-06)
1. Outgrowing the Ludum Dare foundation
Friday Night Funkin’ started in October 2020 during Ludum Dare 47. It was built quickly, which was fine for a jam prototype, but that same speed-first foundation became a maintenance problem once the game kept expanding.
By 2022, the team was already describing the old code as difficult to extend safely. In Tha V-Slice, they described the previous engine as being held together with “duct tape.”
Two practical problems kept coming up:
- Asset and memory handling were weak enough that larger custom content could push the game toward crashes or instability.
- Game content and engine code were tightly coupled, so adding songs, replacing sprites, or changing UI often meant touching core code and rebuilding the game.
For a multi-platform release strategy, the team needed something more modular. The V-Slice rewrite separated engine logic from data and content so the official game could scale more cleanly.

Figure 1 - Author-made diagram showing the shift from tightly coupled content to a more modular structure.
2. Input evolved in stages
Input matters more in FNF than almost any other system. Players feel it immediately when timing becomes inconsistent or frame drops start interfering with note registration.
Legacy FNF used older HaxeFlixel input handling, and players frequently reported swallowed inputs under stress conditions such as dense charts or loading hitches.
The key point is that input improvements arrived in stages, not all at once.

Figure 2 - Author-made timeline based on official release notes.
Stage 1: V-Slice launch at v0.3.0
The initial V-Slice release in April 2024 did not jump directly to SDL3. It shipped on a heavily reworked SDL2-based path through updated engine libraries, with the goal of making input less dependent on the rendering loop.
Stage 2: SDL3 at v0.8.4
In v0.8.4, released on March 26, 2026, the team moved from SDL2 to SDL3 on desktop. Official release notes describe the result as more responsive and more accurate input, along with controller improvements and an optional unlocked framerate.
That means players comparing early v0.3.x builds to v0.8.4+ may notice real changes in feel even though both builds belong to the same overall V-Slice era.
3. Native modding on the official engine
Before V-Slice, the base game had no strong native mod sandbox. Community engines such as Kade and Psych filled that gap, which is part of why so much of the modding scene moved outside the official base game.
V-Slice changed that by standardizing official modding around two technologies.
Polymod
Polymod gives the official game a sandboxed file-loading layer. Instead of overwriting base files, mod assets are loaded from a mods/ directory at runtime.
That matters because it makes mod installation safer, easier to undo, and better aligned with long-term engine maintenance. Starting in v0.3.2, the official game could also load ZIP mods as long as _polymod_meta.json sits at the archive root.

Figure 3 - Author-made concept illustration of Polymod-style sandbox loading.
HScript
Community engines often rely on Lua for gameplay scripting. The official V-Slice engine uses HScript, which is an interpreted Haxe-style scripting layer and fits the official codebase more directly.
In practical terms:
- Psych and Kade mods are not drop-in compatible with the official engine
- official-engine mods are expected to use Polymod packaging and HScript-based behavior
- the official approach favors engine-aligned extensibility instead of cross-engine compatibility
References
Official sources
- Tha V-Slice - funkin.me blog (2023-02-10)
- v0.8.4 release notes - SDL3 input upgrade
- GitHub issue #4748 - controller input and SDL3 discussion
- Using HScript - official modding documentation
- Polymod metadata documentation

