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

.json

Psych Engine

.json

Codename Engine

.xml

FNF 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:

1

Use Select directory with spritesheets or Menu bar: Select files to load your atlas files.

2

Go to Menu bar: Import and select FNF: Import settings from character data files.

3

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
idleDefault standing/dancing animation
singLEFTLeft note singing pose
singDOWNDown note singing pose
singUPUp note singing pose
singRIGHTRight note singing pose
singLEFTmissMissing left note reaction
heySpecial cheer/wave animation
scaredFear reaction (GF characters)

Common Prefix Patterns

XML Prefix Maps To
BF idle danceidle
BF NOTE LEFTsingLEFT
GF Dancing Beatidle
spooky dance idleidle

Custom Naming with Find/Replace

Use Find/Replace Rules to standardize naming across characters:

Find: BF NOTE (LEFT|RIGHT|UP|DOWN)
Replace: sing$1
Enable regex for pattern matching.

Known 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 danceLEFT and danceRIGHT, both using the prefix GF Idle Dance from the XML.
  • The tool will only export danceLEFT in this case.

Workaround

Manually remove the indices from that animation in the override settings window.