mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-11-25 21:55:55 +00:00
4.5 KiB
4.5 KiB
Compiling Friday Night Funkin'
- Setup
- Download Haxe from Haxe.org
- Download Git from git-scm.com
- Do NOT download the repository using the Download ZIP button on GitHub or you may run into errors!
- Instead, open a command prompt and do the following steps...
- Run
cd the\directory\you\want\the\source\code\into specify which folder the command prompt is working in.- For example,
cd C:\Users\YOURNAME\Documentswould instruct the command prompt to perform the next steps in your Documents folder.
- For example,
- Run
git clone https://github.com/FunkinCrew/funkin.gitto clone the base repository. - Run
cd funkinto enter the cloned repository's directory. - Run
git submodule update --init --recursiveto download the game's assets.- NOTE: By performing this operation, you are downloading Content which is proprietary and protected by national and international copyright and trademark laws. See the LICENSE.md file for the Funkin.assets repo for more information.
- Run
haxelib --global install hmmand thenhaxelib --global run hmm setupto install hmm.json - Run
hmm installto install all haxelibs of the current branch - Run
haxelib run lime setupto set up lime - Perform additional platform setup
- For Windows, download the Visual Studio Build Tools
- When prompted, select "Individual Components" and make sure to download the following:
- MSVC v143 VS 2022 C++ x64/x86 build tools
- Windows 10/11 SDK
- Mac:
lime setup macDocumentation - Linux:
lime setup linuxDocumentation - HTML5: Compiles without any extra setup
- For Windows, download the Visual Studio Build Tools
- If you are targeting for native, you may need to run
lime rebuild <PLATFORM>andlime rebuild <PLATFORM> -debug lime test <PLATFORM>to build and launch the game for your platform (for example,lime test windows)
Build Flags
There are several useful build flags you can add to a build to affect how it works. A full list can be found in project.hxp, but here's information on some of them:
-debugto build the game in debug mode. This automatically enables several useful debug features.- This includes enabling in-game debug functions, disables compile-time optimizations, enabling asset redirection (see below), and enabling the VSCode debug server (which can slow the game on some machines but allows for powerful debugging through breakpoints).
-DGITHUB_BUILDwill enable in-game debug functions (such as the ability to time travel in a song by pressingPgUp/PgDn), without enabling the other stuff
-DFEATURE_POLYMOD_MODSor-DNO_FEATURE_POLYMOD_MODSto forcibly enable or disable modding support.-DREDIRECT_ASSETS_FOLDERor-DNO_REDIRECT_ASSETS_FOLDERto forcibly enable or disable asset redirection.- This feature causes the game to load exported assets from the project's assets folder rather than the exported one. Great for fast iteration, but the game
-DFEATURE_DISCORD_RPCor-DNO_FEATURE_DISCORD_RPCto forcibly enable or disable support for Discord Rich Presence.-DFEATURE_VIDEO_PLAYBACKor-DNO_FEATURE_VIDEO_PLAYBACKto forcibly enable or disable video cutscene support.-DFEATURE_CHART_EDITORor-DNO_FEATURE_CHART_EDITORto forcibly enable or disable the chart editor in the Debug menu.-DFEATURE_STAGE_EDITORto forcibly enable the experimental stage editor.-DFEATURE_GHOST_TAPPINGto forcibly enable an experimental gameplay change to the anti-mash system.
Troubleshooting - GO THROUGH THESE STEPS BEFORE OPENING ISSUES ON GITHUB!
- During the cloning process, you may experience an error along the lines of
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)due to poor connectivity. A common fix is to rungit config --global http.postBuffer 4096M. - Make sure your game directory has an
assetsfolder! If it's missing, copy the path to yourfunkinfolder and runcd the\path\you\copied. Then follow the guide starting from Step 4. - Check that your
assetsfolder is not empty! If it is, go back to Step 4 and follow the guide from there. - The compilation process often fails due to having the wrong versions of the required libraries. Many errors can be resolved by deleting the
.haxelibfolder and following the guide starting from Step 5.