Rustic Engine has two cameras:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Quiet-Wolfe/Rustic-Engine/llms.txt
Use this file to discover all available pages before exploring further.
camGame— The game world camera. Follows the current singer and can be zoomed or shaken.camHUD— The HUD overlay camera. Fixed to the screen. The health bar, score, and combo display are drawn here.
Rustic Engine’s camera zoom interpolation is smoother than Psych Engine’s original bump implementation. The Lua API is identical — your scripts work without changes.
Zoom control
Camera zoom is controlled through the tween system and the property system. There are no standalonesetCamZoom functions — use doTweenZoom for animated zoom or setProperty for an immediate change:
defaultCamZoom property controls the resting zoom level that the engine returns to between beat bumps. Set it during onCreate or from a chart event:
doTweenZoom signature.
Camera effects
cameraShake
Applies a screen shake effect to a camera.
Camera to shake:
"camGame" or "camHUD". Aliases "game" and "hud" are accepted.Shake magnitude. Typical values are
0.005 (subtle) to 0.05 (strong).How long the shake lasts, in seconds.
cameraFlash
Flashes a solid color over a camera briefly.
Camera to flash:
"camGame" or "camHUD". Aliases "game" and "hud" are accepted.Hex color string (e.g.
"FFFFFF" for white, "FF0000" for red). Defaults to "FFFFFF".Duration of the flash in seconds.
Reserved for Psych Engine compatibility. Has no effect currently.
customFlash
Like cameraFlash but accepts an options table with an alpha key for controlling flash opacity.
Camera to flash.
Hex color string. Defaults to
"FFFFFF".Duration in seconds.
Optional table. Supports
alpha key (default 0.75).Camera position
cameraSetTarget
Requests the camera to follow a named character target.
Character to follow:
"dad", "boyfriend", or "gf".moveCameraSection
Moves the camera to the position dictated by a chart section’s mustHitSection flag, as if that section had just started.
Section index in the chart (0-based).
Integrating tweens with camera
Camera zoom works naturally with the tween system:Relevant globals
These globals are synced into your script before each callback and are safe to read:| Global | Type | Description |
|---|---|---|
defaultCamZoom | number | Current default camera zoom (writable via setProperty) |
cameraSpeed | number | Camera follow speed multiplier |
cameraZoomOnBeat | boolean | Whether the engine auto-bumps zoom on beats |