# funkincrew/funkin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/funkincrew-funkin).**

3,497 stars · 2,469 forks · Haxe · other

## Links

- GitHub: https://github.com/FunkinCrew/Funkin
- Homepage: https://www.newgrounds.com/portal/view/770371
- awesome-repositories: https://awesome-repositories.com/repository/funkincrew-funkin.md

## Topics

`game` `gamedev` `haxe` `haxeflixel` `openfl`

## Description

Funkin is a rhythm game engine and scriptable gameplay framework designed for creating musical battle games with synchronized note charts and audio. It functions as a comprehensive toolset for rhythm game modding, allowing for the addition of custom songs, characters, and stages through external assets and metadata.

The project distinguishes itself through a dedicated modding system that supports priority-based asset overriding and a data patching utility for modifying JSON and XML configuration files via targeted merge operations. It utilizes a scriptable environment that executes external scripts at runtime to implement unique gameplay mechanics, cinematic events, and custom game logic without requiring recompilation.

The framework covers a broad range of capabilities, including rhythm chart authoring with an in-game editor, a game asset pipeline for sprite animations and stage props, and a system for managing mod dependencies and compatibility. It also supports the creation of story levels, custom note styles, and the application of visual shaders.

## Tags

### Game Development

- [Rhythm](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/rhythm.md) — Functions as a specialized game engine designed for synchronizing visual gameplay elements with audio tracks for rhythm battles. ([source](https://cdn.jsdelivr.net/gh/funkincrew/funkin@main/README.md))
- [Asset Overriding](https://awesome-repositories.com/f/game-development/asset-overriding.md) — Overrides existing files by placing new assets in a matching directory structure to change visuals or audio. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-03-asset-replacement-and-additions.html))
- [Modular Character Definitions](https://awesome-repositories.com/f/game-development/character-state-systems/modular-character-definitions.md) — Integrates new character assets and scripts using a modular system that preserves base files. ([source](https://funkincrew.github.io/funkin-modding-docs/03-custom-characters/03-00-custom-characters.html))
- [Custom Song Integration](https://awesome-repositories.com/f/game-development/custom-song-integration.md) — Adds new playable tracks by providing metadata and audio files in specific directories. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Game Content Extension](https://awesome-repositories.com/f/game-development/game-content-extension.md) — Provides a framework for adding new game entities, items, and assets to extend the experience through custom content. ([source](https://funkincrew.github.io/funkin-modding-docs/title-page.html))
- [Scriptable Gameplay Frameworks](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/game-development-engines/gameplay-extensions/scriptable-gameplay-frameworks.md) — Implements a scriptable environment that executes external scripts at runtime to create unique gameplay mechanics and cinematic events.
- [Modding Toolkits](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/modding-toolkits.md) — Provides a comprehensive toolkit for modifying game mechanics and assets via configuration files.
- [Chart Authoring](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/rhythm/chart-authoring.md) — Designs note sequences synchronized to audio files using an in-game editor to define gameplay patterns. ([source](https://funkincrew.github.io/funkin-modding-docs/02-custom-songs-and-custom-levels/02-01-creating-a-chart.html))
- [Chart Design](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/rhythm/chart-design.md) — Designs synchronized note sequences and musical patterns using an in-game editor and metadata files.
- [Game Logic Scripting](https://awesome-repositories.com/f/game-development/game-logic-scripting.md) — Runs interpreted scripts via external files to implement gameplay and animations without recompiling the project. ([source](https://funkincrew.github.io/funkin-modding-docs/20-using-hscript/20-01-what-is-hscript.html))
- [Game Modding Interfaces](https://awesome-repositories.com/f/game-development/game-modding-interfaces.md) — Implements systems for integrating community-created content, textures, and logic modifications into the game experience. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-06-chapter-conclusion.html))
- [Gameplay Environment Design](https://awesome-repositories.com/f/game-development/gameplay-environment-design.md) — Defines new visual environments for gameplay and integrates them into musical sequences. ([source](https://funkincrew.github.io/funkin-modding-docs/04-custom-stages/04-00-custom-stages.html))
- [Mod Content Autoloading](https://awesome-repositories.com/f/game-development/mod-content-autoloading.md) — Provides automated discovery and loading of custom mod assets and scripts from dedicated folders. ([source](https://funkincrew.github.io/funkin-modding-docs/30-scripted-modules/30-00-scripted-modules.html))
- [Mod Loading Systems](https://awesome-repositories.com/f/game-development/mod-loading-systems.md) — Integrates external assets and scripts via a dedicated folder to avoid overriding base files. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-00-fundamentals.html))
- [Playable Hero Character Systems](https://awesome-repositories.com/f/game-development/playable-hero-character-systems.md) — Defines new playable characters by providing required animations, icons, and selection screen assets. ([source](https://funkincrew.github.io/funkin-modding-docs/05-custom-playable-characters/05-01-required-assets.html))
- [Scripted Logic Systems](https://awesome-repositories.com/f/game-development/scripted-logic-systems.md) — Allows developers to implement custom gameplay behaviors and event triggers via external scripts without recompiling the engine.
- [Song and Level Integration](https://awesome-repositories.com/f/game-development/song-and-level-integration.md) — Allows the integration of new playable musical sequences and story mode levels without overriding base game content. ([source](https://funkincrew.github.io/funkin-modding-docs/02-custom-songs-and-custom-levels/02-00-custom-songs-and-custom-levels.html))
- [Mod Compatibility Layers](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/modding-frameworks/mod-compatibility-layers.md) — Resolves conflicts between multiple content packs using asset overrides, dependency declarations, and data patching. ([source](https://funkincrew.github.io/funkin-modding-docs/09-migration/09-00-migrating-mods-to-newer-versions.html))
- [Asset Registry Systems](https://awesome-repositories.com/f/game-development/asset-registry-systems.md) — Introduces new files into the environment that are automatically recognized by registries for songs and stages. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-03-asset-replacement-and-additions.html))
- [Character Definitions](https://awesome-repositories.com/f/game-development/character-definitions.md) — Specifies character properties, animations, and asset paths to introduce new entities into the game. ([source](https://funkincrew.github.io/funkin-modding-docs/03-custom-characters/03-02-creating-a-character.html))
- [Custom Game Asset Design](https://awesome-repositories.com/f/game-development/custom-game-asset-design.md) — Constructs game environments by defining camera zoom, background props, and character positions. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Game Asset Management](https://awesome-repositories.com/f/game-development/game-asset-management.md) — Ships a system for managing internal engine resources, including sprite animations, stage props, and style inheritance.
- [Level Design Tools](https://awesome-repositories.com/f/game-development/level-design-tools.md) — Constructs structured story sequences and visual environments by configuring stages, characters, and song orders.
- [Level Editors](https://awesome-repositories.com/f/game-development/level-editors.md) — Provides tools for creating structured sequences of songs and visual assets to populate menus. ([source](https://funkincrew.github.io/funkin-modding-docs/02-custom-songs-and-custom-levels/02-03-adding-a-custom-level.html))
- [Note Style Customization](https://awesome-repositories.com/f/game-development/note-style-customization.md) — Defines new visual and functional note types and assigns them to specific songs. ([source](https://funkincrew.github.io/funkin-modding-docs/06-custom-notestyles/06-00-custom-notestyles.html))
- [Note Visual Styles](https://awesome-repositories.com/f/game-development/note-visual-styles.md) — Allows customization of the visual appearance and assets of rhythm notes and strumlines. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Playable Character Integration](https://awesome-repositories.com/f/game-development/playable-hero-character-systems/playable-character-integration.md) — Enables the integration of new playable characters into the selection menu and manages their unlock status. ([source](https://funkincrew.github.io/funkin-modding-docs/05-custom-playable-characters/05-00-custom-playable-characters.html))
- [Song Difficulty Variations](https://awesome-repositories.com/f/game-development/song-difficulty-variations.md) — Enables the addition of new difficulties or remixes for existing musical sequences. ([source](https://funkincrew.github.io/funkin-modding-docs/02-custom-songs-and-custom-levels/02-05-adding-variations-to-existing-songs.html))
- [Song Variation Management](https://awesome-repositories.com/f/game-development/song-variation-management.md) — Introduces new difficulties or remixes for existing songs without replacing the original versions. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Stage Design](https://awesome-repositories.com/f/game-development/stage-design.md) — Defines the visual environment and character placements, including camera zoom and layer depth. ([source](https://funkincrew.github.io/funkin-modding-docs/04-custom-stages/04-01-creating-a-stage.html))
- [Stage Prop Configuration](https://awesome-repositories.com/f/game-development/stage-prop-configuration.md) — Adds decorative stage elements by specifying image paths, scale, opacity, and parallax factors. ([source](https://funkincrew.github.io/funkin-modding-docs/04-custom-stages/04-01-creating-a-stage.html))
- [Story Mode Configuration](https://awesome-repositories.com/f/game-development/story-mode-configuration.md) — Defines game weeks via configuration files to organize songs and menu visuals into a story sequence. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Asset Pipelines](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/asset-pipelines.md) — Manages the loading, processing, and caching of sprite animations, stage props, and audio files.
- [Character Metadata Definition](https://awesome-repositories.com/f/game-development/visual-character-editors/character-metadata-definition.md) — Creates player avatars by configuring metadata files for ownership, unlock status, and menu visuals. ([source](https://funkincrew.github.io/funkin-modding-docs/05-custom-playable-characters/05-02-creating-a-playable-character.html))

### Part of an Awesome List

- [Inter-Mod Dependency Management](https://awesome-repositories.com/f/awesome-lists/devtools/mod-loaders/inter-mod-dependency-management.md) — Manages mandatory and optional mod dependencies to ensure correct loading order and stability. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-01-the-metadata-file.html))
- [Rhythm Level Authoring](https://awesome-repositories.com/f/awesome-lists/media/gaming-and-game-development/custom-content-creation/rhythm-level-authoring.md) — Builds playable musical sequences including custom songs, characters, and note styles. ([source](https://funkincrew.github.io/funkin-modding-docs/))

### Content Management & Publishing

- [Mod Metadata Definitions](https://awesome-repositories.com/f/content-management-publishing/mod-metadata-definitions.md) — Specifies identity, versioning, and authorship via configuration files to ensure compatibility in the mod menu. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-01-the-metadata-file.html))

### Data & Databases

- [Configuration File Patching](https://awesome-repositories.com/f/data-databases/json-patching/configuration-file-patching.md) — Implements a data patching utility to modify specific values in JSON and XML configuration files without replacing entire files.
- [JSON Patching](https://awesome-repositories.com/f/data-databases/json-patching.md) — Implements JSON patch and merge operations to update configuration files without replacing them. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [XML Node Merging](https://awesome-repositories.com/f/data-databases/object-property-accessors/collection-property-modifiers/xml-property-targeters/xml-node-merging.md) — Allows targeted modification and insertion of nodes within XML files to maintain mod compatibility. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))

### DevOps & Infrastructure

- [Asset Overrides](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/configuration-resolution-engines/configuration-overrides/resource-overrides/override-synchronizers/asset-overrides.md) — Resolves content conflicts by loading mod assets that override base files according to a defined load order.
- [Mod Load Order Prioritization](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/configuration-resolution-engines/configuration-overrides/resource-overrides/override-synchronizers/asset-overrides/mod-load-order-prioritization.md) — Implements a priority-based system to resolve asset conflicts between multiple active mods. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-04-mod-load-order.html))
- [Data Patching Operations](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/configuration-merging/data-patching-operations.md) — Provides a data patching utility for modifying JSON and XML configuration files via targeted merge operations. ([source](https://funkincrew.github.io/funkin-modding-docs/10-appending-and-merging-files/10-02-merging-files.html))
- [Partial File Updates](https://awesome-repositories.com/f/devops-infrastructure/manifest-value-modifiers/partial-file-updates.md) — Enables updating individual values or small chunks of data files to preserve the rest of the file content. ([source](https://funkincrew.github.io/funkin-modding-docs/10-appending-and-merging-files/10-00-appending-and-merging-files.html))

### Graphics & Multimedia

- [Rhythm Chart Authoring](https://awesome-repositories.com/f/graphics-multimedia/musical-note-editing/rhythm-chart-authoring.md) — Includes an in-game editor for building rhythmic note sequences synchronized to audio files. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Character Model Animations](https://awesome-repositories.com/f/graphics-multimedia/2d-sprite-animations/character-model-animations.md) — Creates characters with specific animation types and positioning data via configuration files. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [Beat-Synced Object Animations](https://awesome-repositories.com/f/graphics-multimedia/2d-sprite-animations/sprite-sequence-animations/beat-synced-object-animations.md) — Assigns animation types and starting sequences to stage props with triggers on fixed beat intervals. ([source](https://funkincrew.github.io/funkin-modding-docs/04-custom-stages/04-01-creating-a-stage.html))
- [Sprite Sheet Mapping](https://awesome-repositories.com/f/graphics-multimedia/character-animation-authoring/sprite-sheet-mapping.md) — Combines animation frames into a spritesheet using metadata to map coordinates and organize sequences. ([source](https://funkincrew.github.io/funkin-modding-docs/03-custom-characters/03-01-character-assets.html))
- [Visual Effect Shaders](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-effect-shaders.md) — Provides custom GLSL shader implementations for real-time graphical effects on sprites and the camera. ([source](https://funkincrew.github.io/funkin-modding-docs/31-custom-shaders/31-00-custom-shaders.html))
- [Sprite Sheet Mapping](https://awesome-repositories.com/f/graphics-multimedia/sprite-sheet-mapping.md) — Provides a metadata-driven system to map animation sequences to spritesheet coordinates for character visual alignment.

### Software Engineering & Architecture

- [Directory-Based Plugin Discovery](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/registration-discovery-systems/directory-based-plugin-discovery.md) — Automatically scans folder structures to discover and integrate custom songs, characters, and stages.
- [Entity Behavior Modules](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/object-oriented-foundations/object-oriented-programming/behavior-customization/entity-behavior-modules.md) — Creates custom classes via script files to override or add unique logic to game entities. ([source](https://funkincrew.github.io/funkin-modding-docs/21-scripted-classes/21-00-scripted-classes.html))

### Web Development

- [Music Metadata Integration](https://awesome-repositories.com/f/web-development/api-metadata-generators/metadata-integration-apis/music-metadata-integration.md) — Imports musical tracks and chart data by placing metadata and audio files into specific directories. ([source](https://funkincrew.github.io/funkin-modding-docs/02-custom-songs-and-custom-levels/02-02-adding-the-custom-song.html))

### Business & Productivity Software

- [Custom Note Schemas](https://awesome-repositories.com/f/business-productivity-software/knowledge-content-creation/knowledge-information-management/knowledge-management/structured-note-taking/custom-note-schemas.md) — Defines visual and auditory assets for notes, strumlines, and indicators via configuration files. ([source](https://funkincrew.github.io/funkin-modding-docs/06-custom-notestyles/06-01-creating-a-notestyle.html))

### Development Tools & Productivity

- [Hot Reloading](https://awesome-repositories.com/f/development-tools-productivity/configuration-updates/hot-reloading.md) — Refreshes in-game data from disk and resets state in real-time to apply changes without restarting.
- [Global Event Listeners](https://awesome-repositories.com/f/development-tools-productivity/extensible-configuration-interfaces/behavioral-extension-scripts/global-event-listeners.md) — Allows the development of global scripts that listen for and respond to events across the entire application. ([source](https://funkincrew.github.io/funkin-modding-docs/21-scripted-classes/21-00-scripted-classes.html))
- [Game State Hot-Reloading](https://awesome-repositories.com/f/development-tools-productivity/game-state-hot-reloading.md) — Dumps the cache and reloads disk data in real-time to apply changes without restarting the application. ([source](https://funkincrew.github.io/funkin-modding-docs/print.html))
- [State-Persistent Reloading](https://awesome-repositories.com/f/development-tools-productivity/hot-reloading-systems/state-persistent-reloading.md) — Refreshes game data from disk and restarts the current state without closing the application to accelerate development. ([source](https://funkincrew.github.io/funkin-modding-docs/01-fundamentals/01-05-hot-reloading.html))

### User Interface & Experience

- [Game Event Listeners](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling-systems/game-event-listeners.md) — Implements scripted event classes that trigger specific actions during musical sequences. ([source](https://funkincrew.github.io/funkin-modding-docs/21-scripted-classes/21-00-scripted-classes.html))
