Skip to main content
The Chart Editor is a comprehensive built-in tool for creating and editing song charts. It features a visual grid-based interface with advanced toolboxes for managing notes, events, metadata, and more.

Opening the Chart Editor

There are several ways to access the Chart Editor:
1

From Main Menu

Press ~ (tilde) to open the debug menu, then select Chart Editor
2

From Play State

While playing a song in debug mode, press the CHART hotkey to open the editor with the current song loaded
3

Direct Launch

Navigate to the Chart Editor option in the debug menu

Interface Overview

The Chart Editor interface consists of several key components:

Main Grid

The central grid displays your chart visually:
  • Grid Size: 40 pixels per step (160 pixels per beat)
  • Left Side: Opponent/Dad notes (4 lanes)
  • Right Side: Player/BF notes (4 lanes)
  • Vertical Axis: Time (scrolls vertically)
  • Measure Ticks: Visual indicators for beats and measures

Playhead

The red playhead shows your current position in the song:
  • Moves during playback
  • Can be clicked and dragged for precise positioning
  • Position displayed in steps, beats, and milliseconds

Audio Waveforms

Visual representation of the song’s audio:
  • Instrumental waveform
  • Vocal waveforms (player and opponent)
  • Helps align notes with audio peaks

Keyboard Shortcuts

File Operations

ShortcutActionDescription
Ctrl+NNew ChartCreate a new chart
Ctrl+OOpen ChartLoad an existing chart
Ctrl+SSave ChartSave current chart
Ctrl+Shift+SSave AsSave with a new name
Ctrl+QExitReturn to main menu

Edit Operations

ShortcutActionDescription
Ctrl+ZUndoUndo last action
Ctrl+YRedoRedo last undone action
Ctrl+XCutCut selected items
Ctrl+CCopyCopy selected items
Ctrl+VPastePaste copied items
DeleteRemoveDelete selected items

Selection

ShortcutActionDescription
Ctrl+ASelect All NotesSelect all notes in chart
Ctrl+Alt+ASelect All EventsSelect all events in chart
Ctrl+IInvert SelectionInvert current selection
Ctrl+DDeselect AllClear selection
Shift+HomeSelect Before CursorSelect all items before playhead
Shift+EndSelect After CursorSelect all items after playhead

Note Manipulation

ShortcutActionDescription
Ctrl+Shift+MMirror XMirror notes horizontally (swap lanes)
Ctrl+Alt+MMirror YMirror notes vertically (flip timing)
Ctrl+Shift+Alt+MMirror XYMirror both axes

Difficulty & Navigation

ShortcutActionDescription
Ctrl+←Previous DifficultySwitch to easier difficulty
Ctrl+→Next DifficultySwitch to harder difficulty
EnterPlaytest FullTest chart with full UI
Shift+EnterPlaytest MinimalTest chart with minimal UI

Playback Controls

ShortcutActionDescription
SpacePlay/PauseToggle audio playback
←/→Nudge PlayheadMove playhead by 1 snap unit
↑/↓ScrollScroll grid up/down
Page Up/DownJumpJump by large intervals
HomeGo to StartJump to beginning of song
EndGo to EndJump to end of song

Placing Notes

1

Select Note Type

Click on a note color in the note palette above the grid (4 colors for each direction)
2

Click to Place

Click on the grid where you want the note to appear
  • Left 4 columns: Opponent notes
  • Right 4 columns: Player notes
3

Create Hold Notes

Click and drag downward to create a hold note
  • The length determines how long the player must hold
  • Release to set the hold note length
4

Adjust Snapping

Use the snap selector to change note precision:
  • 4th notes (quarter notes)
  • 8th notes (eighth notes)
  • 16th notes (sixteenth notes, default)
  • Up to 192nd notes for precision charting

Working with Events

Events trigger special actions during gameplay:
Focus the camera on different characters:
  • Focus Camera Left: Focus on opponent
  • Focus Camera Right: Focus on player
  • Focus Camera Center: Focus on center/girlfriend
Control camera zoom:
  • Zoom Camera: Zoom in effect
  • Reset Zoom: Return to default zoom
Control song playback:
  • Set Instrumental: Switch instrumental track
  • Set Vocals: Switch vocal track
  • Trigger Script: Call custom chart script functions

Toolboxes

The Chart Editor provides several toolboxes for different functions:

Metadata Toolbox

Configure song information:
  • Song ID: Internal identifier
  • Song Name: Display name
  • Artist: Song artist/composer
  • Charter: Who created the chart
  • Stage: Which stage to use
  • Characters: Player, opponent, girlfriend
  • BPM: Starting beats per minute
  • Scroll Speed: Chart scroll speed multiplier

Difficulty Toolbox

Manage chart difficulties:
  • Create new difficulties
  • Switch between difficulties
  • Copy charts between difficulties
  • Set difficulty names and colors

Note Data Toolbox

Edit individual note properties:
  • Note kind (normal, alt animation, mine, etc.)
  • Custom parameters
  • Hit sound override
  • Visual note style

Event Data Toolbox

Configure event properties:
  • Event type
  • Event parameters
  • Event timing
  • Preview event effect

Offsets Toolbox

Adjust audio synchronization:
  • Instrumental Offset: Offset for the backing track
  • Vocal Offset: Offset for character vocals
  • Audio Sync Test: Test sync with gameplay

Freeplay Toolbox

Configure freeplay menu settings:
  • Album art
  • Preview start time
  • Preview duration
  • Difficulty list order

Workflow Tips

Pro Tip: Use the waveform display to align notes with audio peaks for better chart feel
1

Import Audio

Load your instrumental and vocal tracks through the Metadata toolbox
2

Set BPM

Configure the starting BPM and any BPM changes in the song
3

Place Notes

Chart the notes by listening to the song and clicking on the grid
4

Add Events

Place camera and effect events at key moments
5

Playtest

Press Enter to test your chart and make adjustments
6

Polish

Fine-tune offsets, adjust difficult sections, and test multiple times
7

Save

Save your chart with Ctrl+S when complete

Context Menu

Right-click on notes, holds, or events to access quick actions:
  • Edit properties
  • Delete item
  • Select similar items
  • Flip/mirror
  • Extend/shorten holds

Advanced Features

Time Signature Changes

Support for non-4/4 time signatures:
  • Add time change markers
  • Specify numerator and denominator
  • Grid automatically adjusts

BPM Changes

Handle tempo changes mid-song:
  • Add BPM markers at any point
  • Smooth or instant transitions
  • Grid spacing adjusts automatically

Multiple Variations

Create alternate versions of charts:
  • Different character combinations
  • Remixes and alternate instrumentals
  • Practice mode variations

Live Input Preview

Test note patterns while charting:
  • Number Keys Mode: 1-8 keys for 8 lanes
  • WASD Mode: WASD + Arrow keys
  • Hear hitsounds without full playtest

Chart Editor Commands

The editor uses a command pattern for undo/redo support:
  • AddNotesCommand: Place new notes
  • RemoveNotesCommand: Delete notes
  • MoveNotesCommand: Reposition notes
  • ExtendNoteLengthCommand: Adjust hold lengths
  • FlipNotesCommand: Flip note timing
  • MirrorNotesCommand: Mirror note positions
  • AddEventsCommand: Place events
  • RemoveEventsCommand: Delete events
All commands are fully undoable with Ctrl+Z.

Performance Tips

Large Charts: Charts with 1000+ notes may experience slowdown. Consider optimizing the grid rendering if needed.
  • Use the measure tick display for visual rhythm reference
  • Hide toolboxes you’re not using to reduce UI clutter
  • Test on the target difficulty setting (scroll speed matters)
  • Save frequently to avoid losing work

File Formats

The Chart Editor supports:
  • FNF Chart Format: Native .json format
  • Legacy Format: Import from older FNF versions
  • Import: Support for some community formats
Charts are saved in: data/songs/[song-id]/[song-id]-chart.json

Build docs developers (and LLMs) love