An extensible plugin framework that adds optional mechanics on top of the base game.
Plugins are opt-in extensions enabled per-map in the Map Config panel. Multiple plugins can be active simultaneously. The three built-in plugins are HK, HP, and Code.
Adds Hollow Knight‑style mechanics to the player character.
| Feature | Description |
|---|---|
| Mantis Claw | Player can cling to and jump off walls. |
| Attack | Player can slash in a directional arc. Damages enemies or interacts with objects. |
| Pogo | Attacking downward onto a surface bounces the player upward. |
| Soul Statue | Collectible objects that restore soul energy. |
| color.js / globals | HK plugin exposes colour helpers and global inject scripts for advanced maps. |
Replaces instant-death hazards with a configurable health system.
| Feature | Description |
|---|---|
| Health Bar HUD | On-screen bar showing the player's current HP. |
| Damage | Hazards deal configurable HP damage rather than killing instantly. |
| Heal | Specific objects (e.g. checkpoints with Heal at Checkpoints enabled) restore HP. |
Adds the Mechanics Editor — a visual block system plus Python scripting via Skulpt (an in-browser Python interpreter). Open it from the editor to build interactive logic without leaving the map.
| Block | Purpose |
|---|---|
| Trigger | Detects something happening in the world (game start, repeat timer, player input/action, zone enter/leave, button press, player stats, key combos). Each trigger can link to one event by id. |
| Event | The reaction that runs when a trigger fires. Holds Python code to execute. (Previously called "Action" — existing maps using codeData.actions and type: 'action' are auto-migrated to codeData.events / type: 'event' on load.) |
| Variable | Single value or list value usable by Python code. Supports string, integer, float, boolean, and variable references. |
| Trigger | Description |
|---|---|
| Game Starts | Fires once when the game begins. |
| Repeat | Fires repeatedly on an interval (ticks / seconds / minutes). |
| Player Action Input | Fires when the player performs a movement action (jump, fall, move, teleport, send message, …). Some actions accept an extra value (e.g. Fall for [time]). |
| Player Key Input | Fires on a multi-key combination (alphabet / number / mouse / arrow / modifier / custom captured keys). |
| Player Enter Zone / Leave Zone | Fires when the player crosses a named Zone. |
| Player Press Button | Fires when the player activates a Button. |
| Player Stats | Fires when a player stat (username, display name, host/guest, color, tag) matches a value. |
| Feature | Description |
|---|---|
| Python scripts | Each Event can hold Python code that runs when its linked trigger fires. |
| Custom fonts | Register custom .ttf fonts for use by Text objects. |
| Zone events | Detect when the player enters or exits a named Zone. |
| Button events | Respond to button.pressed events from Buttons. |