Skip to main content

Game Overview

Friday Night Funkin’ is a rhythm game where you play as Boyfriend, battling opponents in musical rap battles. Your goal is to hit notes in sync with the music, maintaining your health bar to win each song.
The game runs at 60 FPS with a resolution of 1280x720 by default. All gameplay timing is synchronized to this framerate.

Controls

Note Controls

Hit arrow notes using these keys (default bindings):

Left

A or Left Arrow

Down

S or Down Arrow

Up

W or Up Arrow

Right

D or Right Arrow
Controls.hx:118-133
// Note input definitions
public var NOTE_LEFT(get, never):Bool;
public var NOTE_DOWN(get, never):Bool;
public var NOTE_UP(get, never):Bool;
public var NOTE_RIGHT(get, never):Bool;
Controller Support: The game fully supports gamepad input! Use the D-pad or left stick for notes, and face buttons for menu navigation.
Navigate menus with these controls:
ActionKeysDescription
Navigate UpW, Up ArrowMove selection up
Navigate DownS, Down ArrowMove selection down
Navigate LeftA, Left ArrowMove selection left
Navigate RightD, Right ArrowMove selection right
Accept/ConfirmEnter, SpaceSelect menu item
Back/CancelEscape, BackspaceGo back to previous menu

In-Game Controls

ActionKeysDescription
PauseEnter, EscapePause the game mid-song
ResetRRestart the current song
Volume Up+ (Plus)Increase volume by 10%
Volume Down- (Minus)Decrease volume by 10%
Volume Mute0 (Zero)Toggle mute
FullscreenF11Toggle fullscreen mode
ScreenshotF3Take a screenshot (saved to screenshots/ folder)
VolumePlugin.hx:29-32
// Rebindable volume keys
if (PlayerSettings.player1.controls.VOLUME_MUTE) FlxG.sound.toggleMuted();
else if (PlayerSettings.player1.controls.VOLUME_UP) FlxG.sound.changeVolume(0.1);
else if (PlayerSettings.player1.controls.VOLUME_DOWN) FlxG.sound.changeVolume(-0.1);
Controls can be customized in the Options > Controls menu. Your keybindings are saved per-profile.

Freeplay-Specific Controls

ActionKeysDescription
Favorite SongTabMark song as favorite
Switch InstrumentalQ / EChange between instrumental versions
Character SelectSpaceOpen character selection
Jump to TopHomeJump to first song
Jump to BottomEndJump to last song

Debug Controls (Debug Builds Only)

These hotkeys only work in debug builds or with -DGITHUB_BUILD:
ActionKeysDescription
Debug Menu~ (Tilde)Open debug menu
Chart Editor7Open chart editor
Stage Editor8Open stage editor
Time Travel ForwardPage UpSkip forward 2 sections (Shift: 20 sections)
Time Travel BackwardPage DownSkip backward 2 sections (Shift: 20 sections)
End Song1Immediately end song
Gain Health2Add 10% health
Lose Health3Lose 5% health
Hide UIHToggle UI visibility
Hot ReloadF5Reload assets without restarting
Force CrashCtrl+Alt+Shift+LTrigger crash log (main menu only)
For a complete list, see the Debug Hotkeys documentation.

Gameplay Mechanics

The Note System

1

Notes Approach

Arrow notes scroll up from the bottom of the screen toward the receptor arrows at the top.
2

Hit in Time

Press the corresponding arrow key when the note reaches the receptor. Timing determines your accuracy rating.
3

Maintain Health

Successful hits increase your health (green bar). Misses decrease health (red bar).
4

Win or Lose

Keep your health above zero to complete the song. If health reaches zero, you lose.

Timing Windows

Your accuracy is rated based on timing:

Sick!!

Perfect timing
Most health gain
Full combo intact

Good

Slightly off
Moderate health gain
Combo continues

Bad

Poor timing
Small health gain
Combo continues

Shit

Very poor timing
No health change
Combo broken
Miss: If you don’t hit a note at all, you lose health and your combo resets to zero. Multiple consecutive misses can quickly drain your health bar.

Health Bar System

The health bar at the bottom of the screen shows the battle state:
[====Opponent====|====You====]
     Red          |    Green
  • Green side (right): Your health
  • Red side (left): Opponent’s domain
  • The character icons move along the bar based on current health
  • Health reaches one extreme = game over

Scoring System

Your performance is tracked through:
Point value based on note accuracy:
  • Sick: 350 points
  • Good: 200 points
  • Bad: 100 points
  • Shit: 50 points

Hold Notes

Longer notes require you to:
  1. Hit the start of the note accurately
  2. Hold the key down for the duration
  3. Release after the note ends
Releasing a hold note early counts as a miss and breaks your combo!

Game Modes

Story Mode

Story Mode presents a narrative campaign with sequential songs:
1

Select a Week

Choose from available weeks (chapters). Each week contains 3-4 songs.
2

Choose Difficulty

Select Easy, Normal, or Hard difficulty before starting.
3

Play Through Songs

Complete all songs in the week sequentially. Your health carries between songs!
4

Watch Cutscenes

Enjoy story cutscenes between songs (can be skipped with Enter).
5

Complete the Week

Finish all songs without losing to unlock the next week and add songs to Freeplay.
StoryMenuState.hx:601
PlayStatePlaylist.isStoryMode = true;
In Story Mode, your health persists between songs in a week. If you barely survive song 1, you’ll start song 2 with that same low health!

Freeplay Mode

Freeplay Mode lets you play any unlocked song with more control:

Song Selection

Browse all unlocked songs from any week. Use Up/Down to navigate, Left/Right to change difficulty.

Character Selection

Play as different characters (Boyfriend, Pico, etc.) with unique vocals and styles.

Difficulty Options

Choose from multiple difficulty levels, including special variations for some songs.

Practice Mode

Perfect your skills on individual songs without story progression.
Freeplay Features:
Press Tab to favorite songs. Favorited songs appear at the top of your list for quick access.
Your best score and rank for each song/difficulty combination is saved and displayed in the song list.
Some characters unlock unique dialogue, artwork, and variations when selected in Freeplay.

Difficulty Levels

Each song typically offers multiple difficulties:
DifficultyDescription
EasySlower note speed, fewer notes, simpler patterns
NormalStandard experience, balanced challenge
HardFaster notes, complex patterns, more notes
ErectRemix difficulty with modified charts (select songs)
NightmareExpert-level challenge (select songs)
★ Special difficulties are only available for specific songs and may feature remixed instrumentals.

Advanced Techniques

Ghost Tapping

Ghost tapping prevents misses when you press arrow keys during sections with no notes.
project.hxp:343-344
// Ghost tapping feature flag
FEATURE_GHOST_TAPPING.apply(this, isMobile());
You can press any keys freely without penalty when you don’t have notes to hit. Only misses when you should hit a note but don’t.
You can enable ghost tapping on desktop with the build flag: -DFEATURE_GHOST_TAPPING

Combo Maintenance

Maintaining a high combo multiplier:
  1. Focus on consistency over perfect hits
  2. Anticipate patterns by watching upcoming notes
  3. Relax your hands to avoid tension and missed inputs
  4. Use audio cues in addition to visual timing

Input Offset Adjustment

If notes feel off-sync:
1

Open Options

Go to Options > Preferences
2

Adjust Input Offset

Modify the audio/visual offset to match your monitor and audio latency
3

Test and Refine

Play a familiar song and adjust until timing feels natural
This feature is only available on desktop builds with -DFEATURE_LAG_ADJUSTMENT (enabled by default).

Tips for New Players

Start on Easy

Don’t be ashamed to start on Easy difficulty! It’s the best way to learn patterns and timing.

Watch the Notes

Look ahead at upcoming notes rather than staring at the receptors. This helps you anticipate patterns.

Learn Patterns

Many songs have repeating patterns. Once you recognize them, they become much easier.

Take Breaks

If you’re struggling with a song, take a break. Fresh attempts often go better than grinding repeatedly.

Common Mistakes

Mashing keys: Pressing all arrows rapidly will break your combo. Press deliberately and in time with the music.
Ignoring hold notes: Many players miss hold notes by releasing early. Make sure to hold until the note ends.
Playing too tensely: Tension leads to slower reactions. Stay relaxed and let muscle memory guide you.

Performance Optimization

If you experience lag or performance issues:
1

Lower Graphics Quality

Disable visual effects in Options > Preferences
2

Close Background Programs

Free up system resources by closing unnecessary applications
3

Update Graphics Drivers

Ensure your GPU drivers are up to date
4

Use Release Builds

Debug builds have overhead—use release builds for optimal performance

Accessibility Options

Friday Night Funkin’ includes several accessibility features:
  • Naughtyness Toggle: Control explicit content display
  • Flashing Lights Warning: Disable intense visual effects
  • Colorblind Mode: Adjust note colors for better visibility
  • Custom Keybinds: Remap all controls to your preference
  • Gameplay Modifiers: Adjust scroll speed and other parameters
Access these in Options > Preferences.

Next Steps

Explore Modding

Create custom songs, characters, and more

Join the Community

Connect with other players and share tips

Chart Editor

Create your own custom charts (enable with -DFEATURE_CHART_EDITOR)

Contribute

Help improve the game on GitHub

Mobile Controls

On mobile devices (Android/iOS), the game uses touch controls:

Touch Arrows

Tap the on-screen arrow buttons to hit notes

Gesture Support

Swipe gestures for menu navigation
project.hxp:503
// Touch controls feature flag
FEATURE_TOUCH_CONTROLS.apply(this, isMobile());
Mobile builds automatically enable ghost tapping and other quality-of-life features to compensate for touch input latency.

Build docs developers (and LLMs) love