Prerequisites
Before compiling Friday Night Funkin’, you need to install the required tools:Haxe
Download from haxe.org
Required for compiling the game
Required for compiling the game
Git
Download from git-scm.com
Required for cloning the repository
Required for cloning the repository
Installation Steps
Navigate to Your Workspace
Open a command prompt/terminal and navigate to where you want the source code:
Download Game Assets
The game assets are in a separate submodule. Download them with:
Important Legal Notice: By downloading these assets, you are accessing proprietary content protected by copyright and trademark laws. See the assets LICENSE for terms.
Install Haxe Package Manager
Install
hmm (Haxe Module Manager) for managing dependencies:Having trouble with Lime?
Having trouble with Lime?
If you encounter issues installing Lime, try using Funkin’s patched libraries:
Install All Dependencies
Install all required Haxe libraries defined in This installs 30+ dependencies including:
hmm.json:- flixel: Game engine
- polymod: Modding framework
- hxvlc: Video playback (desktop)
- newgrounds: Newgrounds API
- And many more…
Platform-Specific Setup
Complete the setup for your target platform:
- Windows
- macOS
- Linux
- HTML5
Download Visual Studio Build ToolsWhen prompted, select “Individual Components” and install:
- ✅ MSVC v143 VS 2022 C++ x64/x86 build tools
- ✅ Windows 10/11 SDK
You don’t need the full Visual Studio IDE—just the Build Tools are sufficient.
Build Native Libraries (Optional)
For native desktop builds, rebuild the platform-specific libraries:Replace
windows with mac or linux for other platforms.This step is optional but recommended for first-time setup to ensure all C++ libraries are properly compiled.
Build Configurations
Debug vs Release Builds
- Debug Build
- Release Build
Debug builds include development features:Enabled Features:
- In-game debug functions (time travel with PgUp/PgDn)
- VSCode debug server for breakpoints
- Asset redirection from source folder
- No compiler optimizations
- Verbose logging
- Active development
- Testing and debugging
- Content creation
Common Build Flags
Customize your build with feature flags:A complete list of build flags is documented in
project.hxp. The flags control compilation of optional features to reduce build size and dependencies.Asset Redirection
For rapid iteration during development:assets/ folder instead of the export folder, allowing you to test changes without recompiling.
Build Output Locations
Compiled builds are placed in theexport/ directory:
Verify Your Build
Once the game launches, verify it’s working correctly:Quick Reference
Essential Commands
| Command | Purpose |
|---|---|
hmm install | Install/update all dependencies |
lime test <platform> | Compile and run the game |
lime build <platform> | Compile without running |
lime clean <platform> | Clean build artifacts |
lime rebuild <platform> | Rebuild native libraries |
File Locations
| Path | Contents |
|---|---|
source/ | Haxe source code |
assets/ | Game assets (submodule) |
project.hxp | Build configuration |
hmm.json | Dependency versions |
export/ | Compiled builds |
Next Steps
Learn to Play
Master the controls and gameplay mechanics
Start Modding
Create custom content with the modding framework
Contribute
Submit improvements to the main repository
Join Community
Connect with other developers and modders
Development Workflow
Once you have the game running, here’s a typical development workflow:Hot Reload (Optional)
Press F5 in-game to reload scripts and data without recompiling (debug builds only)
The hot reload feature (
F5) works for most assets and scripts but does not reload song charts or compiled code changes—those require a full recompile.