/FNF-Modcharting-Tools

Primary LanguageHaxeApache License 2.0Apache-2.0

FNF Modcharting Tools

Just a thing I made to make modcharting easier, should be easy to add to most engines. Still very WIP and not everything is supported yet!

Features

Modifier system for easing in and out effects

Custom Sustain Renderer (using FlxStrip for stretchy sustains)

Multiple playfields that can have their own positions and modifiers

Custom Modifier Support via Hscript

Support for multiple engines

Credits

Installation

You need the most recent version of HaxeFlixel for it to work. (5.2.1 as of writing)

With Source:

  1. Install the haxelib by typing haxelib git fnf-modcharting-tools https://github.com/TheZoroForce240/FNF-Modcharting-Tools in the console
  2. Now you only need to make a few small additions to get everything working,
  • In MusicBeatState.hx:
class MusicBeatState extends modcharting.ModchartMusicBeatState
{
  
  • In PlayState.hx:
import modcharting.ModchartFuncs;
import modcharting.NoteMovement;
import modcharting.PlayfieldRenderer;
  
override public function create()
{

  //Add this before camfollow stuff and after strumLineNotes and notes have been made
  playfieldRenderer = new PlayfieldRenderer(strumLineNotes, notes, this);
  playfieldRenderer.cameras = [camHUD];
  add(playfieldRenderer);
  add(grpNoteSplashes); /*place splashes in front (add this if the engine has splashes).
  If you have added this: remove(or something) the add(grpNoteSplashes); which is by default below the add(strumLineNotes);*/
      
      
// (at the bottom of create())

ModchartFuncs.loadLuaFunctions(); //add this if you want lua functions in scripts
//being used in psych engine as an example

callOnLuas('onCreatePost', []);
super.create();
public function startCountdown():Void
{
  generateStaticArrows(0);
  generateStaticArrows(1);
  
  //add after generating strums
  NoteMovement.getDefaultStrumPos(this);
  • In Note.hx:
class Note extends FlxSprite
{
  //add these 2 variables for the renderer
  public var mesh:modcharting.SustainStrip = null;
  public var z:Float = 0;
  • In Project.xml:
<!--Set this to the engine you're using!-->
<define name="PSYCH" />

<haxelib name="fnf-modcharting-tools" />

You need to define which engine you're using to fix compiling issues, or it would default to base game settings (downscroll won't work etc). Available ones: PSYCH, KADE, LEATHER, FOREVER_LEGACY, YOSHI, FPSPLUS

  1. Now if your game compiles successfully then you should be all good to go.