# Rustic Engine ## Docs - [Workspace crates](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/architecture/crates.md): Detailed reference for each of the seven crates in the Rustic Engine Cargo workspace. - [Architecture overview](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/architecture/overview.md): How Rustic Engine's six-crate workspace prevents the monolithic collapse that killed V1. - [Screen state machine](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/architecture/state-machine.md): How rustic-app manages screen transitions using the Screen trait and a single Box slot. - [Building from source](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/building.md): Detailed instructions for building Rustic Engine in debug and release modes, with notes on the workspace structure and key dependencies. - [Contributing](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/development/contributing.md): How to set up a development environment, build the engine, and follow the architectural rules that keep Rustic Engine from repeating V1's mistakes. - [Development phases](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/development/phases.md): The five ordered phases for building Rustic Engine from a blank workspace to a fully mod-capable Psych Engine replacement. - [Introduction](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/introduction.md): Rustic Engine is a from-scratch Rust reimplementation of Psych Engine, the dominant Friday Night Funkin' modding engine. - [Callbacks](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/lua-api/callbacks.md): Every callback your Lua script can define, with arguments and when each one fires. - [Camera functions](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/lua-api/camera-functions.md): Control camera position, visual effects, and zoom from Lua scripts. - [Lua API overview](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/lua-api/overview.md): How Rustic Engine loads and runs Lua mod scripts, and how scripts receive game state. - [Property functions](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/lua-api/property-functions.md): Read and write game object properties, custom variables, and group fields from Lua scripts. - [Sprite functions](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/lua-api/sprite-functions.md): Create, configure, animate, and remove Lua sprites from your mod scripts. - [Tween functions](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/lua-api/tween-functions.md): Animate sprite and camera properties over time using Rustic Engine's tween and timer system. - [Asset formats](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/modding/asset-formats.md): Reference for every file format Rustic Engine reads: Sparrow XML atlases, Psych Engine chart JSON, character JSON, and stage JSON. - [Custom events](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/modding/custom-events.md): How chart events work in Rustic Engine and how to handle them in Lua scripts. - [Mod structure](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/modding/mod-structure.md): How to lay out your mod directory and where to place charts, characters, stages, scripts, sounds, and images. - [Modding overview](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/modding/overview.md): An introduction to creating Psych Engine-compatible mods for Rustic Engine. - [Quick start](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/quickstart.md): Clone, build, and run Rustic Engine in a few commands. - [Audio system](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/systems/audio.md): kira-based audio playback for instrumental and vocal tracks, conductor synchronization, miss sounds, and one-shot sound effects. - [Camera system](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/systems/camera.md): Two independent cameras — camGame for the game world and camHUD for the UI overlay — with lerped movement, section-driven targeting, and beat-synchronized zoom pulses. - [Chart format](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/systems/chart-format.md): How Rustic Engine parses Psych Engine JSON chart files, including legacy format conversion and the psych_v1 normalized direction scheme. - [Conductor and timing](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/systems/conductor.md): How the Conductor tracks song position in milliseconds and maps it to beats, steps, and sections. All gameplay timing derives from the conductor — never from wall-clock time. - [Note system](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/systems/note-system.md): 4-lane notes, hold notes, hit windows, NoteKind types, and the scoring and rating system — all matching Psych Engine exactly. - [Rendering system](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/systems/rendering.md): wgpu-based GPU rendering with Sparrow XML sprite atlases, animation playback, a batched sprite pipeline, text rendering via glyphon, and a post-processing pass. ## OpenAPI Specs - [openapi](https://mintlify.wiki/Quiet-Wolfe/Rustic-Engine/api-reference/openapi.json)