FunkinModchart
A modchart backend plug-in for VSRGs made on HaxeFlixel.
Install / Use
/learn @theoo-h/FunkinModchartREADME
¿What is FunkinModchart?
FunkinModchart is a fully featured modcharting framework that brings NotITG-style visuals and effects to Friday Night Funkin’ and any other VSRG made in HaxeFlixel.
With this library, you can easily:
- Modify arrow trajectories, colors, transparency, and rotation across full 3D axes.
- Use a dynamic event system to animate modifier values over time.
- Create custom easing effects and complex visual transitions — all with simple scripting.
And that’s just the start. FunkinModchart also gives you extra cool stuff like:
- Arrow Trajectory Rendering (aka. Arrow Paths)
- Customizable 3D Camera (per-playfield)
- Multiple Playfields for even craziers results
If you’ve ever used NotITG or StepMania, you’ll feel right at home.
Installation
FunkinModchart supports several major FNF engines:
See the Support guide for details.
Setup
Open your project’s Project.xml, then scroll to where you define your haxelibs and add:
<haxedef name="FM_ENGINE" value="YOUR_ENGINE"/>
<haxedef name="FM_ENGINE_VERSION" value="ENGINE_VERSION"/>
<haxelib name="funkin-modchart" />
<haxeflag name="--macro" value="modchart.backend.macros.Macro.includeFiles()"/>
Replace the defines with your engine’s name and version (check the format in the support guide).
If everything is set up properly, your project should compile and run as usual — but now with full modchart power.
Using FunkinModchart
1. Add the Manager
In your song state or script:
import modchart.Manager;
var funkinModchart:Manager = new Manager();
add(funkinModchart);
Make sure the arrow and receptors are already initialized before creating the modchart instance.
You can add it directly in source code or through the scripting layer if the game admits it.
2. Create a Modchart
Explore the available functions in the Documentation.
Tip: You don’t need to strictly follow examples — experiment!
A bit of experience with NotITG or The Mirin Template will help you design stunning modcharts faster.
Creating Your Own Adapter
An Adapter is a simple wrapper class that lets FunkinModchart work with your game or engine.
It defines all the essential methods the Modchart Manager depends on.
Requirements
- Your game must use HaxeFlixel.
- Arrows, receptors, and holds must be FlxSprite objects.
FunkinModchart renderers relies on default FlxSprite renderer — it won’t work with sprites that have its custom way for rendering.
Steps
- Review the IAdapter interface.
- Check existing adapter implementations for examples.
- The adapter class name must match the value of your
FM_ENGINEdefine (PascalCase).
You can even swap adapters at runtime — perfect for editors or very crazy modcharts that could require it.
Credits
| | | |------|--------------| | Lead Programmer | Theo | | Help with Optimization | Ne_Eo (aka. Neo) | | Math References | OpenITG | | Code References | Schmovin by 4mbr0s3 | | Logo Artist | Soihan |
Special Thanks
-
lunarcleint – Moral support, the goat
-
Tsaku – Beta testing & feedback
-
All contributors !
<a href="https://github.com/theoo-h/FunkinModchart/graphs/contributors"> <img src="https://contrib.rocks/image?repo=theoo-h/FunkinModchart" width="350" /> </a>Made with contrib.rocks.
Licensing
FunkinModchart is avalidable under the MIT License. Check LICENCE for more info.
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。

