# RollingQuest Lua Scripting ## Docs - [Ball Class — Controllable Ball Entity API Reference](https://docs.rollingquest.kramgames.com/api/classes/ball.md): API reference for the Ball class in RollingQuest Lua scripting. Read position, rotation, jump mode, shield, and burning state; manage linked balls. - [Block Class — Game World Block Entity API Reference](https://docs.rollingquest.kramgames.com/api/classes/block.md): API reference for the Block class in RollingQuest Lua scripting. Access block identity, six sides, neighbors, movement state, and enable/disable methods. - [Color — RGBA Color Values for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/classes/color.md): Reference for the Color class in RollingQuest Lua scripts. Covers RGBA constructors, grayscale shortcuts, eleven static color constants, and lerp blending. - [Decoration — Visual Decoration Entity API Reference](https://docs.rollingquest.kramgames.com/api/classes/decoration.md): API reference for the Decoration class in RollingQuest Lua scripting. Access decoration identity, world transform, section ID, and enable/disable methods. - [Enemy Class — Enemy Entity Properties and Methods](https://docs.rollingquest.kramgames.com/api/classes/enemy.md): API reference for the Enemy class in RollingQuest Lua scripting. Access enemy position, basis, EnemyInteraction flags, and kill, enable, disable methods. - [Item Class — Collectible Item Entity API Reference](https://docs.rollingquest.kramgames.com/api/classes/item.md): API reference for the Item class in RollingQuest Lua scripting. Access item identity, slot, treasure flags, and collect, enable, and disable methods. - [Projectile Class — Projectile Entity API Reference](https://docs.rollingquest.kramgames.com/api/classes/projectile.md): API reference for Projectile and ProjectileRequest in RollingQuest Lua scripting. Fire, explode, and configure homing, lifetime, speed, and collisions. - [Quaternion — 3D Rotation Math for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/classes/quaternion.md): Reference for the Quaternion class in RollingQuest Lua scripts. Covers x/y/z/w, eulerAngles, slerp, lerp, angleAxis, lookRotation, and rotateTowards. - [Random — Seeded Random Number Generation in RollingQuest](https://docs.rollingquest.kramgames.com/api/classes/random.md): Reference for the Random class in RollingQuest Lua scripts. Covers seeded constructors, nextInteger, nextNumber, shuffle, nextElement, and serialization. - [Side Class — Block Face Entity Properties Reference](https://docs.rollingquest.kramgames.com/api/classes/side.md): API reference for the Side class in RollingQuest Lua scripting. Access face vectors, block and slot refs, attached items, decorations, and basis helpers. - [Timer — Countdown Timers for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/classes/timer.md): Reference for the Timer class in RollingQuest Lua scripts. Covers start, stop, addTime, and subtractTime overloads, plus cooldown and callback patterns. - [Vector3 — 3D Vector Math for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/classes/vector3.md): Reference for the Vector3 class in RollingQuest Lua scripts. Covers x/y/z properties, static constants, and methods: lerp, cross, dot, distance, and more. - [EntityType Enum Reference for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/enums/entity-type.md): EntityType for RollingQuest scripts — eight entity categories: Level, Block, Side, Item, Enemy, Ball, Decoration, and Any wildcard for API filtering. - [Face Enum — Block Side Reference for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/enums/face.md): Face enum for RollingQuest scripts — six block-cube sides: Up, Down, Left, Right, Front, and Back for querying and modifying block face properties. - [LevelColor Enum Reference for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/enums/level-color.md): LevelColor enum for RollingQuest scripts — twelve portal-side colors from Red (0) through White (11) for retrieving and configuring portal sides. - [LostLevelCause Enum Reference for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/enums/lost-level-cause.md): Complete reference for the LostLevelCause enum, covering all twelve reasons a player can fail a level in RollingQuest Lua scripts. - [Additional Enums Reference for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/enums/other-enums.md): Eight extra RollingQuest enums: BallJumpMode, CameraLookPosition, CampaignResourceType, EnemyInteraction, EntityMoveType, Orientation, PoolMode, ThemeMode. - [WorldDirection Enum Reference for RollingQuest Scripts](https://docs.rollingquest.kramgames.com/api/enums/world-direction.md): WorldDirection for RollingQuest scripts — six global directions: Up, Down, Left, Right, Front, and Back for entity movement, forces, and patrol paths. - [Globals — Built-in Variables and Functions for All Scripts](https://docs.rollingquest.kramgames.com/api/globals.md): Reference for all built-in globals in RollingQuest Lua scripts: OOP helpers, import/include/require, standard functions, and math/string/table highlights. - [Campaign Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/campaign.md): Full reference for the Campaign namespace: read campaign mode, episode and level data, completion state, and global save data from your Lua scripts. - [Dialog Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/dialog.md): Full reference for the Dialog namespace: display closeable, temporary, and manually controlled in-game messages with custom text and background colors. - [Elements Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/elements.md): Reference for the Elements namespace and TaggedElementsTable: look up any tagged entity in the current level by its tag string directly from Lua scripts. - [Flyby Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/flyby.md): Reference for the Flyby namespace: trigger cinematic camera sequences and zoom shots using FlybyEvent chains and startZoomAt overloads in your scripts. - [Level Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/level.md): Complete reference for the Level namespace: read level state, control flow, manage time, score, lives, entities, effects, and projectiles in your scripts. - [Logger Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/logger.md): Reference for the Logger namespace: write plain, info, warning, and error messages to the in-game console with custom colors. Active in editor mode only. - [Signals Namespace — RollingQuest Lua Scripting API](https://docs.rollingquest.kramgames.com/api/namespaces/signals.md): Complete reference for the Signals namespace: emit custom signals to all entities, specific targets, tags, types, or filtered subsets in your Lua scripts. - [Persisting and Sharing Data Across RollingQuest Scripts](https://docs.rollingquest.kramgames.com/concepts/data-storage.md): Learn how to persist values within a level session and share state across levels using LocalData, RawLocalData, LocalArray, and LocalObject. - [Finding Level Entities with Elements.tagged in RollingQuest](https://docs.rollingquest.kramgames.com/concepts/elements.md): Use Elements.tagged to find any entity in your level by its tag, then cast it to the correct type to call type-specific methods on it. - [RollingQuest Lua Hooks: Full Reference by Entity Type](https://docs.rollingquest.kramgames.com/concepts/hooks.md): Learn how hooks let your Lua scripts respond to game events automatically. Full hook signatures for Level, Ball, Block, Side, Item, and Enemy scripts. - [Inter-Script Communication with Signals in RollingQuest](https://docs.rollingquest.kramgames.com/concepts/signals.md): Learn how to send targeted messages between entities in RollingQuest using the Signals namespace, Signal objects, and the OnSignal hook. - [Introduction to RollingQuest Lua Scripting for Levels](https://docs.rollingquest.kramgames.com/introduction.md): An overview of the RollingQuest Lua scripting system — what you can build with hooks, signals, dialog, projectiles, and the Level API. - [Lua Basics: A Beginner Guide to Lua for RollingQuest](https://docs.rollingquest.kramgames.com/lua-basics.md): Learn the Lua language from scratch — variables, types, functions, tables, and control flow — with examples tailored to RollingQuest. - [Displaying Dialog Messages to the Player in RollingQuest](https://docs.rollingquest.kramgames.com/recipes/dialog-messages.md): Learn how to use the Dialog namespace to display closeable, temporary, and manually controlled messages in your RollingQuest levels. - [Triggering Cinematic Flyby Camera Sequences in RollingQuest](https://docs.rollingquest.kramgames.com/recipes/flyby-camera.md): Use the Flyby namespace to zoom the camera to any block in the level, build multi-step cinematic sequences, and guide players to key locations. - [Controlling Level State from Lua Scripts in RollingQuest](https://docs.rollingquest.kramgames.com/recipes/level-control.md): Win, lose, or restart the level, manage lives and score, manipulate the hourglass timer, and trigger checkpoints from your Lua scripts. - [Creating and Firing Projectiles with Lua in RollingQuest](https://docs.rollingquest.kramgames.com/recipes/projectiles.md): Create, configure, and fire projectiles from Lua scripts using Level.createProjectile, ProjectileRequest, and per-projectile callbacks. - [Script Editor: Write and Test Your Lua in RollingQuest](https://docs.rollingquest.kramgames.com/script-editor.md): Learn how to open the script editor, attach Lua scripts to level entities, import shared code, and use the Logger to debug your scripts.