Skip to main content

What is Friday Night Funkin’?

Friday Night Funkin’ is an open-source rhythm game originally created for Ludum Dare 47. Built using HaxeFlixel and developed with love for Newgrounds and its community, the game challenges players to hit notes in sync with the music while battling opponents in rap battles.

Open Source

Licensed under Apache 2.0, allowing you to explore, modify, and learn from the source code

Cross-Platform

Supports Windows, macOS, Linux, HTML5, Android, and iOS platforms

Moddable

Features built-in modding support via Polymod for custom songs, characters, and stages

Active Development

Continuously updated by The Funkin’ Crew with new features and content

Key Features

HaxeFlixel-Powered Engine

Friday Night Funkin’ runs on HaxeFlixel, a powerful 2D game framework that compiles to multiple platforms:
  • C++ for native desktop builds (Windows, Mac, Linux)
  • JavaScript for HTML5/web builds
  • Mobile support for Android and iOS
project.hxp
static final VERSION:String = "0.8.3";
static final TITLE:String = "Friday Night Funkin'";
static final MAIN_CLASS:String = "Main";

Multiple Game Modes

Progress through a narrative campaign with sequential songs and unlockable content. Story Mode presents songs in a structured order with cutscenes between battles.

Advanced Features

The game includes numerous sophisticated features:
Built-in chart editor for creating custom note patterns (enabled on desktop builds with -DFEATURE_CHART_EDITOR)
Design custom stages with character positioning and visual elements
Display your current song and status on Discord (desktop only)
Support for video cutscenes using hxvlc on desktop platforms
Medal unlocking, leaderboards, and score tracking via Newgrounds API

Who Are These Docs For?

Developers

If you want to:
  • Build the game from source for your platform
  • Understand the codebase architecture and systems
  • Contribute to the official repository
  • Create modifications or custom builds
These docs provide compilation guides, code references, and architectural overviews.

Modders

If you want to:
  • Create custom content (songs, characters, stages)
  • Use the Polymod system for asset replacement
  • Script custom behavior using HScript
  • Package and distribute mods
While these docs cover the engine, check the official modding documentation for detailed modding guides.

Contributors

If you want to:
  • Submit pull requests to improve the game
  • Report bugs with proper context
  • Add new features or fix issues
  • Follow coding standards
Refer to the Contributing Guide in the repository.

Project Structure

The Friday Night Funkin’ source code is organized as follows:
funkin/
├── source/          # Haxe source code
   ├── funkin/     # Main game code
   ├── Main.hx     # Entry point
   └── ...
├── assets/          # Game assets (via submodule)
├── project.hxp      # Build configuration
├── hmm.json         # Haxelib dependencies
└── docs/            # Documentation files
The assets folder is loaded via Git submodules and contains proprietary content protected by copyright. See the assets LICENSE for details.

Technical Specifications

Current Version

v0.8.3
Build 77

Engine

HaxeFlixel
Built on OpenFL/Lime

Language

Haxe
Compiles to C++/JS

Build Targets

PlatformCompilerStatus
WindowsC++ (HXCPP)✅ Fully Supported
macOSC++ (HXCPP)✅ Fully Supported
LinuxC++ (HXCPP)✅ Fully Supported
HTML5JavaScript✅ Fully Supported
AndroidC++ (HXCPP)✅ Fully Supported
iOSC++ (HXCPP)✅ Fully Supported

Development Philosophy

Friday Night Funkin’ is built with several core principles:
1

Performance First

The game targets 60 FPS on all platforms with optimized rendering and audio systems
2

Modular Architecture

Feature flags allow enabling/disabling functionality at compile time for different builds
3

Cross-Platform Compatibility

Shared codebase compiles to desktop, web, and mobile with platform-specific optimizations
4

Open Development

Source code is public and contributions are welcome through GitHub

Feature Flags

The game uses extensive feature flags for conditional compilation:
# Enable debug features
lime test windows -debug -DFEATURE_DEBUG_FUNCTIONS

# Enable chart editor
lime test windows -DFEATURE_CHART_EDITOR

# Disable video playback
lime test windows -DNO_FEATURE_VIDEO_PLAYBACK
A complete list of feature flags is defined in project.hxp:191-532. These control everything from Discord integration to mobile advertisements.

Credits

Friday Night Funkin’ is created by:
  • Programming: ninjamuffin99 (Lead), EliteMasterEric, MtH, GeoKureli, and the mobile team
  • Art & Animation: PhantomArcade3K, Evilsk8r, Moawling
  • Music: Kawaisprite, BassetFilms
  • Company: The Funkin’ Crew Inc.
“Friday Night Funkin’” and the “Friday Night Funkin’” logo are trademarks of The Funkin’ Crew Inc. The source code is licensed under Apache 2.0, but assets have separate licensing terms.

Next Steps

Quick Start

Get the game running on your machine in minutes

Playing Guide

Learn the controls and gameplay mechanics

Build docs developers (and LLMs) love