Friday Night Funkin' Guide
Extract and process FNF character sprites and animations
Some sections of this guide were partially written by AI and may be refined over time.
What is Friday Night Funkin'?
Friday Night Funkin' (FNF) is a popular rhythm game with a vibrant modding community. Characters are typically stored as texture atlases with accompanying "character data files" in JSON or XML format. These files define animation properties like scale, FPS, and more.
Engine Support
TextureAtlas Toolbox supports character data from multiple FNF engines:
Kade Engine
.jsonPsych Engine
.jsonCodename Engine
.xmlFNF File Structure
Most engines follow a similar folder layout:
assets (or mod folder)
+-- characters
| +-- character.json
+-- images/characters
+-- character1.png
+-- character1.xml
Example: Psych Engine JSON
{
"animations": [
{
"name": "idle",
"prefix": "BF idle dance",
"fps": 24,
"loop": false,
"indices": [],
"offsets": [0, 0]
},
{
"name": "singLEFT",
"prefix": "BF NOTE LEFT",
"fps": 24,
"loop": false,
"indices": [],
"offsets": [-5, -6]
}
],
"image": "character1",
"scale": 1,
"sing_duration": 6.1,
"healthicon": "bf"
}
The following fields are ignored by TextureAtlas Toolbox and are not required: offsets, healthicon, sing_duration
Loading FNF Character Settings
To automatically import character settings:
Use Select directory with spritesheets or Menu bar: Select files to load your atlas files.
Go to Menu bar: Import and select FNF: Import settings from character data files.
Use Show user settings to confirm, or double-click an animation entry in the list to preview the output.
Animation Naming Conventions
Standard Animation Names
| Name | Description |
|---|---|
idle | Default standing/dancing animation |
singLEFT | Left note singing pose |
singDOWN | Down note singing pose |
singUP | Up note singing pose |
singRIGHT | Right note singing pose |
singLEFTmiss | Missing left note reaction |
hey | Special cheer/wave animation |
scared | Fear reaction (GF characters) |
Common Prefix Patterns
| XML Prefix | Maps To |
|---|---|
BF idle dance | idle |
BF NOTE LEFT | singLEFT |
GF Dancing Beat | idle |
spooky dance idle | idle |
Custom Naming with Find/Replace
Use Find/Replace Rules to standardize naming across characters:
BF NOTE (LEFT|RIGHT|UP|DOWN)sing$1Known Issues & Limitations
Shared animation prefixes with different indices
When a character data file contains multiple animations using the same XML/TXT animation name but with different indices, the tool only recognizes the first entry.
Example
When exporting GF_assets from Psych Engine with the gf.json file:
- The JSON defines both
danceLEFTanddanceRIGHT, both using the prefixGF Idle Dancefrom the XML. - The tool will only export
danceLEFTin this case.
Workaround
Manually remove the indices from that animation in the override settings window.