No description
  • Haxe 96.2%
  • Python 3%
  • Shell 0.5%
  • Dockerfile 0.2%
Find a file
Kees Rodriguez 0a112069e8
Some checks are pending
Release / macos (push) Blocked by required conditions
Release / publish (push) Blocked by required conditions
CI / all-checks (push) Has started running
Release / linux (push) Successful in 12m15s
Release / web (push) Successful in 1m53s
Release / windows (push) Has started running
Merge pull request 'Release: one job per platform, chained, so each fits the time limit' (#8) from ci/release-jobs into main
2026-10-26 08:42:40 +01:00
.forgejo/workflows Release: one job per platform, chained, so each fits the job time limit 2026-10-26 07:45:04 +01:00
.github Remove upstream GitHub workflows 2026-10-25 14:02:56 +01:00
.vscode The death of hashlink 2026-08-02 21:14:21 +08:00
art@429ab728b1 Update LICENSE to 2026 2026-01-29 22:07:59 -07:00
assets@9300719cb2 Bump assets for health icon tweaks 2026-08-09 03:28:25 +08:00
build fix: html5 and linux ci builds ^-^ (#2455) 2026-04-06 04:18:08 -06:00
docker macOS build in CI: osxcross cross-build in the funkin-ci image (6) 2026-10-26 02:18:42 +01:00
docs Release: one job per platform, chained, so each fits the job time limit 2026-10-26 07:45:04 +01:00
example_mods Update example mod's API version to 0.8.0 2026-01-29 22:07:57 -07:00
mods/psych-compat Full-screen covers fill the view at any camera zoom; --start <seconds> 2026-10-26 04:39:24 +01:00
ports Full-screen covers fill the view at any camera zoom; --start <seconds> 2026-10-26 04:39:24 +01:00
scripts Format .hx files 2026-04-06 04:18:09 -06:00
source Merge pull request 'Songs can give the player's strumline its own note style' (#7) from feat/player-note-style into main 2026-10-26 08:13:03 +01:00
templates Clean some stuff in ApplicationMain 2026-08-08 02:44:45 +08:00
tools Release: one job per platform, chained, so each fits the job time limit 2026-10-26 07:45:04 +01:00
.editorconfig Established new code style and auto-formatting rules. 2023-01-22 22:23:05 -05:00
.gitattributes Display syntax formatting in project.hxp on Github.com 2024-08-27 14:21:40 -04:00
.gitignore CI: keep hxcpp's compile cache between runs 2026-10-26 03:53:03 +01:00
.gitmodules Make the 'Art' submodule shallow by default 2025-12-15 17:49:04 -05:00
.prettierignore Make credits no longer pause and no longer autoformat. Add some names. 2024-04-24 01:48:39 -04:00
.prettierrc.js Established new code style and auto-formatting rules. 2023-01-22 22:23:05 -05:00
astc-compression-data.json Exclude Week 7 bricks from ASTC 2026-03-04 23:21:51 -07:00
CHANGELOG-funkin-claude.md macOS build in CI: osxcross cross-build in the funkin-ci image (6) 2026-10-26 02:18:42 +01:00
CHANGELOG.md Changelog for 0.8.6 2026-08-09 06:13:15 +08:00
checkstyle.json Disable the MagicNumber rule 2026-05-04 04:14:25 -06:00
cliff.toml Move part of the code from the old repository 2025-04-15 21:32:39 +03:00
CODESTYLE.md Consistent hyphens in CODESTYLE.md 2025-04-22 18:41:41 -04:00
documentTypes.plist Huge chunk of the iOS implementation 2025-10-09 18:29:16 +08:00
hmm.json Bump polymod again 2026-08-09 03:10:50 +08:00
hxformat.json Rewrite some of the formatting rules to improve automatic line wrapping. 2026-06-17 17:02:01 +08:00
LaunchScreen.storyboard Set screen metrics for launch storyboard 2025-04-27 04:09:12 +03:00
LICENSE.md Update LICENSE to 2026 2026-01-29 22:07:59 -07:00
organize_astc_data.ps1 Scripts to organize astc data because its gettin' big and i love alphabetically sorting everything 2025-08-21 18:33:00 -05:00
organize_astc_data.sh Scripts to organize astc data because its gettin' big and i love alphabetically sorting everything 2025-08-21 18:33:00 -05:00
project.hxp Build into a staging folder and install with rsync 2026-10-25 22:02:16 +01:00
README.md README: CI badge and a Download section 2026-10-26 00:31:19 +01:00

funkin-claude

CI

A fork of Friday Night Funkin' (V-Slice engine, based on v0.8.6) that plays mods made for other engines natively on Linux, with engine fixes and a few quality-of-life features on top.

  • Converted mods play natively. Psych Engine mods are converted to native V-Slice mods: charts, characters, stages, note skins and assets automatically, mechanics re-implemented in HScript.
  • Engine fixes for stutters, clean retries and more (see below).
  • New options: middlescroll, a focus point, an editable HUD, Freeplay organised by mod.

Upstream's README (building the base game, credits) is in docs/UPSTREAM-README.md.

What's new compared to the base game

Middlescroll Options > Preferences: Off / Hide (opponent hidden) / Split (opponent's lanes faded on both sides of yours).
Focus Point A small marker in front of your strums to rest your eyes on; follows the strums, switchable per song from the pause menu.
HUD Layout Optional misses, accuracy, combo, notes per second, judgement counts, song time and name; Options > HUD LAYOUT to toggle and move each one.
Freeplay by mod M cycles All / Base Game / each mod; favourites (F, heart tab); a key hint bar; pixel icons and an album per converted mod.
Star ratings Converted songs are rated from their charts, calibrated on the base game's official ratings.
Clean retry Retrying rebuilds the song instead of resetting it in place, so nothing a script changed carries over.
Stutter fixes Preloaded song assets are no longer purged before the song; note kinds' skins and assets mod scripts use are preloaded; pooled notes aren't rebuilt per spawn. --log-hitches records slow frames to logs/.
HUD extras in a song HUD layout editor
Split middlescroll Freeplay with key hints

Download

Builds for Linux, Windows and the web are on the releases page, together with funkin-port, the converter. Releases contain the engine and tools only; convert the mods you own with funkin-port. How releases are made: docs/RELEASING.md.

Play

cd export/release/linux/bin && ./Funkin

Controls, options and the Freeplay guide: docs/PLAYING.md. Command line: --play <songId> [--difficulty hard] [--botplay], --freeplay, --log-hitches.

Build

Everything stays inside the repo (no system-wide installs):

git submodule update --init --depth 1 assets
source tools/env.sh            # repo-local Haxe 4.3.7 / Neko in .toolchain/ (see docs/COMPILING.md for the first setup)
tools/install-build.sh         # release build into export/release/linux/bin (safe while the game is running)
tools/build-mods.sh            # convert + install the configured mods

Convert your own mods: funkin-port

tools/funkin-port detect "/path/to/mod"
tools/funkin-port convert "/path/to/mod" --title "Mod Name" --install export/release/linux/bin

Detects the engine a mod targets, converts Psych Engine mods (mods folders, packs, standalone builds) and lists the scripts that need a hand port. See docs/funkin-port.md and docs/porting-notes.md.

Repository layout

Path
source/ the engine (upstream V-Slice + our changes)
mods/psych-compat/ runtime for converted Psych mods (events, note types, helpers)
ports/<mod>/ hand-written HScript ports of mod mechanics (no mod assets)
tools/ funkin-port, the converter (modport/), build, play-test and smoke-test scripts
docs/ playing guide, porting notes, performance notes, roadmap

Mod assets are never committed: the converter reads them from the original mod folders at build time.

Credits and licences

  • Friday Night Funkin' by The Funkin' Crew. The engine code is Apache 2.0 (LICENSE.md); the game's assets are not, see the Funkin.assets licence.
  • Converted mods belong to their authors (Wednesday's Infidelity, D-Sides, 2Hot4You teams and others). This repository only contains our own code: converters, the compat runtime and re-implementations of mod mechanics.
  • Changes in this fork: see CHANGELOG-funkin-claude.md.