Created on 02/09/2025
Last time I played Friday Knight Funkin was about two or three years ago, so I wanted to give it another try. I felt like nostalgia, but in the short term.
The thing is, I’m using Linux Mint, and FNF and most of its mods are primarily built for Windows. So there are some concessions to do here.
I’m using a potato PC, and I remember that on Windows, FNF was a bit slow, with low FPS, and sometimes crashed for no reason. Also, you cannot edit keybinds (try to play with WASD or arrows) and there is no week 7.
UPDATE: after trying to play it on Linux, I couldn’t run it because it needs a specific version of glibc. Awesome.
That’s why I prefer playing FNF FPS Plus, which is an engine mod that adds more than welcome features: a new input system, more accurate and closer to ones from other rhythm games, uncapped fps, editable keybinds, ghost tapping as well as week 7.
However, there is no Linux build on gamebanana, so here are the instructions to build the game.
If you don’t want to bother compiling the game (which I completely understand), you can download the game files here (warning: has a size of almost 1 GB). I uploaded them on Github instead of Codeberg since the former has a higher storage limit.
Have fun!
Haxe is the programming language used to develop FNF. It can be transpiled to other languages (here, JavaScript on Web and C++ on Desktop) to get better performance.
To install Haxe on Ubuntu and its derivatives you have to type these commands (see this page if you’re using another distro).
sudo apt add-repository ppa:haxe/releases
sudo apt update
sudo apt install haxe -y
mkdir ~/haxelib && haxelib setup ~/haxelib
I’ll explain what each command does :
update
command looks for available updates defined in reference files. With the previous command, the ppa package overwrites the default one.neko
and haxelib
).haxelib
is Haxe’s package manager, and it needs a directory to store installed libraries.Yep, you read that right. This is because of the cutscenes, which require VLC C libraries to be played.
After some research (i.e. very long trials and errors), I could establish a single command to install all the necessary packages.
sudo apt install libvlccore-dev libvlc-dev vlc
You need those three packages, otherwise you will get compile-time errors, or linker ones if you don’t have vlc
.
Yeah, the game has a complex architecture.
Instructions were taken from the project readme, but I’m writing them here to save you time.
First, you have to type these commands:
haxelib --global install hmm
haxelib --global run hmm setup
hmm install
haxelib run lime setup
lime build linux
setup
command creates aliases. Otherwise you’d have to write haxelib --global run hmm [command] [options]
.hmm.json
file in the project, including lime
.You will find the executable and the necessary content inside export/release/linux/bin/
. The bin
directory has a size of 991.9 MB. Thunar crashed after being done zipping the whole content (:
C++ compilation is too slow. It took 42 minutes for my laptop to compile the project.
Here is the output of time
command:
real 42m33,364s
user 76m31,040s
sys 4m4,015s
There are many reasons explaining that:
find $DIR_NAME -type f | wc -l
where $DIR_NAME
was include
, then src
.Note that my build is in debug mode. I don’t even want to know how long it would have taken for release mode.
These are advices about the game configuration, but it’s a matter of preference. Feel free to tweak more settings, so that you can play comfortably.
On first launch you will be welcomed by a cache settings screen. If like me, you have a low-end PC, disable music and graphics. You can find this setting again on the Misc category.
Despite all those annoyments, I like this game, even though I prefer staying far from its community. I have a huge respect for devs caring about improvement, and sharing them. Shoutout to Rozebud for this project and his passion, and this also applies to devs of Kade Engine and Psych Engine.
I hope that you will understand that as well.
— pgmtx