Skip to content

Overview

The Plume3D API is exposed to game scripts via Wren. All classes and methods described here are available in your game’s Wren code.

Each reference page includes return types, parameter types, descriptions, and code examples where applicable. Documented types (e.g. Num, String, Bool, List, Map, or class names like Mesh, Source) indicate the expected or returned values.

ModuleDescription
EngineEngine identity, version, screenshot, exit, and entropy (a non-deterministic seed)
LoggerLogging (info, warn, error, dump)
RandomSeeded, deterministic RNG — int, intRange, float, shuffle (identical seed ⇒ identical sequence)
CoroutinesCooperative coroutines the engine ticks each frame — Async.run, wait, nextFrame, pending, clear
HttpBlocking HTTP POST — out-of-band JSON sends at event boundaries, never per frame
ShaderShader resource (name)
MeshVertex buffers, draw modes, and rendering
ModuleDescription
InputMouse, keyboard, modifiers, gamepads
WindowSize, fullscreen, title, design size, scale mode
ModuleDescription
GraphicsLoad shaders, create meshes, draw, view/projection, lighting, shadows, debug views
GuiFull immediate-mode GUI: windows, layouts, labels, buttons, sliders, knobs, combos, trees, charts, menus, popups, custom drawing, themes
InstancedMeshGPU-instanced rendering of many mesh copies (SSBO, up to 65K instances)
TextureGPU textures loaded from the mounted project (PNG/JPG/WebP)
SpriteCamera-facing billboarded quads — size, RGBA tint, spherical/cylindrical/flat modes
TextSigned-distance-field text, crisp at any scale — world-space or screen-space, outline, wrap, rich markup
UiRetained-mode UI: load a .ui document (panels/text/buttons), render it letterboxed into a screen rect; buttons dispatch on_clickGame.<name>()
ModuleDescription
NetGameNetworkingSockets transport — server/client, reliable and unreliable send, poll, entity replication
PlayFlowPlayFlow Cloud client — request and poll a hosted dedicated server
ModuleDescription
AudioGlobal audio state, volume, listener position/orientation
SourcePer-source playback, volume, pitch, 3D position, cone, attenuation
ModuleDescription
SceneScene graph root, add nodes/cameras/lights, instanced meshes, physics objects
NodeTransform hierarchy, position/rotation/scale, children, tags
CameraView/projection, FOV, planes, world/screen conversion
LightPoint, Sun, Spot, Hemi, Area; color, energy, spot/area params, shadow casting
RaycastRaycasts from point, camera, or node direction; RaycastHit
ModuleDescription
PhysicsRigid bodies, forces, impulses, velocities, gravity, simulation control, raycasts, contact events
CharacterControllerCapsule character movement with ground detection, jump, and state machine
CharacterStateState constants (IDLE, WALKING, RUNNING, JUMPING, FALLING, etc.)
ParticleEmitterPhysics-backed particle system with emission rate, burst, and instanced rendering
ModuleDescription
ConfigLoad TOML from mounted paths; save TOML text to the write directory
Save / LoadGame-authored, versioned save state — SaveState typed key/value store + Save file I/O (write/read/exists)
ResourceCached loading (config, blend, sound)
BlendResultResult of Resource.loadBlend; classes, configs, instantiate, node custom data
ModuleDescription
AnimationStatePer-clip state, time, params, blend layers, crossfade, play/pause, events
AnimationEventNamed events and callbacks (Blender markers or custom)
AnimationPlayOptionsReverse, time offset, speed, blend weight, layer, crossfade duration, loop
AnimationBlendOptionsBlend options (reserved for future blend tree support)
ModuleDescription
MathTrig, rounding, sqrt, pow, min/max, constants (pi, e)