A store of unchanging, globally relevant values.
Static variables
staticfinalread onlyANIMATION_END_SUFFIX:String = "-end"
A suffix used for animations played when an animation would end before transitioning to another.
staticfinalread onlyANIMATION_HOLD_SUFFIX:String = "-hold"
A suffix used for animations played when an animation would loop.
staticfinalread onlyAUTOSAVE_TIMER_DELAY_SEC:Float = 5.0 * SECS_PER_MIN
Duration to wait before autosaving the chart.
staticfinalinlineread onlyBASE_SAVE_SLOT:Int = 1
We always use this save slot. Alter this if you want to use a different save slot.
staticfinalread onlyCOLOR_HEALTH_BAR_GREEN:FlxColor = 0xFF66FF33
The color used by the player health bar.
staticfinalread onlyCOLOR_HEALTH_BAR_RED:FlxColor = 0xFFFF0000
The color used by the enemy health bar.
staticCOLOR_NOTES:Array<FlxColor> = [0xFFFF22AA, 0xFF00EEFF, 0xFF00CC00, 0xFFCC1111]
The base colors used by notes.
staticfinalread onlyCOLOR_PRELOADER_LOCK_BG:FlxColor = 0xFF1B1717
Color for the preloader site lock background
staticfinalread onlyCOLOR_PRELOADER_LOCK_FG:FlxColor = 0xB96F10
Color for the preloader site lock foreground
staticfinalread onlyCOLOR_PRELOADER_LOCK_FONT:FlxColor = 0xCCCCCC
Color for the preloader site lock text
staticfinalread onlyCOLOR_PRELOADER_LOCK_LINK:FlxColor = 0xEEB211
Color for the preloader site lock link
staticfinalread onlyCOUNTDOWN_VOLUME:Float = 0.6
The volume at which to play the countdown before the song starts.
staticfinalread onlyDEFAULT_BOP_INTENSITY:Float = 1.015
The default intensity multiplier for camera bops. Prolly needs to be tuned bc it's a multiplier now.
staticfinalread onlyDEFAULT_BPM:Float = 100.0
The default BPM for charts, so things don't break if none is specified.
staticfinalread onlyDEFAULT_CAMERA_FOLLOW_RATE:Float = 0.04
The rate at which the camera lerps to its target. 0.04 = 4% of distance per frame.
staticfinalread onlyDEFAULT_DIFFICULTY_LIST:Array<String> = ["easy", "normal", "hard"]
Default list of difficulties for charts. Assumes no Erect mode, etc.
staticfinalread onlyDEFAULT_DIFFICULTY_LIST_ERECT:Array<String> = ["erect", "nightmare"]
Default list of difficulties for Erect mode.
staticfinalread onlyDEFAULT_DIFFICULTY_LIST_FULL:Array<String> = ["easy", "normal", "hard", "erect", "nightmare"]
List of all difficulties used by the base game. Includes Erect and Nightmare.
staticfinalread onlyDEFAULT_PIXEL_NOTE_STYLE:String = "pixel"
The default pixel note style for songs.
staticfinalread onlyDEFAULT_TIMEFORMAT:SongTimeFormat = SongTimeFormat.MILLISECONDS
The default timing format for songs.
staticfinalread onlyDEFAULT_VARIATION_LIST:Array<String> = ["default", "erect", "pico", "bf"]
Standardized variations for charts
staticfinalinlineread onlyDEFAULT_VIBRATION_DURATION:Float = 0.1
Default duration value for vibration.
staticfinalread onlyEXT_CHART:String = "fnfc"
The file extension used when exporting chart files.
- "I made a new file format"
- "Actually new or just a renamed ZIP?"
staticread onlyGENERATED_BY:String
The generatedBy string embedded in the chart files made by this application.
staticfinalread onlyGIT_BRANCH:String = funkin.util.macro.GitCommit.getGitBranch()
The current Git branch.
staticfinalread onlyGIT_HASH:String = funkin.util.macro.GitCommit.getGitCommitHash()
The current Git commit hash.
staticfinalread onlyGIT_HAS_LOCAL_CHANGES:Bool = funkin.util.macro.GitCommit.getGitHasLocalChanges()
staticfinalread onlyHEALTH_BAD_BONUS:Float = 0.0 / 100.0 * HEALTH_MAX
The amount of health the player gains when hitting a note with the BAD rating.
staticfinalread onlyHEALTH_GHOST_MISS_PENALTY:Float = -4.0 / 100.0 * HEALTH_MAX
The amount of health the player loses upon pressing a key when no note is there.
staticfinalread onlyHEALTH_GOOD_BONUS:Float = 0.75 / 100.0 * HEALTH_MAX
The amount of health the player gains when hitting a note with the GOOD rating.
staticfinalread onlyHEALTH_HOLD_BONUS_PER_SECOND:Float = 6.0 / 100.0 * HEALTH_MAX
The amount of health the player gains, while holding a hold note, per second.
staticfinalread onlyHEALTH_HOLD_DROP_PENALTY_MAX:Float = 0 / 100.0 * HEALTH_MAX
The maximum amount of health the player can lose upon letting go of a hold note.
staticfinalread onlyHEALTH_HOLD_DROP_PENALTY_PER_SECOND:Float = 0 / 100.0 * HEALTH_MAX
The amount of health the player loses upon letting go of a hold note, per second remaining.
staticfinalread onlyHEALTH_KILLER_BONUS:Float = 2.0 / 100.0 * HEALTH_MAX
The amount of health the player gains when hitting a note with the KILLER rating.
staticfinalread onlyHEALTH_MAX:Float = 2.0
The player's maximum health. If the player is at this value, they can't gain any more health.
staticfinalread onlyHEALTH_MIN:Float = 0.0
The player's minimum health. If the player is at or below this value, they lose.
staticfinalread onlyHEALTH_MINE_PENALTY:Float = -15.0 / 100.0 * HEALTH_MAX
The amount of health the player loses upon hitting a mine.
staticfinalread onlyHEALTH_MISS_PENALTY:Float = -4.0 / 100.0 * HEALTH_MAX
The amount of health the player loses upon missing a note.
staticfinalread onlyHEALTH_SHIT_BONUS:Float = -1.0 / 100.0 * HEALTH_MAX
The amount of health the player gains when hitting a note with the SHIT rating. If negative, the player will actually lose health.
staticfinalread onlyHEALTH_SICK_BONUS:Float = 1.5 / 100.0 * HEALTH_MAX
The amount of health the player gains when hitting a note with the SICK rating.
staticfinalread onlyHIT_WINDOW_MS:Float = 160.0
The maximum interval within which a note can be hit, in milliseconds.
staticfinalread onlyHOLD_DROP_PENALTY_THRESHOLD_MS:Float = 160.0
The minimum amount of the hold note, in milliseconds, before the player gets penalized for letting go of it early.
staticfinalread onlyLIBRARY_SEPARATOR:String = ":"
The separator between an asset library and the asset path.
staticfinalread onlyLIBRARY_VERSIONS:Array<String> = funkin.util.macro.HaxelibVersions.getLibraryVersions()
The current library versions, as provided by hmm.
staticfinalread onlyLOST_FOCUS_VOLUME_MULTIPLIER:Float = 0.5
How much volume should be reduced on Application Focus Lost.
staticfinalread onlyMAX_PREVIOUS_WORKING_FILES:Int = 10
The maximum number of previous file paths for the Chart Editor to remember.
staticfinalread onlyMP3_DELAY_MS:Float = 528 / 44100 * Constants.MS_PER_SEC
All MP3 decoders introduce a playback delay of 528 samples,
which at 44,100 Hz (samples per second) is ~12 ms.
staticfinalread onlyNOTIFICATION_DISMISS_TIME:Int = 5 * MS_PER_SEC
Duration, in milliseconds, until toast notifications are automatically hidden.
staticfinalread onlyNS_PER_MS:Int = NS_PER_US * US_PER_MS
The number of nanoseconds in a millisecond.
staticfinalread onlyNS_PER_SEC:Int = NS_PER_US * US_PER_MS * MS_PER_SEC
The number of nanoseconds in a second.
staticfinalread onlyPIXELS_PER_MS:Float = 0.45
A magic number used when calculating scroll speed and note distances.
staticfinalread onlyPIXEL_ART_SCALE:Float = 6
The scale factor to use when increasing the size of pixel art graphics.
staticfinalread onlyPRELOADER_MIN_STAGE_TIME:Float = 0.1
Each step of the preloader has to be on screen at least this long.
0 = The preloader immediately moves to the next step when it's ready. 1 = The preloader waits for 1 second before moving to the next step.
The progress bare is automatically rescaled to match.
staticfinalinlineread onlySAVE_NAME_LEGACY:String = "funkin"
The legacy save slot name, used for backwards compatibility.
staticfinalinlineread onlySAVE_PATH:String = "FunkinCrew"
The path where our save data will be stored.
staticfinalinlineread onlySAVE_PATH_LEGACY:String = "ninjamuffin99"
The legacy path where our save data was saved. Used for backwards compatibility.
staticfinalread onlySCORE_HOLD_BONUS_PER_SECOND:Float = 250.0
The amount of score the player gains for every second they hold a hold note. A fraction of this value is granted every frame.
staticfinalread onlySCORE_HOLD_DROP_PENALTY_PER_SECOND:Float = -125.0
The amount of score the player loses upon letting go of a hold note, per second remaining.
staticfinalread onlySECS_PER_MIN:Int = 60
Constant for the number of seconds in a minute.
sex per min
staticfinalread onlySTEPS_PER_BEAT:Int = 4
Number of steps in a beat. The note length of a step varies based on the time signature denominator.
staticfinalread onlySTRUMLINE_X_OFFSET:Float = 48
The horizontal offset of the strumline from the left edge of the screen.
staticfinalread onlySTRUMLINE_Y_OFFSET:Float = 24
The vertical offset of the strumline from the top edge of the screen.
staticfinalread onlyTITLE:String = "Friday Night Funkin'"
The title of the game, for debug printing purposes. Change this if you're making an engine.
staticfinalread onlyTITLE_ATTRACT_DELAY:Float = 37.5
Time (in seconds) to wait on the Title Screen before entering the Attract State.
staticfinalread onlyURL_ITCH:String = "https://ninja-muffin24.itch.io/funkin"
Link to download the game on Itch.io.
staticfinalread onlyURL_KICKSTARTER:String = "https://www.kickstarter.com/projects/funkin/friday-night-funkin-the-full-ass-game/"
Link to the game's page on Kickstarter.
staticfinalread onlyURL_MERCH_FALLBACK:String = "https://needlejuicerecords.com/en-ca/pages/friday-night-funkin"
Link to buy merch for the game. This is usually fetched from the Newgrounds API but we use this as a fallback.
staticfinalread onlyURL_NEWGROUNDS:String = "https://www.newgrounds.com/portal/view/770371"
Link to play the game on Newgrounds.
staticread onlyVERSION:String
The current version number of the game.
Modify this in the project.xml file.
staticfinalread onlyVERSION_SUFFIX:String = ""
A suffix to add to the game version. Add a suffix to prototype builds and remove it for releases.