Scripting

Pick the backend that matches your project instead of forcing one language everywhere.

SoulScorch supports multiple scripting styles because creators want different levels of control. Some people want readable event-style actions. Some want direct Haxe objects. Some want Lua familiarity. Some want Python or JavaScript for tool-side work.

Supported backends

SoulScript HScript Iris Lua Python JavaScript

Most important idea: choose the backend based on how close you need to be to the engine runtime, not just which language you personally like.

Important choices

BackendBest use
SoulScriptReadable timing-based gameplay and menu scripting
HScript and IrisDeep engine control with direct access to gameplay objects
LuaFamiliar FNF-style mod scripting on supported targets
PythonDesktop-only tool callbacks and external process helpers
JavaScriptDesktop-only Node process hooks and utility tasks

Important callbacks

create()
onCreate()
onPostCreate()
onSongStart()
onUpdate(elapsed)
onUpdatePost(elapsed)
onBeatHit(beat)
onStepHit(step)
onDestroy()

These are the callbacks most creators need to understand first. They define setup, song start, per-frame work, rhythm hooks, and cleanup.

Important rules

Do not use Python or JavaScript for frame-heavy gameplay

They are external process bridges. Keep them for tools, validation, and occasional callbacks.

Use SoulScript for readable timed behavior

It is the easiest entry point for creators who want results quickly.

Use HScript or Iris when you need real engine reach

They are the direct path for custom states, gameplay overrides, and deeper systems work.

Keep heavy file access out of update loops

Read assets and data once, cache results, and prefer beat, step, event, or timer hooks over per-frame work when possible.

Quick confidence meter

SoulScript is the easiest start. HScript and Iris are the strongest for deep engine work. Python and JavaScript should stay tool-side.

SoulScript

HScript and Iris

Lua