# Table of Contents - [Welcome | Beyond Sandbox](#welcome-beyond-sandbox) - [RealitySDK | Documentation | Beyond Sandbox](#realitysdk-documentation-beyond-sandbox) - [Testing Your Mod | Documentation | Beyond Sandbox](#testing-your-mod-documentation-beyond-sandbox) - [Coming Soon | Tutorials | Beyond Sandbox](#coming-soon-tutorials-beyond-sandbox) - [Community Server | Server | Beyond Sandbox](#community-server-server-beyond-sandbox) - [Help Center | FAQ & Help | Beyond Sandbox](#help-center-faq-help-beyond-sandbox) - [Modding Contest | Beyond Sandbox](#modding-contest-beyond-sandbox) - [Page 2 | Tutorials | Beyond Sandbox](#page-2-tutorials-beyond-sandbox) - [Community Space | Community | Beyond Sandbox](#community-space-community-beyond-sandbox) - [UnrealEditor-RealityEditorTools.dll!URealityEditor_UtilsLibrary::RealityEditor_ForceRecompileShaderA | FAQ & Help | Beyond Sandbox](#unrealeditor-realityeditortools-dll-urealityeditor-utilslibrary-realityeditor-forcerecompileshadera-faq-help-beyond-sandbox) - [Known Issues | Documentation | Beyond Sandbox](#known-issues-documentation-beyond-sandbox) - [Page 1 | Tutorials | Beyond Sandbox](#page-1-tutorials-beyond-sandbox) - [Example | Community | Beyond Sandbox](#example-community-beyond-sandbox) - [Example | Community | Beyond Sandbox](#example-community-beyond-sandbox) - [Logging into Mod.io | Beyond Sandbox](#logging-into-mod-io-beyond-sandbox) - [Crashes & Errors | FAQ & Help | Beyond Sandbox](#crashes-errors-faq-help-beyond-sandbox) - [Frequently Asked Questions | FAQ & Help | Beyond Sandbox](#frequently-asked-questions-faq-help-beyond-sandbox) - [Get The Modkit | Beyond Sandbox](#get-the-modkit-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [Example | Community | Beyond Sandbox](#example-community-beyond-sandbox) - [Example | Community | Beyond Sandbox](#example-community-beyond-sandbox) - [Create Interactable | Documentation | Beyond Sandbox](#create-interactable-documentation-beyond-sandbox) - [Prepare Meshes | Documentation | Beyond Sandbox](#prepare-meshes-documentation-beyond-sandbox) - [Adding Grips | Documentation | Beyond Sandbox](#adding-grips-documentation-beyond-sandbox) - [Reality Hand Poser Tool | Documentation | Beyond Sandbox](#reality-hand-poser-tool-documentation-beyond-sandbox) - [Firearm | Documentation | Beyond Sandbox](#firearm-documentation-beyond-sandbox) - [Melee Weapon | Documentation | Beyond Sandbox](#melee-weapon-documentation-beyond-sandbox) - [GameMode API | Documentation | Beyond Sandbox](#gamemode-api-documentation-beyond-sandbox) - [Create Round | Documentation | Beyond Sandbox](#create-round-documentation-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [Custom Event Function | Documentation | Beyond Sandbox](#custom-event-function-documentation-beyond-sandbox) - [Sharp Area Component | Documentation | Beyond Sandbox](#sharp-area-component-documentation-beyond-sandbox) - [Create Magazine | Documentation | Beyond Sandbox](#create-magazine-documentation-beyond-sandbox) - [Session Widget | Documentation | Beyond Sandbox](#session-widget-documentation-beyond-sandbox) - [Class | Documentation | Beyond Sandbox](#class-documentation-beyond-sandbox) - [Base RF Function | Documentation | Beyond Sandbox](#base-rf-function-documentation-beyond-sandbox) - [Create New Reality Function | Documentation | Beyond Sandbox](#create-new-reality-function-documentation-beyond-sandbox) - [Create Gamemode | Documentation | Beyond Sandbox](#create-gamemode-documentation-beyond-sandbox) - [Level Tools | Documentation | Beyond Sandbox](#level-tools-documentation-beyond-sandbox) - [Create Level | Documentation | Beyond Sandbox](#create-level-documentation-beyond-sandbox) - [GameFeatureTeamObject | Documentation | Beyond Sandbox](#gamefeatureteamobject-documentation-beyond-sandbox) - [UserSkin | Documentation | Beyond Sandbox](#userskin-documentation-beyond-sandbox) - [GameFeatureClientObject | Documentation | Beyond Sandbox](#gamefeatureclientobject-documentation-beyond-sandbox) - [Required | Documentation | Beyond Sandbox](#required-documentation-beyond-sandbox) - [Game Feature System | Documentation | Beyond Sandbox](#game-feature-system-documentation-beyond-sandbox) - [Map Variant | Documentation | Beyond Sandbox](#map-variant-documentation-beyond-sandbox) - [Native Game Feature | Documentation | Beyond Sandbox](#native-game-feature-documentation-beyond-sandbox) - [Hoslter | Documentation | Beyond Sandbox](#hoslter-documentation-beyond-sandbox) - [GameFeatureGlobalObject | Documentation | Beyond Sandbox](#gamefeatureglobalobject-documentation-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [Sandbox | Documentation | Beyond Sandbox](#sandbox-documentation-beyond-sandbox) - [Light Scenario | Documentation | Beyond Sandbox](#light-scenario-documentation-beyond-sandbox) - [Create Firearm | Documentation | Beyond Sandbox](#create-firearm-documentation-beyond-sandbox) - [Team Definition | Documentation | Beyond Sandbox](#team-definition-documentation-beyond-sandbox) - [GameMode Support | Documentation | Beyond Sandbox](#gamemode-support-documentation-beyond-sandbox) - [Spawn API | Documentation | Beyond Sandbox](#spawn-api-documentation-beyond-sandbox) - [Game Data | Documentation | Beyond Sandbox](#game-data-documentation-beyond-sandbox) - [Teams System | Documentation | Beyond Sandbox](#teams-system-documentation-beyond-sandbox) - [Optimisation | Documentation | Beyond Sandbox](#optimisation-documentation-beyond-sandbox) - [Loadout | Documentation | Beyond Sandbox](#loadout-documentation-beyond-sandbox) - [RF Context | Documentation | Beyond Sandbox](#rf-context-documentation-beyond-sandbox) - [Mesh Merging | Documentation | Beyond Sandbox](#mesh-merging-documentation-beyond-sandbox) - [DrawCall/Triangle Limit | Documentation | Beyond Sandbox](#drawcall-triangle-limit-documentation-beyond-sandbox) - [GameMode Settings | Documentation | Beyond Sandbox](#gamemode-settings-documentation-beyond-sandbox) - [Reality Asset Edit Interface | Documentation | Beyond Sandbox](#reality-asset-edit-interface-documentation-beyond-sandbox) - [RPF RealityPlayerFunction | Documentation | Beyond Sandbox](#rpf-realityplayerfunction-documentation-beyond-sandbox) - [Build Light Scenario | Documentation | Beyond Sandbox](#build-light-scenario-documentation-beyond-sandbox) - [Prepare Asset | Documentation | Beyond Sandbox](#prepare-asset-documentation-beyond-sandbox) - [Reality Event Function System | Documentation | Beyond Sandbox](#reality-event-function-system-documentation-beyond-sandbox) - [Actor Spawning | Documentation | Beyond Sandbox](#actor-spawning-documentation-beyond-sandbox) - [Mesh Reduction | Documentation | Beyond Sandbox](#mesh-reduction-documentation-beyond-sandbox) - [Runtime Data | Documentation | Beyond Sandbox](#runtime-data-documentation-beyond-sandbox) - [Lightmass Configuration | Documentation | Beyond Sandbox](#lightmass-configuration-documentation-beyond-sandbox) - [Build Lighting | Documentation | Beyond Sandbox](#build-lighting-documentation-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [Virtual Screen | Documentation | Beyond Sandbox](#virtual-screen-documentation-beyond-sandbox) - [LightMap Density | Documentation | Beyond Sandbox](#lightmap-density-documentation-beyond-sandbox) - [Game Phase | Documentation | Beyond Sandbox](#game-phase-documentation-beyond-sandbox) - [GameModeBase API | Documentation | Beyond Sandbox](#gamemodebase-api-documentation-beyond-sandbox) - [Runtime Editing Property | Documentation | Beyond Sandbox](#runtime-editing-property-documentation-beyond-sandbox) - [Actor Data | Documentation | Beyond Sandbox](#actor-data-documentation-beyond-sandbox) - [Reality Function | Documentation | Beyond Sandbox](#reality-function-documentation-beyond-sandbox) - [Reflection Capture | Documentation | Beyond Sandbox](#reflection-capture-documentation-beyond-sandbox) - [Map Requirements | Documentation | Beyond Sandbox](#map-requirements-documentation-beyond-sandbox) - [Common Asset | Documentation | Beyond Sandbox](#common-asset-documentation-beyond-sandbox) - [Entity Data | Documentation | Beyond Sandbox](#entity-data-documentation-beyond-sandbox) - [Skin Data | Documentation | Beyond Sandbox](#skin-data-documentation-beyond-sandbox) - [GameFeatureData | Documentation | Beyond Sandbox](#gamefeaturedata-documentation-beyond-sandbox) - [Compatability | Documentation | Beyond Sandbox](#compatability-documentation-beyond-sandbox) - [Control Device | Documentation | Beyond Sandbox](#control-device-documentation-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [Native Widget | Documentation | Beyond Sandbox](#native-widget-documentation-beyond-sandbox) - [Panel | Documentation | Beyond Sandbox](#panel-documentation-beyond-sandbox) - [Common | Documentation | Beyond Sandbox](#common-documentation-beyond-sandbox) - [Game Context | Documentation | Beyond Sandbox](#game-context-documentation-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [Troubleshooting & Reporting Bugs | Documentation | Beyond Sandbox](#troubleshooting-reporting-bugs-documentation-beyond-sandbox) - [Create New Data Class | Documentation | Beyond Sandbox](#create-new-data-class-documentation-beyond-sandbox) - [Requirements Reference | Documentation | Beyond Sandbox](#requirements-reference-documentation-beyond-sandbox) - [Map Requirements Panel | Documentation | Beyond Sandbox](#map-requirements-panel-documentation-beyond-sandbox) - [Publishing & Validation | Documentation | Beyond Sandbox](#publishing-validation-documentation-beyond-sandbox) - [Material | Documentation | Beyond Sandbox](#material-documentation-beyond-sandbox) - [Ingame Property | Documentation | Beyond Sandbox](#ingame-property-documentation-beyond-sandbox) - [Team Instance | Documentation | Beyond Sandbox](#team-instance-documentation-beyond-sandbox) - [Device Scalability | Documentation | Beyond Sandbox](#device-scalability-documentation-beyond-sandbox) - [Overview | Documentation | Beyond Sandbox](#overview-documentation-beyond-sandbox) - [GameMode API | Documentation | Beyond Sandbox](#gamemode-api-documentation-beyond-sandbox) - [PCVR | Documentation | Beyond Sandbox](#pcvr-documentation-beyond-sandbox) - [Native Data Class | Documentation | Beyond Sandbox](#native-data-class-documentation-beyond-sandbox) - [Quest 2 | Documentation | Beyond Sandbox](#quest-2-documentation-beyond-sandbox) - [Quest 3s/3 | Documentation | Beyond Sandbox](#quest-3s-3-documentation-beyond-sandbox) - [Base RPF Function | Documentation | Beyond Sandbox](#base-rpf-function-documentation-beyond-sandbox) --- # Welcome | Beyond Sandbox Welcome to the official documentation for the RealitySDK, the official modding SDK for _Beyond Sandbox_, a multiplayer VR sandbox platform powered by Unreal Engine 5. It provides creators with the tools to build fully interactive, physics-driven, and multiplayer-ready experiences. From custom weapons to complete game modes, RealitySDK enables you to create and share your own content inside Beyond Sandbox. Beyond Sandbox is designed as a **modding-first platform**, combining advanced physics, VR interactions, and user-generated content to create an ever-expanding ecosystem of experiences. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#realitysdk-what-you-can-do) 🧩 RealitySDK – What You Can Do ------------------------------------------------------------------------------------------------------------------------ Here’s what you can build with RealitySDK. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#gameplay-creation) 🎮 Gameplay Creation #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#interactables) Interactables Create interactive objects and gameplay elements: * Firearms * Melee weapons * Props **Features:** * Built-in tools to easily create and configure hand poses for interactions * Melee weapons include a **Sharp Area component** for stabbing and slashing mechanics * * * #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#game-modes) Game Modes * Create fully custom game modes * Configure rules, flow, and logic **Systems available:** * GameMode API * Game Data system * Spawn system * Teams system * * * #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#gameplay-systems) Gameplay Systems * Use the Reality Gameplay System to drive mechanics * Build reusable gameplay logic * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#systems-and-logic) 🧠 Systems & Logic #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#reality-function-system) Reality Function System * Create reusable logic blocks * Drive gameplay behaviors and interactions #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#game-feature-system) Game Feature System * Modular feature architecture * Enable or disable gameplay features dynamically **Extend the base game using:** * Native Game Features * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#world-building) 🌍 World Building #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#levels) Levels * Create custom maps * Support multiple game modes per level **Tools & Optimization:** * Light scenarios & variants per level (eg Day/Night/Rain) * Level tools * Requirements & guidelines * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#data-and-runtime-systems) ⚙️ Data & Runtime Systems #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#reality-asset-data) Reality Asset Data * Create structured data assets * Define gameplay properties * Implement runtime-editable properties #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#runtime-systems) Runtime Systems * Spawn actors dynamically * Access game context * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#core-framework) 🧱 Core Framework #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#classes-and-core-systems) Classes & Core Systems * Extend base classes * Customize core gameplay behavior #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#session-system) Session System * Use session widgets * Manage game sessions and flow * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#ui-systems) 🖥️ UI Systems * Create custom UI using: * Native widgets * Virtual screens * Tablet gamemode dedicated widget * Wrist widget * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#sandbox-systems) 🧪 Sandbox Systems * Spawn and manipulate objects at runtime * Build dynamic sandbox-style experiences * Access shared game context * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#tools-and-platform-support) ⚡ Tools & Platform Support **Target platforms:** * Standalone VR (Quest 2, Quest 3) * PCVR **Tools:** * Device scalability settings * Performance guidelines * Sideloadable Debug Builds for Rapid Iteration * Integrated mod.io Support * In-Editor Play Testing (PIE) (Work in Progress) * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#vision) 🌍 Vision RealitySDK exists to empower creators to: > Build anything from small gameplay mods to full VR experiences inside a shared multiplayer platform. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#jump-right-in) Jump right in [](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#undefined) arrow-down-to-bracket **Get Modkit** Install & Setup The RealitySDK [](https://beyond-sandbox.gitbook.io/realitysdk/documentation) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#undefined-1) toolbox **Make your First Mod** Learn the basics [](https://discord.gg/beyond-sandbox) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/#undefined-2) discord **Join The Community** Join us on Discord [NextGet The Modkitchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit) Last updated 21 hours ago --- # RealitySDK | Documentation | Beyond Sandbox Welcome to the RealitySDK documentation. To report issues, please use this link: [https://github.com/AtlasXRInc/Reality/issuesarrow-up-right](https://github.com/AtlasXRInc/Reality/issues) If you need help, feel free to ask on the Beyond Discord: [https://discord.gg/beyond-sandboxarrow-up-right](https://discord.gg/beyond-sandbox) [NextTesting Your Modchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod) Last updated 2 months ago --- # Testing Your Mod | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#no-vr-preview-in-editor-coming-soon) No VR Preview in Editor (Coming Soon) --------------------------------------------------------------------------------------------------------------------------------------------------------------------- **VR Preview testing inside Unreal Editor is not supported yet.** When you're ready to test your mod, you need to: * **Build** the mod. * **Install** it onto your Quest headset. * Launch it from your headset. There are two main ways to do this: * **Local Sideloading** (Build + Install directly to headset) * **Mod.io Upload** (Cloud-based distribution) * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#building-and-installing-local-sideload) Building & Installing (Local Sideload) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Do not use the standard Unreal packaging menu. Instead, always use the **Reality menu → Build / Install / Run**. circle-exclamation You cannot install mods if you're logged into a **secondary Meta account**. Sideloading only works with the **primary (admin) account** and requires Dev Mode to be enabled. 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#build-and-install-in-editor) Build & Install (in-editor) 1. In Unreal Editor, go to the **Reality** dropdown menu (top menu bar). 2. Make sure the mod you want to build is **selected**. 3. From the Reality menu, choose: * **Build** → Builds the mod (cooks assets + runs necessary processes) * **Install** → Transfers the built mod to your headset via sideload * **Run** → Not functional yet Once installed, a **standalone game** will appear on your headset under **“Unknown Sources”**. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#rebuilding-and-multiple-mods) Rebuilding & Multiple Mods * To update a mod you’ve already installed, simply **Build + Install** again. * To test another mod, **select it** and repeat Build + Install. * You **cannot uninstall mods** from the headset manually. * To test multiple mods at once, build and install them **one by one**. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#connecting-to-mod.io-in-editor) Connecting to Mod.io (In Editor) ----------------------------------------------------------------------------------------------------------------------------------------------------------- To use Mod.io in-editor, you need to **authenticate** your Mod.io account from the editor. 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#configure-your-email) Configure Your Email * Open **Reality → Settings**. * In the **Mail** field, type the email you want to use with Mod.io. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#authenticate-and-get-otp) Authenticate & Get OTP * Go to **Reality → Authenticate**. * This will send a **One-Time Password (OTP)** to your email. If you don't have a Mod.io account, use this OTP to **create one**. Then repeat this step. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#enter-otp-in-settings) Enter OTP in Settings * Go back to **Reality → Settings**. * Enter the received OTP into the **Mail Code** field. * Then go back to **Reality → Authenticate** again. Once successful: * Restart the editor. * The red circle next to **Authenticate** should turn **green**, indicating you're signed in. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#troubleshooting) Troubleshooting circle-exclamation If you see the following error, it means the OTP was already used. To fix it: * Clear the **Mail Code** field in Reality → Settings. * Click **Reality → Authenticate** again to get a new OTP emailed to you. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#publishing-mods-to-mod.io-cloud-distribution) Publishing Mods to Mod.io (Cloud Distribution) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Once you have a standalone game on your headset that was packaged from Reality, you can also distribute and test updates of your mod through **Mod.io**. Unlike local sideloading, Mod.io: * Works with **secondary Meta accounts** * Does **not** require Dev Mode * Distributes mods through the cloud This is especially useful for: * Testing in **multiplayer** * Sharing mods between creators ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#uploading-your-mod-to-mod.io) Uploading Your Mod to Mod.io 1. Select your mod in the Unreal Editor. 2. From the mod’s dropdown menu, choose **Publish/Update**. This uploads your mod to Mod.io. circle-info For now, **multiplayer testing** requires publishing your mod to Mod.io. circle-exclamation When updating an existing mod on Mod.io, go to the Reality dropdown, hit **Edit Mod**, and increase the **Version Number** string manually. There also must be at least one new change to your source files (blueprints) for the update to work. Then hit the **Publish/Update** button. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#sharing-mods-between-creators) Sharing Mods Between Creators If you want to test your mod with **someone else’s mod** (e.g., their weapon + your shield), there are two ways: 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#share-publicly-via-a-shared-folder) Share publicly via a Shared folder * Inside their plugin’s content folder (the root folder), create a folder called `Shared`. * Place the mod files there for others to access. * All files placed in the `Shared` folder will be pushed under a -dev version to Mod.io so modders can get source files of a GameMode for example. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#send-mod-files-directly) Send mod files directly * They can **send you their mod files directly**, and you place them into your project. circle-exclamation If you delete the manifest file in **Reality > Mods > YourMod** you will not be able to update your mod again. [PreviousRealitySDKchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation) [NextKnown Issueschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/known-issues) Last updated 1 month ago * [No VR Preview in Editor (Coming Soon)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#no-vr-preview-in-editor-coming-soon) * [Building & Installing (Local Sideload)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#building-and-installing-local-sideload) * [Build & Install (in-editor)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#build-and-install-in-editor) * [Rebuilding & Multiple Mods](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#rebuilding-and-multiple-mods) * [Connecting to Mod.io (In Editor)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#connecting-to-mod.io-in-editor) * [Configure Your Email](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#configure-your-email) * [Authenticate & Get OTP](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#authenticate-and-get-otp) * [Enter OTP in Settings](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#enter-otp-in-settings) * [Troubleshooting](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#troubleshooting) * [Publishing Mods to Mod.io (Cloud Distribution)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#publishing-mods-to-mod.io-cloud-distribution) * [Uploading Your Mod to Mod.io](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#uploading-your-mod-to-mod.io) * [Sharing Mods Between Creators](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#sharing-mods-between-creators) * [Share publicly via a Shared folder](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#share-publicly-via-a-shared-folder) * [Send mod files directly](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod#send-mod-files-directly) sun-brightdesktopmoon Copy Authentication error: The email security code has already been redeemed. sun-brightdesktopmoon --- # Coming Soon | Tutorials | Beyond Sandbox [NextPage 1chevron-right](https://beyond-sandbox.gitbook.io/realitysdk/tutorials/official-tutorials/page-1) sun-brightdesktopmoon sun-brightdesktopmoon --- # Community Server | Server | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community-server#linux) Linux ----------------------------------------------------------------------------------------- * Go to [https://github.com/AtlasXRInc/RealityServer/releases/latestarrow-up-right](https://github.com/AtlasXRInc/RealityServer/releases/latest) (In this example, we consider the latest version is RealityServer-beta-0.5.0.zip) * Copy the link of the zip file * In your linux terminal, go to your server folder and enter those commands Copy sudo apt install unzip Copy wget https://github.com/AtlasXRInc/RealityServer/releases/download/RealityServer-beta-0.5.0/RealityServer-beta-0.5.0.zip Copy sudo unzip RealityServer-beta-0.5.0.zip Copy sudo chmod +x RealityServer.sh Copy ./RealityServer.sh -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891RwvVMQx5Iue5MXKbFgACctjh -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=+GyZTHdye/yhx6qLnuhS3ktt3bkax6XKNfncTtYQAOI -log Last updated 2 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Help Center | FAQ & Help | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/help-center#what-can-we-help-you-find) What can we help you find? ----------------------------------------------------------------------------------------------------------------------------- Browse the topics below or use the AI assistant to ask anything you need help with. gitbook-assistantcircle-xmarkarrow-right [](https://beyond-sandbox.gitbook.io/realitysdk/help-center/faq/frequently-asked-questions) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/help-center#undefined) leaf **FAQ** Check the Frequently Ask Questions [](https://beyond-sandbox.gitbook.io/realitysdk/help-center/crashes/crashes-and-errors) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/help-center#undefined-1) xmark-large **Crash & Errors** Get help with crash and errors [](https://discord.gg/beyond-sandbox) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/help-center#undefined-2) heart **Community** Get support from the developers and community Last updated 2 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Modding Contest | Beyond Sandbox ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#overview) Overview As we get closer to the release of Beyond, we want more creators building with us. We lowered the requirements to get access to Beyond and the SDK. This page has the contest details and the updated access requirements. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#sdk-access-requirements) SDK access requirements You qualify if you have **one** of the following: * **25,000** total unique downloads on mod.io (or a similar platform like Nexus) * **Provable, relevant game development experience** ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#early-creator-rewards) Early creator rewards If you have content ready by **March 26** (details shared in Discord), you’ll receive: * Up to **5 free copies of Beyond** (for you and friends) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#cash-prize-pool-usd2-000) Cash prize pool ($2,000) One month after release, we’ll award: * **$500** — Most downloaded **Map** * **$500** — Most downloaded **Game Mode** * **$500** — Most downloaded **Item** (firearm, melee, etc.) * **$500** — **Beyond team’s favorite** (an original creation we pick) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#what-you-can-submit) What you can submit Entries can be: * Brand-new creations * Ports of existing content ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#timeline) Timeline * **March 26** — “Early creator rewards” cutoff * **Release + 1 month** — Prize awards chevron-rightNotes about rules and submission[hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#notes-about-rules-and-submission) We keep the exact submission steps and any category-specific rules in Discord. Join using the link below to get the current checklist. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#enter-the-contest) Enter the contest Join the Discord to get access, entry instructions, and the contest updates. [discordJoin the Discord to enter](https://discord.gg/beyond-sandbox) [PreviousLogging into Mod.iochevron-left](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/logging-into-mod.io) Last updated 1 month ago * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#overview) * [SDK access requirements](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#sdk-access-requirements) * [Early creator rewards](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#early-creator-rewards) * [Cash prize pool ($2,000)](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#cash-prize-pool-usd2-000) * [What you can submit](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#what-you-can-submit) * [Timeline](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#timeline) * [Enter the contest](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest#enter-the-contest) sun-brightdesktopmoon sun-brightdesktopmoon --- # Page 2 | Tutorials | Beyond Sandbox [PreviousPage 1chevron-left](https://beyond-sandbox.gitbook.io/realitysdk/tutorials/official-tutorials/page-1) sun-brightdesktopmoon sun-brightdesktopmoon --- # Community Space | Community | Beyond Sandbox Discover the best mod communities on Beyond and more.. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community#jump-right-in) Jump right in [](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community#undefined) bolt Example Example [](https://github.com/GitbookIO/gitbook-templates/blob/main/product-docs/broken-reference/README.md) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community#undefined-1) leaf **Example** Example [](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/publish-your-docs) #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community#undefined-2) globe-pointer **Example** Example [NextExamplechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor) Last updated 2 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # UnrealEditor-RealityEditorTools.dll!URealityEditor_UtilsLibrary::RealityEditor_ForceRecompileShaderA | FAQ & Help | Beyond Sandbox Copy Fatal error! Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000000 0x00007ff9371d3e75 UnrealEditor-RealityEditorTools.dll!URealityEditor_UtilsLibrary::RealityEditor_ForceRecompileShaderActor() [C:\runner\_work\Beyond\Beyond\Build\Reality\HostProject\Plugins\Reality\Source\RealityEditorTools\Private\Library\RealityEditor_UtilsLibrary.cpp:112] 0x00007ff9371dd9b5 UnrealEditor-RealityEditorTools.dll!URealityObjectData_FunctionLibrary::RealityEditor_ObjectData_CapturePreviewImage() [C:\runner\_work\Beyond\Beyond\Build\Reality\HostProject\Plugins\Reality\Source\RealityEditorTools\Private\ObjectData\RealityObjectData_FunctionLibrary.cpp:97] 0x00007ff937087203 UnrealEditor-RealityEditor.dll!FRealityActorDataEditorUtils::ComputeAll() [C:\runner\_work\Beyond\Beyond\Build\Reality\HostProject\Plugins\Reality\Source\RealityEditor\Private\Asset\Data\RE_AssetDef_ActorData.cpp:309] 0x00007ff93708801d UnrealEditor-RealityEditor.dll!MenuExtension_RE_ObjectData::ExecuteComputeAll() [C:\runner\_work\Beyond\Beyond\Build\Reality\HostProject\Plugins\Reality\Source\RealityEditor\Private\Asset\Data\RE_AssetDef_ActorData.cpp:144] 0x00007ff93708160d UnrealEditor-RealityEditor.dll!TBaseStaticDelegateInstance::ExecuteIfSafe() [C:\UnrealityRelease\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:779] 0x00007ff9748e1d91 UnrealEditor-ToolMenus.dll!UnknownFunction [] 0x00007ff99c2e73a5 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c412c77 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c4180d0 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c3e488a UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c48145c UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c49f332 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c41aa19 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c22a7eb UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c2154a4 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c26f23f UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c25d5c6 UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ff99c251f9c UnrealEditor-Slate.dll!UnknownFunction [] 0x00007ffa282caaf0 UnrealEditor-ApplicationCore.dll!UnknownFunction [] 0x00007ffa282b5786 UnrealEditor-ApplicationCore.dll!UnknownFunction [] 0x00007ffa282cd85e UnrealEditor-ApplicationCore.dll!UnknownFunction [] 0x00007ffa282b05b7 UnrealEditor-ApplicationCore.dll!UnknownFunction [] 0x00007ffa5fd583f1 USER32.dll!UnknownFunction [] 0x00007ffa5fd57eb1 USER32.dll!UnknownFunction [] 0x00007ffa282ebb26 UnrealEditor-ApplicationCore.dll!UnknownFunction [] 0x00007ff66fd8630d UnrealEditor.exe!UnknownFunction [] 0x00007ff66fda57ac UnrealEditor.exe!UnknownFunction [] 0x00007ff66fda589a UnrealEditor.exe!UnknownFunction [] 0x00007ff66fda9114 UnrealEditor.exe!UnknownFunction [] 0x00007ff66fdbbd04 UnrealEditor.exe!UnknownFunction [] 0x00007ff66fdbf0ba UnrealEditor.exe!UnknownFunction [] 0x00007ffa5e2d257d KERNEL32.DLL!UnknownFunction [] circle-check [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/help-center/crashes/unrealeditor-realityeditortools.dll-urealityeditor_utilslibrary-realityeditor_forcerecompileshadera#solution) Solution: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- **Open all the materials referenced by your blueprint actor and make sure they compile without errors. Also make sure they are not empty.** [PreviousCrashes & Errorschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/help-center/crashes/crashes-and-errors) Last updated 2 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Known Issues | Documentation | Beyond Sandbox [PreviousTesting Your Modchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/testing-your-mod) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/overview) Last updated 13 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Page 1 | Tutorials | Beyond Sandbox [PreviousComing Soonchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/tutorials) [NextPage 2chevron-right](https://beyond-sandbox.gitbook.io/realitysdk/tutorials/community-tutorials/page-2) sun-brightdesktopmoon sun-brightdesktopmoon --- # Example | Community | Beyond Sandbox GitBook supports many different types of content, and is backed by Markdown — meaning you can copy and paste any existing Markdown files directly into the editor! ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fgitbookio.github.io%2Fonboarding-template-images%2Fmarkdown-hero.png&width=768&dpr=3&quality=100&sign=4a757e12&sv=2) Feel free to test it out and copy the Markdown below by hovering over the code block in the upper right, and pasting into a new line underneath. Copy # Heading This is some paragraph text, with a [link](https://docs.gitbook.com) to our docs. ## Heading 2 - Point 1 - Point 2 - Point 3 circle-info If you have multiple files, GitBook makes it easy to import full repositories too — allowing you to keep your GitBook content in sync. [PreviousExamplechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor) [NextExamplechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart) sun-brightdesktopmoon sun-brightdesktopmoon --- # Example | Community | Beyond Sandbox ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fgitbookio.github.io%2Fonboarding-template-images%2Fquickstart-hero.png&width=768&dpr=3&quality=100&sign=5d12e8de&sv=2) Beautiful documentation starts with the content you create — and GitBook makes it easy to get started with any pre-existing content. circle-info Want to learn about writing content from scratch? Head to the [Basics](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor) section to learn more. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart#import) Import GitBook supports importing content from many popular writing tools and formats. If your content already exists, you can upload a file or group of files to be imported. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fgitbookio.github.io%2Fonboarding-template-images%2Fquickstart-import.png&width=768&dpr=3&quality=100&sign=7fa03041&sv=2) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart#sync-a-repository) Sync a repository GitBook also allows you to set up a bi-directional sync with an existing repository on GitHub or GitLab. Setting up Git Sync allows you and your team to write content in GitBook or in code, and never have to worry about your content becoming out of sync. [PreviousExamplechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/markdown) [NextExamplechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/publish-your-docs) * [Import](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart#import) * [Sync a repository](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart#sync-a-repository) sun-brightdesktopmoon sun-brightdesktopmoon --- # Logging into Mod.io | Beyond Sandbox 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/logging-into-mod.io#expand-the-reality-ribbon) Expand the Reality Ribbon Locate Login, and Select it. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2085998268-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FRK6oDaim0Qre6F5CdhM0%252Fuploads%252FxnEM4JF6FrE9QlqAHta2%252Fimage.png%3Falt%3Dmedia%26token%3D766f73a8-5e4c-4aca-8489-fff4ecbc4a75&width=768&dpr=3&quality=100&sign=20f42302&sv=2) 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/logging-into-mod.io#login) Login ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2085998268-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FRK6oDaim0Qre6F5CdhM0%252Fuploads%252Fh8bazPN51hTMaWPlJoaQ%252Fimage.png%3Falt%3Dmedia%26token%3D7ed0f05a-b07c-403d-bbee-9ab5e5cf4cf7&width=768&dpr=3&quality=100&sign=6acbf6ff&sv=2) Input your email, and then select Request Code. after you request the code, the button will change to Login. Input the code, and hit login. Expand the Reality Drop down ribbon once more, and check that the Login button has changed to Logout, if not, restart your editor. [PreviousGet The Modkitchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit) [NextModding Contestchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/modding-contest) Last updated 0 minutes ago * [Expand the Reality Ribbon](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/logging-into-mod.io#expand-the-reality-ribbon) * [Login](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/logging-into-mod.io#login) sun-brightdesktopmoon sun-brightdesktopmoon --- # Crashes & Errors | FAQ & Help | Beyond Sandbox This section is dedicated to common crashes, error messages, and technical issues that users may encounter while working with the modkit. If you experience a crash, an “Unhandled Exception,” cooking failure, shader issue, or any other unexpected error, check this category first. Many common problems have known causes and documented solutions. Each entry includes: * A description of the error or crash * Steps to resolve the issue * Any known limitations or engine-related constraints Before reporting a new issue, please review the relevant articles in this section to see if a solution is already available. [PreviousFrequently Asked Questionschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/help-center/faq/frequently-asked-questions) [NextUnrealEditor-RealityEditorTools.dll!URealityEditor\_UtilsLibrary::RealityEditor\_ForceRecompileShaderAchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/help-center/crashes/unrealeditor-realityeditortools.dll-urealityeditor_utilslibrary-realityeditor_forcerecompileshadera) Last updated 2 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Frequently Asked Questions | FAQ & Help | Beyond Sandbox Got questions? We’ve got answers! This section covers the most common inquiries about using the modkit—from installation tips and troubleshooting to advanced features. Whether you’re just starting out or looking to optimize your workflow, our FAQ is your go-to resource for quick, clear guidance. Coming soon. [PreviousHelp Centerchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/help-center) [NextCrashes & Errorschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/help-center/crashes/crashes-and-errors) Last updated 2 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Get The Modkit | Beyond Sandbox Download RealitySDK.zip from the [Unreality Releasesarrow-up-right](https://github.com/AtlasXR-public/Unreality/releases/tag/Unreality) repository. triangle-exclamation **If you’re seeing a 404 page, make sure your GitHub account is linked to your Epic account. Learn how to connect and get access here:** [https://www.unrealengine.com/ue-on-github?lang=en-USarrow-up-right](https://www.unrealengine.com/ue-on-github?lang=en-US) 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#prepare-and-extract-realitysdk) Prepare and extract RealitySDK * Move the RealitySDK.zip file to the root of your drive (e.g., C:). circle-exclamation This prevents long file path issues with Unreal Engine. * Right-click the file and select Extract All... ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FRK6oDaim0Qre6F5CdhM0%2Fblobs%2FTh9m0QEg6414XASP3tBw%2Fimage&width=768&dpr=3&quality=100&sign=897d5868&sv=2) Extract RealitySDK This will be your root folder for the Unreality Engine. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#download-and-install-the-unreality-engine) Download and install the Unreality Engine * Download the Unreality Engine (all six Engine.zip.00X files) from the same GitHub releases page. * Place all six .00X files inside the extracted RealitySDK folder. (⚠️ See picture) * Double-click RealitySetup. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FRK6oDaim0Qre6F5CdhM0%2Fblobs%2Fo4rgFYKnyE88IIR3TcSr%2Fimage&width=768&dpr=3&quality=100&sign=c8daf3a7&sv=2) ExtractUnrealityEngine This process will extract the Unreality Engine and install the RealitySDK along with all required dependencies. Once the installation is complete, Unreal Engine will prompt a confirmation window — click Allow to proceed. The engine will then launch automatically. circle-exclamation This requires **at least 55 GB of free space**. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#understanding-unreality-vs-reality) Understanding Unreality vs Reality * **Unreality Engine** is Atlas XR and Meta’s fork of Unreal Engine, optimized for VR. It’s updated rarely and is the base engine you’ll build on. * **RealitySDK** is the modkit. It’s updated frequently and contains the SDK tools you’ll use when creating mods. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#setting-up-your-project) Setting Up Your Project #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#if-you-dont-have-a-modkit-unreal-project-yet) If you don’t have a Modkit Unreal project yet 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#open-unreality) Open Unreality It may take a few minutes to compile the first time you open it. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#create-a-new-project) Create a new project In the Unreal Project Browser: * Select **Blank Project** * Choose **Blueprint** (not C++) * Click **Create** to make a new project. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#enable-the-reality-plugin) Enable the Reality plugin Once the project opens: * From the top ribbon, click **Edit → Plugins**. * Search for **Reality**. circle-exclamation #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#if-the-reality-plugin-is-missing) **If the Reality plugin is missing** Close the project and go to `C:\RealitySDK\Tools` and run **RealityUpdater.bat** to install the latest version. You can also download it manually [here.arrow-up-right](https://github.com/AtlasXRInc/RealitySDK/releases) * If it's disabled, click the checkbox to enable it. * Restart the editor when prompted. #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#if-you-already-have-a-modkit-project) If you already have a Modkit project Make sure you are using the correct Unreal version. Right-click your `.uproject` file → **Switch Unreal Engine Version** → select the path to **Unreality**. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#create-your-first-mod) Create your first mod 1 In the Unreal Editor, open the **Reality** dropdown (top menu bar). 2 Select **New Mod**. [PreviousWelcomechevron-left](https://beyond-sandbox.gitbook.io/realitysdk) [NextLogging into Mod.iochevron-right](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/logging-into-mod.io) Last updated 1 day ago * [Prepare and extract RealitySDK](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#prepare-and-extract-realitysdk) * [Download and install the Unreality Engine](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#download-and-install-the-unreality-engine) * [Understanding Unreality vs Reality](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#understanding-unreality-vs-reality) * [Setting Up Your Project](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#setting-up-your-project) * [Open Unreality](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#open-unreality) * [Create a new project](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#create-a-new-project) * [Enable the Reality plugin](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#enable-the-reality-plugin) * [Create your first mod](https://beyond-sandbox.gitbook.io/realitysdk/getting-started/get-the-modkit#create-your-first-mod) sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox A **Reality Interactable** is any physical object that players can interact with through their VR hands — such as weapons, doors, and other interactive props. This system enables objects to behave physically and deal damage appropriately (e.g., smashing a chair on someone’s head will cause damage). [PreviousKnown Issueschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/known-issues) [NextCreate Interactablechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable) sun-brightdesktopmoon sun-brightdesktopmoon --- # Example | Community | Beyond Sandbox GitBook has a powerful block-based editor that allows you to seamlessly create, update, and enhance your content. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fgitbookio.github.io%2Fonboarding-template-images%2Feditor-hero.png&width=768&dpr=3&quality=100&sign=21368cde&sv=2) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#writing-content) Writing content GitBook offers a range of block types for you to add to your content inline — from simple text and tables, to code blocks and more. These elements will make your pages more useful to readers, and offer extra information and context. Either start typing below, or press `/` to see a list of the blocks you can insert into your page. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#add-a-new-block) Add a new block 1 #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#open-the-insert-block-menu) Open the insert block menu Press `/` on your keyboard to open the insert block menu. 2 #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#search-for-the-block-you-need) Search for the block you need Try searching for “Stepper”, for exampe, to insert the stepper block. 3 #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#insert-and-edit-your-block) Insert and edit your block Click or press Enter to insert your block. From here, you’ll be able to edit it as needed. [PreviousCommunity Spacechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/community) [NextExamplechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/markdown) * [Writing content](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#writing-content) * [Add a new block](https://beyond-sandbox.gitbook.io/realitysdk/community/community-1/editor#add-a-new-block) sun-brightdesktopmoon sun-brightdesktopmoon --- # Example | Community | Beyond Sandbox Once you’ve finished writing, editing, or importing your content, you can publish your work to the web as a docs site. Once published, your site will be accessible online only to your selected audience. You can publish your site and find related settings from your docs site's homepage. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2Fgitbookio.github.io%2Fonboarding-template-images%2Fpublish-hero.png&width=768&dpr=3&quality=100&sign=e5734096&sv=2) [PreviousExamplechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/community/community-2/quickstart) sun-brightdesktopmoon sun-brightdesktopmoon --- # Create Interactable | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#creating-a-reality-interactable-actor) Creating a Reality Interactable Actor --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#create-the-blueprint) Create the blueprint * Right-click in the Content Browser. * Select Create Blueprint Class. * Search for Reality Interactable. * Choose it as the parent class for your new blueprint. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#add-and-link-a-data-asset) Add and link a data asset * Create and link the appropriate data asset in the details panel of your actor. * Each Reality Interactable actor needs a data asset or you will get errors. * Generic RealityInteractable actors should use the RealityInteractableData asset. * Otherwise, use the Data Asset corresponding to the correct child class (i.e., RealityRoundData for RealityRound, RealityMagazineData for RealityMagazine). * You can look at examples in /All/EngineData/Plugins/Reality/Library/Interactable to see how data assets are used correctly. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#base-mesh-and-distance-grip-indicator) Base Mesh & Distance Grip Indicator * Set your mesh into Base Mesh. * Distance Grip Indicator shows when the player is pointing at an item that can be distance-gripped. * Requires at least one Animated Grip on the item. * Distance grip does not work if the item only has procedural grip(s). circle-info Use Reality Interactable for anything that requires physics-based interaction. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#examples-of-what-should-not-be-interactable) Examples of What Should _Not_ Be Interactable * Decorative props that don’t need physics interaction * Non-physical gameplay elements (e.g., trigger volumes, UI components) * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#converting-an-existing-actor-to-a-reality-interactable) Converting an Existing Actor to a Reality Interactable ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- If you already have an actor and want to make it interactable: 1 Open the existing actor’s Blueprint. 2 In the top ribbon, click Class Settings. 3 In the Details Panel, set the Parent Class to `Reality Interactable`. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#viewing-example-interactables) Viewing Example Interactables ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- To explore example Reality Interactable blueprints: 1 Open the Content Browser. 2 Click Settings (top right). 3 Enable Show Engine Content. 4 In the Engine directory, search for `RealityInteractable`. You’ll find blueprints such as: * `RealityInteractable_Machete` These can be great references for setup and best practices. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#placement-in-mod-folder) Placement in Mod Folder ----------------------------------------------------------------------------------------------------------------------------------------------------------- When you create a mod, a folder named `ModName Content` is automatically generated in the Plugins folder. > Make sure your Reality Interactable actor (and all dependencies i.e meshes, textures, animations) are saved inside this folder, or it will not be packaged with your mod. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#scaling-interactables) Scaling Interactables ------------------------------------------------------------------------------------------------------------------------------------------------------- circle-exclamation Do not scale the Root Component directly. Changing the root component’s scale causes physics issues. (The Root Component is the top component in the Components hierarchy when a Blueprint is open) Instead, use the UE5 Editor tools to adjust the size of your mesh: * Remodel or reimport the mesh at the correct scale. * Alternatively, use the Static Mesh Editor to adjust its import scale. [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/overview) [NextPrepare Mesheschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes) Last updated 2 months ago * [Creating a Reality Interactable Actor](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#creating-a-reality-interactable-actor) * [Create the blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#create-the-blueprint) * [Add and link a data asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#add-and-link-a-data-asset) * [Base Mesh & Distance Grip Indicator](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#base-mesh-and-distance-grip-indicator) * [Examples of What Should Not Be Interactable](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#examples-of-what-should-not-be-interactable) * [Converting an Existing Actor to a Reality Interactable](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#converting-an-existing-actor-to-a-reality-interactable) * [Viewing Example Interactables](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#viewing-example-interactables) * [Placement in Mod Folder](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#placement-in-mod-folder) * [Scaling Interactables](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable#scaling-interactables) sun-brightdesktopmoon sun-brightdesktopmoon --- # Prepare Meshes | Documentation | Beyond Sandbox This guide explains how to correctly prepare meshes for use with the **Reality Interactable** and **Reality Firearm** systems. It covers proper **scaling**, **orientation**, **pivot point setup**, and **collision** — all of which are essential for correct behavior in VR. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#accessing-reference-assets) Accessing Reference Assets ------------------------------------------------------------------------------------------------------------------------------------------------------------ To help verify scale and proportions, a **hand reference** is available in the Modkit: * Open the **Content Browser**. * Enable **Show Engine Content** (top right settings). * Navigate to: Copy Engine → Plugins → RealityContent → Library → Interactable In this folder, you’ll find various reference and example assets. * In the Firearm Folder, an example for every gun type currently in the game. * In the GripPose Folder, default grip poses you could use as a reference to make your own grips. * In Melee, a Machete example. * In Props, a DoorHandle Example (Useful as a reference point for interactables built into the map!) These examples demonstrate proper setup and can be used as reference when adjusting your own interactables. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#scaling-your-weapon) Scaling Your Weapon ---------------------------------------------------------------------------------------------------------------------------------------------- When preparing your weapon mesh, first ensure it matches the correct **VR scale** using the hand reference. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#steps) Steps 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#parent-components) Parent components Parent all components (i.e. magazine, trigger, charging handle) to the base mesh (main part of the weapon). This ensures that when you scale, all parts maintain their relative positions. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#scale-the-parent) Scale the parent Select the **parent mesh** and adjust the scale in the details panel. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#unparent-children) Unparent children Unparent all child meshes so each one has the new scale applied. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#modeling-tools) Modeling Tools Select all meshes and open the **Modeling Tools** panel. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#baking-the-transform) Baking the Transform 1 Go to **XForm → Bake Transform**. 2 Check **Apply to All LODs** and **Bake Rotation**. 3 Click **Accept**. This sets the new scale and rotation as default (`Scale = 1.0, Rotation = 0°`). * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#orientation-setup) Orientation Setup ------------------------------------------------------------------------------------------------------------------------------------------ For the Reality Firearm system to function properly, weapons must face the **+X-axis**. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#example) Example If your model currently faces the **Y-axis**, follow these steps: 1 Parent all components (i.e. magazine, trigger, charging handle) to the base mesh (main part of the weapon). 2 Rotate your weapon **90°** so it aligns with the X-axis. 3 Adjust small pitch angles if needed so the barrel is level with the floor. 4 Once aligned, **unparent** the components. 5 Select them all again and **Bake Transform** (rotation and scale). Now the default rotation should be correct for all parts (0, 0, 0). * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#setting-pivot-points) Setting Pivot Points ------------------------------------------------------------------------------------------------------------------------------------------------ Each mesh acts as a **physics object**, so correct pivot placement is important. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#centered-pivots) Centered Pivots For most meshes (weapon body, magazine, charging handle): 1 Open the **Modeling Tools** and go to the **XForm** tab. 2 Select **Edit Pivot** → **Center**. 3 Click **Accept** to bake the pivot. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#rotating-parts-exceptions) Rotating Parts (Exceptions) Some components, such as **triggers** or **levers**, need their pivots placed at their rotation point. 1 Use **Edit Pivot** and move the pivot to where the rotation should occur (usually near the hinge). 2 Fine-tune manually in the viewport. 3 Click **Accept** to bake the new pivot. 4 Test the rotation to ensure it behaves naturally. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#adding-simple-collision) Adding Simple Collision ------------------------------------------------------------------------------------------------------------------------------------------------------ Unreal Engine 5 requires meshes with **simple collision** for physics interactions. Complex collisions are **not supported** by Reality systems. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#checking-collision) Checking Collision 1 Double-click the mesh to open the **Static Mesh Editor**. 2 Go to **Show → Simple Collision**. * If nothing appears, the mesh doesn’t have simple collision. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#generating-collision) Generating Collision 1 Open **Window → Convex Decomposition**. 2 Adjust the parameters: * Higher values = more detailed (but slower to compute). 3 Click **Generate** to create a collision mesh. You can move, resize, or delete generated collision pieces to refine accuracy. circle-exclamation For firearms, keep the magazine socket area clear so the magazine can be inserted properly. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#creating-custom-collision-shapes) Creating Custom Collision Shapes You can manually add: * **Box** * **Capsule** * **Sphere** Then position and scale them to match the mesh. * * * chevron-rightImportant Notes on Collision[hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#important-notes-on-collision) * Do **not** enable **“Use Complex Collision as Simple.”** * Keep **Collision Complexity** set to **Project Default.** * If you need highly accurate collisions, create them in a 3D modeling tool and reimport. [PreviousCreate Interactablechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable) [NextAdding Gripschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips) Last updated 1 month ago * [Accessing Reference Assets](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#accessing-reference-assets) * [Scaling Your Weapon](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#scaling-your-weapon) * [Steps](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#steps) * [Parent components](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#parent-components) * [Scale the parent](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#scale-the-parent) * [Unparent children](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#unparent-children) * [Modeling Tools](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#modeling-tools) * [Baking the Transform](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#baking-the-transform) * [Orientation Setup](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#orientation-setup) * [Example](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#example) * [Setting Pivot Points](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#setting-pivot-points) * [Centered Pivots](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#centered-pivots) * [Rotating Parts (Exceptions)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#rotating-parts-exceptions) * [Adding Simple Collision](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#adding-simple-collision) * [Checking Collision](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#checking-collision) * [Generating Collision](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#generating-collision) * [Creating Custom Collision Shapes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes#creating-custom-collision-shapes) sun-brightdesktopmoon sun-brightdesktopmoon --- # Adding Grips | Documentation | Beyond Sandbox There are **two types of grips** available in the Reality ModKit: * **Procedural Grips** – quick to set up, automatically adapt to any shape, but offer limited fine-tuning. * **Animated Grips** – allow for precise, hand-animated interactions such as weapon grips, triggers, or special poses. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#procedural-grips) Procedural Grips -------------------------------------------------------------------------------------------------------------------------------------- **Procedural grips** adapt dynamically to the shape of the object using its collision. They’re ideal for general props or objects where precise finger placement isn’t required. * Very easy to set up * Works on any shape * No fine-tuning or animation control circle-info Even without setting up procedural gripping, the physics system may still let you “pick up” items loosely (e.g., wrapping fingers around a gun grip). However, to have the item properly attached to the hand, you must enable procedural gripping. Internally, this uses `AttachComponentToComponent`. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#registering-a-procedural-grip) Registering a Procedural Grip You do **not** need to add a `RealityGripComponent` or set up any special collision volume to register a procedural grip. To register a procedural grip: 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#open-the-owning-blueprint) Open the owning blueprint Open the actor or component blueprint that owns the grip. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#class-defaults) Class Defaults Go to **Class Defaults**. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#locate-the-grip-section) Locate the Grip section In the **Details Panel**, locate the **Grip** section. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-a-new-procedural-grip-entry) Add a new procedural grip entry Next to **Procedural Grip Settings**, click the **Plus (+)** button to add a new procedural grip entry. 5 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#set-the-static-mesh) Set the Static Mesh In the newly added grip entry, set the **Static Mesh** you want to be grippable. circle-exclamation * The `RegisterGripProcedural` function is **deprecated** and should not be used. * Procedural grips can only be registered **in the editor**, not at runtime. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#animated-grips) Animated Grips ---------------------------------------------------------------------------------------------------------------------------------- **Animated grips** are used for precise hand interactions — for example, a pistol grip where the **trigger finger** moves independently when firing. They rely on playing animations on a **special skeletal mesh hand**, allowing exact control over finger poses and transitions through **Blendspaces**. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#requirements) Requirements * You must use the provided skeletal mesh: `SKM_HandUE5` (This is already the default value for the hand field.) * You need to create an **animation** for the hand. * You need to create a **Blendspace** that includes the relevant hand animations to allow smooth finger transitions (e.g., pressing the trigger). ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#setting-up-an-animated-grip) Setting Up an Animated Grip 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-a-realitygripcomponent) Add a RealityGripComponent Add a `RealityGripComponent` to your object. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#preview-the-hand-side) Preview the hand side In the **Details Panel**, set the preview to the **left** or **right** hand. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#assign-blendspaces-per-hand) Assign Blendspaces per hand For each hand, assign the corresponding **Blendspace**. For a given grip, left and right hands will likely need different positions — verify and align the hand mesh for both previews. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#create-a-collision-volume) Create a collision volume Create a **collision volume** for this grip and set the collision preset to `InteractiveComponent`. The grip will only activate when the user’s hand overlaps this volume and they pull the grip trigger on their controller. Each `RealityGripComponent` represents **one grip**. You can add **multiple** animated grips (e.g., main grip, charging handle grip). Register each one with its own collision volume. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#registering-an-animated-grip) Registering an Animated Grip To register an animated grip: 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#open-the-owning-blueprint-1) Open the owning blueprint Open the actor or component blueprint that owns the grip. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#class-defaults-1) Class Defaults Go to **Class Defaults**. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#locate-the-grip-section-1) Locate the Grip section In the **Details Panel**, locate the **Grip** section. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-an-animated-grip-entry) Add an animated grip entry Next to **Animated Grip Settings**, click the **Plus (+)** button to add a new animated grip entry. 5 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#select-collision-volume) Select Collision Volume For the new grip entry, select the **Collision Volume** from the dropdown. This collision is used **only** to detect overlap and activate the grip. 6 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-grip-component-settings) Add Grip Component Settings Under **Grip Component Settings**, add a new array item and assign the corresponding **RealityGripComponent**. 7 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#mark-main-grip-optional) Mark main grip (optional) If this grip represents the primary grip (e.g. a main weapon grip), enable the **Main Grip** checkbox. circle-exclamation * The `RegisterGripAnimation` function is **deprecated** and should not be used. * Animated grips can only be registered **in the editor**, not at runtime. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#animated-grip-behavior) Animated Grip Behavior * When gripping, the **root bone of the hand snaps** to the defined grip location. * All finger and hand positioning is driven by the **Blendspace**, not physics. * When the controller releases the grip, the **animated grip deactivates**. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#creating-custom-hand-poses-for-animated-grips) Creating Custom Hand Poses (for Animated Grips) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This section walks through making a **custom hand pose animation** for `SKM_HandUE5` and setting it up with a **Blendspace**. 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#duplicate-a-base-hand-animation) Duplicate a base hand animation In `/All/EngineData/Plugins/Reality/Core/Interactable/Grip`, locate the default `A_HandUE5` animation sequence. Duplicate it into **your mod folder** (important for packaging; only assets inside your mod folder can be referenced by your mod). 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#editor-constraints-while-posing) Editor constraints while posing Open the duplicated hand animation and follow these constraints: * Do NOT move/rotate/scale: the `root`, the `hand_r`, and any `Metacarpal` bones. * Only rotate finger bones to pose the hand. Avoid translating or scaling finger bones to maintain realism. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#preview-your-object-in-the-hand-animation) Preview your object in the hand animation To pose the hand around your object: 1. Right-click the **Root**, then select `Add Socket`. Right-click the **socket**, then select `Add Preview Asset`. 2. Temporarily move/rotate the socket and (temporarily) the `hand_r` bone so the preview object sits correctly in the hand while posing. Keyframe (click **+Key**) to capture these temporary transforms so the hand and object line up while you pose fingers. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#pose-the-fingers) Pose the fingers Rotate finger bones as needed to pose the hand. (Reminder: do not use metacarpals.) Click **+Key** again to key the finger bone rotations once your pose is set. 5 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#clean-up-the-temporary-keys) Clean up the temporary keys * Delete the `hand_r` track. Keeping transforms there will cause issues at runtime. * Remove the preview mesh. * Delete the temporary socket. Now you have a clean hand pose animation containing only the finger rotations. 6 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#optional-bake-the-pose) (Optional) Bake the pose Use **Create Asset → Create Animation → Current Pose** to bake the pose so it contains no keys. 7 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#create-a-blendspace-and-add-the-pose-s) Create a Blendspace & add the pose(s) * Create a **1D Blendspace** for `SKM_HandUE5`. * Drag in your pose animation. For a single static pose, the position in the Blendspace doesn’t matter. For grips that need stateful finger behavior, drag in the other animations you want to use in the Blendspace. * You can also author **2D Blendspaces** if you need a second input dimension. 8 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#assign-the-blendspace-to-the-grip) Assign the Blendspace to the grip In your `RealityGripComponent`, assign the Blendspace per-hand (right/left). * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#grip-settings-procedural-and-animated) Grip Settings (Procedural & Animated) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- When calling the **Register** nodes, fill the **Grip Settings / Hand Grip Info** struct: * **Grip Name**: Required string used for later reference. Do not leave empty. * **Can Rotate With Two Hands**: * True: If gripped with two hands, rotation is influenced by both hands. * False: Rotation follows the first hand that grabbed. * **Grip Priority**: * When multiple grips are eligible, the one with higher priority is chosen. * If priorities are equal and one grip is Animated and the other Procedural, the system prioritizes the Animated grip. * If priorities are equal and types equal, the first encountered is chosen. * **Allow Multiple Hand Grips**: * For Procedural grips on long props (e.g., poles), you may want multiple hands to grip the same procedural target. * For Animated grips like a main weapon grip, you typically disable this so you don’t get two right hands, or left/right hands clipping into the same slot. * **Custom Sounds**: Optional Grip and Release sounds can be assigned and will play on events. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#runtime-and-performance-notes) Runtime & Performance Notes -------------------------------------------------------------------------------------------------------------------------------------------------------------- * The `RealityGripComponent` used for Animated grips is destroyed after registration. Its data is retained. Do **not** reference the component at runtime. * Procedural grips do **not** require a `RealityGripComponent` and do **not** require their own collision volume. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#examples) Examples ---------------------------------------------------------------------------------------------------------------------- To see how grips are set up on different firearms and interactable objects, search for `RealityFirearm` or `RealityInteractable` in the Content Browser. If no results appear, open the Content Browser Settings and enable “Show Engine Content” to make these examples visible. [PreviousPrepare Mesheschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/prepare-meshes) [NextReality Hand Poser Toolchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool) Last updated 2 months ago * [Procedural Grips](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#procedural-grips) * [Registering a Procedural Grip](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#registering-a-procedural-grip) * [Open the owning blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#open-the-owning-blueprint) * [Class Defaults](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#class-defaults) * [Locate the Grip section](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#locate-the-grip-section) * [Add a new procedural grip entry](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-a-new-procedural-grip-entry) * [Set the Static Mesh](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#set-the-static-mesh) * [Animated Grips](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#animated-grips) * [Requirements](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#requirements) * [Setting Up an Animated Grip](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#setting-up-an-animated-grip) * [Add a RealityGripComponent](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-a-realitygripcomponent) * [Preview the hand side](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#preview-the-hand-side) * [Assign Blendspaces per hand](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#assign-blendspaces-per-hand) * [Create a collision volume](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#create-a-collision-volume) * [Registering an Animated Grip](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#registering-an-animated-grip) * [Open the owning blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#open-the-owning-blueprint-1) * [Class Defaults](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#class-defaults-1) * [Locate the Grip section](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#locate-the-grip-section-1) * [Add an animated grip entry](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-an-animated-grip-entry) * [Select Collision Volume](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#select-collision-volume) * [Add Grip Component Settings](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#add-grip-component-settings) * [Mark main grip (optional)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#mark-main-grip-optional) * [Animated Grip Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#animated-grip-behavior) * [Creating Custom Hand Poses (for Animated Grips)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#creating-custom-hand-poses-for-animated-grips) * [Duplicate a base hand animation](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#duplicate-a-base-hand-animation) * [Editor constraints while posing](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#editor-constraints-while-posing) * [Preview your object in the hand animation](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#preview-your-object-in-the-hand-animation) * [Pose the fingers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#pose-the-fingers) * [Clean up the temporary keys](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#clean-up-the-temporary-keys) * [(Optional) Bake the pose](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#optional-bake-the-pose) * [Create a Blendspace & add the pose(s)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#create-a-blendspace-and-add-the-pose-s) * [Assign the Blendspace to the grip](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#assign-the-blendspace-to-the-grip) * [Grip Settings (Procedural & Animated)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#grip-settings-procedural-and-animated) * [Runtime & Performance Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#runtime-and-performance-notes) * [Examples](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips#examples) sun-brightdesktopmoon sun-brightdesktopmoon --- # Reality Hand Poser Tool | Documentation | Beyond Sandbox ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool#opening-the-tool) Opening the Tool Open **Tools** in the top of your Modkit. Search for and open "Reality Hand Poser" ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FqcnCdU79xwtDY6rO5XXL%252Fimage.png%3Falt%3Dmedia%26token%3D98c84700-2871-435c-8931-1fd26ce281fc&width=768&dpr=3&quality=100&sign=8b1b412f&sv=2) This will open a new tab, and in the viewport you should see a hand. circle-info If your viewport is empty, in the top left above the viewport, select the **Template** drop down and select either the Right or Left Hand Template. On The Right side of the Editor, you'll see sliders for curling each individual finger, as well as a slider for all fingers at the same time. Under these sliders, are drop down boxes for fine tuning the curling per-bone. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool#setting-up-the-tool) Setting up the Tool On top of your viewport, you will see a few settings. Template: Switch between the Right and Left hand templates, or any custom ones you make. Skeleton: Unless you are using this tool for something other than the Reality Hand, you will not need to change this. Hand Mesh: You can change this to a custom hand mesh if you have any, it does not matter what hand mesh you have selected if they all use the same skeleton. Object (SM): This is where you can select the preview for your Interactable as a reference while creating the Grip Pose. Object (SK): Same as Object (SM), just if your mesh is a Skeletal Mesh instead. arrows-up-down-left-right To move the Object SM/SK, locate the **Gizmo** toggle buttons on top of the Finger Curl options, and select **Object**. hand-point-up Under the Viewport, there is a section called 'Quick Export Presets', these set the hand to the animation of some examples given in the Modkit so you can edit them easier! * * * #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool#exporting-your-hand-pose) Exporting Your Hand Pose After your Grip Pose is complete, Look to the bottom of the editor ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FouoTJ23NaJALya3kzC6F%252Fimage.png%3Falt%3Dmedia%26token%3D0684d920-05fa-4360-b046-a1f81efb900b&width=768&dpr=3&quality=100&sign=740b8b19&sv=2) circle-exclamation Make sure you export it to the correct Mod. External references in your mod cause errors! The Subfolder and Asset Name can be whatever you'd like. Rest anim can remain empty. **Export Blend Space** when you are ready. [PreviousAdding Gripschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips) [NextFirearmchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm) Last updated 1 month ago * [Opening the Tool](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool#opening-the-tool) * [Setting up the Tool](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool#setting-up-the-tool) sun-brightdesktopmoon sun-brightdesktopmoon --- # Firearm | Documentation | Beyond Sandbox [Create Firearmchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm) [Create Magazinechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine) [Create Roundchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round) [PreviousReality Hand Poser Toolchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/adding-grips/reality-hand-poser-tool) [NextCreate Firearmchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Melee Weapon | Documentation | Beyond Sandbox [Sharp Area Componentchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component) [PreviousCreate Roundchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round) [NextSharp Area Componentchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameMode API | Documentation | Beyond Sandbox [GameModeBase APIchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api) [GameMode APIchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api) [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/overview) [NextGameModeBase APIchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api) sun-brightdesktopmoon sun-brightdesktopmoon --- # Create Round | Documentation | Beyond Sandbox A **RealityRound** is a child of **Reality Interactable** used to represent physical rounds in the world. Rounds can be picked up, inserted into internal magazines, or placed directly into chambers for weapons that support manual insertion. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#basic-setup) Basic setup ------------------------------------------------------------------------------------------------------------------------------------ * Create a new **Blueprint** and select **RealityRound** as the parent class. * Set the **Base Mesh**. * Set the **Round Consumed Mesh**. * If the round should be grabbable, set up grips on the round (see **Grips** section of this documentation). [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#double-multi-rounds-shotgun-double-rounds) Double / multi-rounds (shotgun "double" rounds) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ * For rounds representing two projectiles (example: double slug/rounds used in some shotguns), set **Remaining Rounds Amount** to `2` on the so the feeding/chambering logic knows it contains two charges. * Example asset to reference: `RealityRound_12x70mm_Double`. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#insertion-collision) Insertion / collision ------------------------------------------------------------------------------------------------------------------------------------------------------ * **Round Insertion Collision** is a **Box Component** on the round. * When this box overlaps the firearm’s corresponding **RoundInsertionCollision** component, the round will be inserted. * This overlap insertion is used for: * Reloading **internal magazines** (push rounds into the weapon’s internal store). * Placing rounds directly into the **chamber** for weapons that accept single-round insertion even when they have external magazines. * It is **not** used for placing rounds into external magazines. * Position and size the box deliberately — alignment determines the angle/position at which rounds can be inserted. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#events) Events -------------------------------------------------------------------------------------------------------------------------- * Use the `BP_OnRoundInsertedInInternalMagazine` event to run custom logic when the round is inserted into a firearm’s internal magazine. * Useful to update visuals when a double round is seated. * The event is called automatically by the firearm when a round successfully inserts into the internal magazine. [PreviousCreate Magazinechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine) [NextMelee Weaponchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon) * [Basic setup](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#basic-setup) * [Double / multi-rounds (shotgun "double" rounds)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#double-multi-rounds-shotgun-double-rounds) * [Insertion / collision](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#insertion-collision) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round#events) sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox Game Modes define the overall structure and rules of gameplay in Reality. Each game mode combines a custom `RealityGameMode` class with a `RealityGameData` asset that configures teams, voice chat, UI widgets, and gameplay phases. Phases, defined as `RealityGamePhase` assets, control how the match flows—from warm-up and active play to end-game—through actions, conditions, and transitions. Together, these systems make it easy to build everything from simple free-for-all matches to complex team-based or round-based experiences, with full control over scoring, spawning, and logic. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/overview#gamephase-diagram-with-player-event) Gamephase diagram with player event. --------------------------------------------------------------------------------------------------------------------------------------------------------------------- ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FAZZzDxbKUHxetDJ98Lnw%252Fimage.png%3Falt%3Dmedia%26token%3D776f9793-6405-402d-bc75-39937943516d&width=768&dpr=3&quality=100&sign=74d06fc6&sv=2) [PreviousSharp Area Componentchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component) [NextGameMode APIchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api) Last updated 9 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Custom Event Function | Documentation | Beyond Sandbox WIP [PreviousReality Event Function Systemchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system) [NextReality Functionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function) Last updated 22 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Sharp Area Component | Documentation | Beyond Sandbox The **Sharp Area Component** is a box collider component that enables **stabbing** and **slashing** interactions in your project. It can be used to create functional **spikes**, **traps**, **bayonets**, or **bladed weapons**. You can choose to enable **stabbing**, **slashing**, or both — depending on the behavior you want. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#adding-a-sharp-area-component-to-a-blueprint) Adding a Sharp Area Component to a Blueprint ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#add-the-component) Add the component In the **Components** tab of your Blueprint, click **Add**. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#select-the-component) Select the component Search for **Reality Sharp Area** and select it. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#position-and-align) Position and align Position the component and **align its scale and rotation** with the sharp area on the Blueprint you are working with. circle-info Sometimes you may need more than one Sharp Area Component to accurately simulate your weapon. For example, a katana may use one Sharp Area for the **tip** (stabbing) and another for the **blade** (slashing). You can align the **stab axis** and **slash axis** either by: * Changing the corresponding variable in the dropdown, or * Rotating the entire component in the editor. circle-exclamation For complex weapons like a rake, **adding a Sharp Area Component to every spike is not recommended**, as this may negatively impact performance. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#variable-reference) Variable Reference --------------------------------------------------------------------------------------------------------------------------------------------------------------- The following tables list all available variables for the **Sharp Area Component**, separated into Stabbing and Slashing settings. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#stabbing) Stabbing Variable Description **Can Stab** Enables stabbing behavior for this sharp area. **Stab Axis** Axis aligned with the normal direction of the tip. **Position Strength** Controls how rigidly the sharp area will stay attached to the penetration point. **Velocity Strength** Controls how fast the object returns to rest when displaced **Minimum Penetration** Minimum distance required to count as a valid stab. **Maximum Penetration** Maximum distance the blade can penetrate. **Stab Force Threshold** Offset applied to the base stab force threshold. Negative requires less force to stab; positive requires more. **Can Be Pushed Deeper** Toggle on to allow the blade to be pushed deeper into the wound. When Can Be Pushed Deeper is disabled, the stab depth is calculated on the first collision frame and remains fixed at that depth. When enabled, the blade can continue to be pushed deeper into the target up to the Maximum Penetration distance after the initial stab. **Can Twist** Enables twisting of the blade after penetration. **Twist Limit** How far twisting is allowed (in degrees or custom units). **Can Swing** Whether the blade can swing from this area. **Swing Limit** How far the blade can swing (in degrees or custom units). ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#slashing) Slashing Variable Description **Can Slash** Enables slashing behavior for this sharp area. **Slash Force Threshold** Offset applied to the base slash force threshold. Negative requires less force to slash; positive requires more. **Slash Axis** Axis that runs along the blade for slashing direction. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#positioning-notes) Positioning Notes ------------------------------------------------------------------------------------------------------------------------------------------------------------- * It's **okay for Sharp Area Components to overlap slightly**. Overlaps will not cause any issues in detection or interaction. * Make sure each Sharp Area’s scale and axis orientation match the physical shape and intended interaction area of the weapon. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#example-machete-setup) Example: Machete Setup ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- This example shows a working Sharp Area Component configuration for both stabbing and slashing on a single weapon. 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#open-content-browser) Open Content Browser Open your **Content Browser**. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#show-engine-content) Show Engine Content In the top right, click **Settings** → enable **Show Engine Content**. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#find-the-engine-assets) Find the engine assets In the **Engine** directory, search for `RealityFirearm`. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#open-the-machete-blueprint) Open the Machete Blueprint Open the Blueprint called `**RealityInteractable_Machete**`. This Blueprint demonstrates how Sharp Area Components are positioned and configured for both **stabbing** and **slashing** on a single weapon. [PreviousMelee Weaponchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/overview) Last updated 12 days ago * [Adding a Sharp Area Component to a Blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#adding-a-sharp-area-component-to-a-blueprint) * [Add the component](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#add-the-component) * [Select the component](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#select-the-component) * [Position and align](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#position-and-align) * [Variable Reference](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#variable-reference) * [Stabbing](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#stabbing) * [Slashing](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#slashing) * [Positioning Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#positioning-notes) * [Example: Machete Setup](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#example-machete-setup) * [Open Content Browser](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#open-content-browser) * [Show Engine Content](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#show-engine-content) * [Find the engine assets](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#find-the-engine-assets) * [Open the Machete Blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/melee-weapon/sharp-area-component#open-the-machete-blueprint) sun-brightdesktopmoon sun-brightdesktopmoon --- # Create Magazine | Documentation | Beyond Sandbox This page contains the full workflow and reference for external magazine setup, magazine Blueprints/data, the guiding spline workflow, and the Instanced Round Mechanism (ISM) used to visually represent rounds inside magazines. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#weapon-side-magazine-insertion-and-guiding-spline) Weapon-side: Magazine Insertion & Guiding Spline ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Place the Magazine Insertion Collision * Add a **Magazine Insertion Collision** component at the magwell entrance on the firearm. This is the collision the magazine will overlap to start guiding/seating. * Make sure the firearm's static mesh doesn't have a collision at the magwell entrance that would block the magazine from entering. Create / align the Magazine Guiding Movement Spline 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#temporarily-add-a-helper-static-mesh-magazine) Temporarily add a helper static mesh magazine * Add a helper **Static Mesh** magazine to the scene. * Parent it to the **Magazine Guiding Movement Spline** and set its local position to **(0,0,0)** — this represents the fully seated pose. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#move-the-spline-to-align-seating) Move the spline to align seating * Move the **spline** (do not move the helper mesh) until the helper mesh appears perfectly seated in the magwell. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#define-the-guide-length) Define the guide length * With the helper mesh still parented to the spline, drag the helper mesh outwards along the insertion path until it first contacts the firearm’s **Magazine Insertion Collision**. * Record the offset from the seated pose and use that for the spline’s second point (this defines guide length). 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#clean-up) Clean up * Remove the helper mesh once you have the spline points set. circle-info * Always move the spline to align seating; the helper mesh should remain at (0,0,0) while aligning. * The spline’s second point (guide length) should represent the magazine’s first contact point with the magwell so the guiding movement looks natural. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#magazine-asset-creating-a-reality-magazine) Magazine asset: Creating a Reality Magazine ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#create-the-blueprint) Create the Blueprint * Create a new **Blueprint → Reality Magazine**. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#create-and-assign-data-asset) Create and assign data asset * Create a **Reality Magazine Data Asset** and assign it in the magazine BP. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#set-base-mesh) Set base mesh * Set the magazine’s **Base Mesh**. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#add-and-position-magazine-insertion-collision) Add and position Magazine Insertion Collision * Add and position a **Magazine Insertion Collision** on the magazine. * The firearm checks overlap between its own **Magazine Insertion Collision** and the magazine’s **Magazine Insertion Collision** to begin the guiding/seating process. * When overlap is detected, the magazine guiding logic takes over and moves the magazine along the guiding spline until it reaches the fully seated pose. Magazines are Reality Interactables * Magazines inherit from **Reality Interactable**, so they support the standard interactable and grip behaviors. Implement grips as needed for natural pickup and manipulation. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#ism-round-mechanism-system-instanced-rounds) ISM Round Mechanism System (Instanced Rounds) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The **Instanced Round Mechanism (ISM)** visually represents and manages rounds inside a magazine using instancing for performance. InstancedRoundGenerator * Each **Reality Magazine** can contain an `InstancedRoundGenerator` component (derived from Unreal’s `InstancedStaticMesh`). * This component: * Places repeated round meshes inside the magazine, * Reduces draw calls by using instancing, * Lets you control spacing/alignment parameters so rounds stack correctly and visually match the magazine interior. Example * See `RealityMagazine_AK47_Example` for a working magazine setup using the ISM Round Mechanism. [PreviousCreate Firearmchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm) [NextCreate Roundchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-round) * [Weapon-side: Magazine Insertion & Guiding Spline](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#weapon-side-magazine-insertion-and-guiding-spline) * [Temporarily add a helper static mesh magazine](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#temporarily-add-a-helper-static-mesh-magazine) * [Move the spline to align seating](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#move-the-spline-to-align-seating) * [Define the guide length](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#define-the-guide-length) * [Clean up](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#clean-up) * [Magazine asset: Creating a Reality Magazine](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#magazine-asset-creating-a-reality-magazine) * [Create the Blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#create-the-blueprint) * [Create and assign data asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#create-and-assign-data-asset) * [Set base mesh](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#set-base-mesh) * [Add and position Magazine Insertion Collision](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#add-and-position-magazine-insertion-collision) * [ISM Round Mechanism System (Instanced Rounds)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine#ism-round-mechanism-system-instanced-rounds) sun-brightdesktopmoon sun-brightdesktopmoon --- # Session Widget | Documentation | Beyond Sandbox [PreviousClasschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/class) [NextGameMode Settingschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings) sun-brightdesktopmoon sun-brightdesktopmoon --- # Class | Documentation | Beyond Sandbox Coming Soon. [PreviousSpawn APIchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api) [NextSession Widgetchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/session-widget) sun-brightdesktopmoon sun-brightdesktopmoon --- # Base RF Function | Documentation | Beyond Sandbox [PreviousRPF RealityPlayerFunctionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction) [NextBase RPF Functionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function) sun-brightdesktopmoon sun-brightdesktopmoon --- # Create New Reality Function | Documentation | Beyond Sandbox WIP [PreviousBase RPF Functionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function) [NextTeams Systemchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system) Last updated 22 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Create Gamemode | Documentation | Beyond Sandbox > [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#important) > > **Important** > > > --------------------------------------------------------------------------------------------------------------------------- > > Spawn and respawn actions are already configured by default in the `GameData` when it is created. > > If you want to implement your own custom spawn or respawn logic entirely in code, make sure to remove the corresponding events from the `GameData`. Otherwise, both systems may run at the same time. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fvcccz7jyvTYOODqllUvi%252Fimage.png%3Falt%3Dmedia%26token%3Dda805261-28d3-4bed-89dc-676298d9c72a&width=300&dpr=3&quality=100&sign=1b2ec55b&sv=2) This guide covers how to create a new **Game Mode Mod** in the Reality Modkit and configure its data assets, phases, and optional features. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#creating-the-game-mode-mod) Creating the Game Mode Mod --------------------------------------------------------------------------------------------------------------------------------------------------------- 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#create-the-mod) Create the mod * Open the **Reality** dropdown menu in the Unreal Editor. * Click **New Mod**. * Set the **Type** to **GameMode**. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#assign-the-gamemode-asset) Assign the GameMode asset * From the content browser open the GameMode and in the class defaults, assign a **Data Asset** for your game mode. * The data asset class must be of type `**RealityGameData**`. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#setting-up-the-data-asset-realitygamedata) Setting Up the Data Asset (RealityGameData) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The **RealityGameData** asset defines the rules, structure, and flow of your game mode. It includes options for gameplay logic, teams, phases, and UI behavior. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#data-asset-fields) Data Asset Fields Field Description **Game Widget Class** Optional. A custom UI widget that appears on the **Reality Control Device (Tablet)** alongside the built in menu. **Phases** A list of `**RealityGamePhase**` assets defining the structure of the match (e.g., warm-up, rounds, end game). Phases execute **in order** as listed. The order matters for transitions. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#game-phases) Game Phases --------------------------------------------------------------------------------------------------------------------------- Phases define the **sequence of gameplay flow**, such as Warm-Up, Rounds, or End Game. Each phase is represented by a `**RealityGamePhase**` asset. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#premade-phases) Premade Phases Phase Name Description **Game\_WarmUp** Currently doesn't have any predefined logic. **Game\_PlayTDM** Currently doesn't have any predefined logic. **Game\_End** Currently doesn't have any predefined logic. **Round\_TDM\_Buy** Currently doesn't have any predefined logic. **Round\_TDM\_Play** Currently doesn't have any predefined logic. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#phase-structure) Phase Structure ----------------------------------------------------------------------------------------------------------------------------------- Each **RealityGamePhase** supports logic, conditions, and optional repetition. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#default-variables) Default Variables Variable Description **Name** Identifier used for reference in other Blueprints. **Duration** How long the phase lasts (in seconds). Can be infinite if conditions handle the transition. **Iterations** How many times this phase repeats before continuing to the next one. **Tags** Metadata for identifying or filtering phases. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#functions) Functions Each phase exposes two overridable events: * **OnBegin()** – Called when the phase starts. * **OnEnd()** – Called when the phase ends. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#actions-and-conditions) Actions & Conditions * **Actions** are objects of class `RealityFunction` (child of `UObject`) executed when a phase **begins** or **ends**. * **Conditions** are objects of class `RealityCondition` (child of `UObject`) that control **when the phase transitions**. * Phases can also have **time limits** or multiple **subphases**. * You can configure: * A list of **OnBegin Actions** * A list of **OnEnd Actions** * A list of **Transition Conditions** * * * [PreviousGameMode APIchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api) [NextGame Datachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data) Last updated 8 days ago * [Creating the Game Mode Mod](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#creating-the-game-mode-mod) * [Create the mod](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#create-the-mod) * [Assign the GameMode asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#assign-the-gamemode-asset) * [Setting Up the Data Asset (RealityGameData)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#setting-up-the-data-asset-realitygamedata) * [Data Asset Fields](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#data-asset-fields) * [Game Phases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#game-phases) * [Premade Phases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#premade-phases) * [Phase Structure](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#phase-structure) * [Default Variables](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#default-variables) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#functions) * [Actions & Conditions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode#actions-and-conditions) sun-brightdesktopmoon sun-brightdesktopmoon --- # Level Tools | Documentation | Beyond Sandbox [PreviousMap Variantchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-variant) [NextOptimisationchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation) sun-brightdesktopmoon sun-brightdesktopmoon --- # Create Level | Documentation | Beyond Sandbox Coming Soon. [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/overview) [NextRequiredchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/required) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameFeatureTeamObject | Documentation | Beyond Sandbox [PreviousGameFeatureGlobalObjectchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureglobalobject) [NextNative Game Featurechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature) sun-brightdesktopmoon sun-brightdesktopmoon --- # UserSkin | Documentation | Beyond Sandbox [PreviousHoslterchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/hoslter) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/overview) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameFeatureClientObject | Documentation | Beyond Sandbox [PreviousGameFeatureDatachevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata) [NextGameFeatureGlobalObjectchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureglobalobject) sun-brightdesktopmoon sun-brightdesktopmoon --- # Required | Documentation | Beyond Sandbox Actors are required for the game to function correctly; they are already included in the map by default when a new mod level is created. Here is the list of essential requirements: * **NavMeshBoundsVolume:** Required for AI to navigate your level. Adjust the volume size according to your level. You can check this with the navigation debug tool (press P). * **LightmassImportanceVolume:** This volume maximizes lighting baking calculations. * **RealityDefaultPlayerStart:** These are the default spawn points if other spawn points are not present in your level. * **RealityPlayerStart:** These are the spawn points for your level. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252F211mSXcv3x5pf0oGETSO%252Fimage.png%3Falt%3Dmedia%26token%3Dffc929e6-d750-41a7-8c0c-c483ab385555&width=768&dpr=3&quality=100&sign=84e745de&sv=2) [PreviousCreate Levelchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/create-level) [NextGameMode Supportchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/gamemode-support) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Game Feature System | Documentation | Beyond Sandbox [GameFeatureDatachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata) [GameFeatureClientObjectchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureclientobject) [GameFeatureGlobalObjectchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureglobalobject) [GameFeatureTeamObjectchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureteamobject) [PreviousGameMode Settingschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings) [NextGameFeatureDatachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata) sun-brightdesktopmoon sun-brightdesktopmoon --- # Map Variant | Documentation | Beyond Sandbox You can add sublevels to your levels, which can be added optionally when the game starts. circle-info Note that currently it is recommended not to display map variants during light baking, otherwise shadows will remain even on unloaded levels. To add MapVariants, you must format the name of your sublevel with the name of your base level, as shown below. * If the name of your base level is "**MyMap**", your sublevel must be formatted like this: "**MyMap\_VariantA**". ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FElH10qH2gsPT3vQaPiH1%252Fimage.png%3Falt%3Dmedia%26token%3D5bb02abd-eaaf-4232-9b69-d78075733480&width=768&dpr=3&quality=100&sign=bbd83b89&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FSsXjXSuM5YFKPyrw1waC%252Fimage.png%3Falt%3Dmedia%26token%3Def172da7-f6c9-4e70-9eef-687266a13ae4&width=768&dpr=3&quality=100&sign=a74175eb&sv=2) The sublevel must be configured as a Blueprint Loading method and must not be converted to a light scenario. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fve6wqVKW7girl79Em0e3%252Fimage.png%3Falt%3Dmedia%26token%3D29c49f87-6e45-48c7-9b47-24b76f6d8a9f&width=768&dpr=3&quality=100&sign=44d3f9c0&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FXlhsdyofPCH6BBn017Q2%252Fimage.png%3Falt%3Dmedia%26token%3D4a87b459-aa1b-4f8d-9c31-755699d86260&width=768&dpr=3&quality=100&sign=1da420de&sv=2) Once set up and added to your level, you can add options using the SDK's EditMod. Levels are not added automatically. If the setup is correct, you should see the name of your variant level in the list of suggestions. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FTg23qAw7CnldbjlRdj0W%252Fimage.png%3Falt%3Dmedia%26token%3D1c588c6c-ed92-4261-9220-acd95149d45e&width=768&dpr=3&quality=100&sign=cd412346&sv=2) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-variant#example-in-game) Example In-Game ---------------------------------------------------------------------------------------------------------------------------- ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FmxrIO7vNPFmAvSzc2zZK%252Fimage.png%3Falt%3Dmedia%26token%3Dc0d08e4a-aa40-4f2b-ae00-728155f9589a&width=768&dpr=3&quality=100&sign=140468bb&sv=2) [PreviousLight Scenariochevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/light-scenario) [NextLevel Toolschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/level-tools) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Native Game Feature | Documentation | Beyond Sandbox [Sandboxchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/sandbox) [Loadoutchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout) [Hoslterchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/hoslter) [UserSkinchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/userskin) [PreviousGameFeatureTeamObjectchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureteamobject) [NextSandboxchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/sandbox) sun-brightdesktopmoon sun-brightdesktopmoon --- # Hoslter | Documentation | Beyond Sandbox [PreviousLoadoutchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout) [NextUserSkinchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/userskin) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameFeatureGlobalObject | Documentation | Beyond Sandbox [PreviousGameFeatureClientObjectchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureclientobject) [NextGameFeatureTeamObjectchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureteamobject) sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox Coming soon. [PreviousUserSkinchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/userskin) [NextCreate Levelchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/create-level) sun-brightdesktopmoon sun-brightdesktopmoon --- # Sandbox | Documentation | Beyond Sandbox [PreviousNative Game Featurechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature) [NextLoadoutchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout) sun-brightdesktopmoon sun-brightdesktopmoon --- # Light Scenario | Documentation | Beyond Sandbox Levels can support multiple lighting scenarios, currently only available at game launch. The SDK automatically detects your lighting scenarios when they are correctly configured. To add lighting scenarios, you must create a SubLevel and add it to your main level. It must contain the name of your level (EntryPoint), as shown below. * For example, if your level (EntryPoint) is named "**MyMap**", your sublevel must be formatted like this: "**MyMap\_MyLightScenarioName**". ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FdoaFlsuwJnDBvdJtTwAh%252Fimage.png%3Falt%3Dmedia%26token%3D2081ce2c-2485-413d-9ea3-efa7aebbac32&width=768&dpr=3&quality=100&sign=cc0f1f7&sv=2) Then, your sublevel must be converted into a lighting scenario and set to the blueprint loading method. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FQOAuT90eqVFPZyezCsnI%252Fimage.png%3Falt%3Dmedia%26token%3Df76fb087-4272-403e-b5d8-0c2ba737d7e7&width=768&dpr=3&quality=100&sign=8ed4bb2d&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fld4hjNDPbcrO1LMRQ4fE%252Fimage.png%3Falt%3Dmedia%26token%3Dcc807856-202a-4f22-bdc0-cd9eb7b76056&width=768&dpr=3&quality=100&sign=f05513a7&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FjHmibv7UUu0lUecltgXY%252Fimage.png%3Falt%3Dmedia%26token%3Df54740cc-a6d2-417b-875c-5f0cfbe52951&width=768&dpr=3&quality=100&sign=2f51aca7&sv=2) Once configured, go to EditMod in the SDK and check the configuration. If your sublevels have been set up correctly, they should be pre-configured in the menu. You simply need to save the changes. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FYdoyxnAkbv966Hg5nfxn%252Fimage.png%3Falt%3Dmedia%26token%3D1950a8e0-e10d-4dd3-b597-80af6105504f&width=768&dpr=3&quality=100&sign=e52470a8&sv=2) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/light-scenario#example-in-game) Example in-game ------------------------------------------------------------------------------------------------------------------------------- ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FCwr5GLExDqKdWbb7ddGy%252Fimage.png%3Falt%3Dmedia%26token%3D26db8108-342e-459a-951f-30f309e06c78&width=768&dpr=3&quality=100&sign=8e1fcaa1&sv=2) [PreviousGameMode Supportchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/gamemode-support) [NextMap Variantchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-variant) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Create Firearm | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#create-firearms) Create Firearms ---------------------------------------------------------------------------------------------------------------------------------------------- A **Reality Firearm** is a specialized **child class** of [Reality Interactable](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/create-interactable) designed for VR weapons. It includes built-in grabbing, aiming, firing, and physics. The `RealityFirearm` class lets you build ~90% of weapons out of the box and is modular enough for the remaining 10%. Video Guide: [https://youtu.be/quGQp6CJZ1sarrow-up-right](https://youtu.be/quGQp6CJZ1s) * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#creating-a-reality-firearm-actor-from-scratch) Creating a Reality Firearm Actor (from scratch) 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#create-the-blueprint) Create the Blueprint * Right-click in the **Content Browser** → **Create Blueprint Class**. * Search for **RealityFirearm** and choose it as the **parent class**. 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#customize-the-blueprint) Customize the Blueprint * Open the Blueprint and customize components, visuals, and behavior. 3 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#assign-data) Assign Data * Assign the **Data** variable to a **RealityFirearmData** asset in the details panel. * You will get errors without this. 4 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#configure-behavior) Configure Behavior You’ll configure behavior via three systems in the Data Asset: **Feeding**, **Chambering**, and **Firing**. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#faster-start-duplicate-an-example-recommended) Faster Start: Duplicate an Example (recommended) 1 * Enable **Show Engine Content** (Content Browser → **Settings**). 2 * Browse the Reality Content plugin library (e.g., `Library/Interactable/Firearm`). 3 * Duplicate an example firearm (e.g., **AK-47**) and its **Data Asset**. 4 * Rename (e.g., `BP_Firearm_M16`, `DA_Firearm_M16`). 5 * Move both into your mod’s **folder** (Plugins → your mod). 6 * In the **class defaults** of the new firearm, search for **Data** and assign your new data asset there. circle-exclamation Assets **outside** your mod’s `ModName Content` folder will **not be packaged**. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#grip-auto-registration) Grip Auto-Registration `RealityFirearm` registers the following grips: * **Charging Handle Grip** → **Animated Grip** * **Main Grip** → **Animated Grip** * **Main Mesh** → **Procedural Grip** circle-info To disable an inherited animated grip, set its collision volume bounds to **zero** (e.g., the charging handle on the Sawed-Off Double Barrel). * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#viewing-example-firearms) Viewing Example Firearms Find example Blueprints such as: * `RealityFirearm_AK47_Example` * `RealityFirearmDoubleBarrelSawedOff_Example` * `RealityFirearm_Revolver_Magnum_Example` These are excellent references for setup and modularity. They also show broader variations—e.g., the **Revolver** class extends the firearm system with a **physics-based spinning cylinder**. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#assemble-your-firearm-component-pass) Assemble Your Firearm (component pass) After duplicating an example, swap meshes and place helpers: * **Base Mesh** → your weapon body. * **Main Grip & Collision** → align to the pistol grip. * **Charging Handle Mesh** → set mesh, position as needed. * **Charging Handle Grip & Collision** → place grip and collision where hands should grab. * **Bolt Mesh** → set and position mesh (supports **decoupled** bolt). * **Chamber Round Mesh** → at bolt top (shows chambered round). * **Distance Grip Indicator** → typical at the pistol grip. * **Firing Location** → set position at muzzle. * **Firing Mode Selector Mesh** → set mesh and position. * **Round Ejection Transform** → position at ejection port. * **Chamber Smoke Transform** → position at chamber/ejection area. * **Trigger Mesh** → set and align. * **Recoil Target** → where recoil force gets applied to the weapon, usually placed slightly above the weapon (tune by testing). * **Action Release Button (Bolt Catch)** → closes the bolt when the collision is hit. * **Mesh** position at desired location * **Button Collision** set size and location. * **Round Insertion Collision** → For applicable weapons, the location where rounds are manually inserted into the chamber or internal magazine Remove irrelevant example components (e.g., AK-specific bits) to keep things clean. circle-info When aligning **Grips**, set the root location correctly for both the left and right hands. Ensure proper positioning by setting the correct blend space asset. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#magazine-and-guiding-spline-summary) Magazine & Guiding Spline (summary) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- For weapons with external magazines, place a **Magazine Insertion Collision** at the magwell and add a **Magazine Guiding Movement Spline** to define the insertion path. The firearm will use overlap checks between its insertion collision and the magazine’s insertion collision to begin guiding and seating the magazine. For full instructions (helper mesh workflow, magazine BP/data setup, and the Instanced Round Mechanism), see the dedicated Magazine Guide: [**Magazine Guide — Magazine & Guiding Spline, Magazines, and ISM Rounds**](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine) . * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#link-the-firearm-to-its-data-asset) Link the Firearm to Its Data Asset In the firearm BP → **Class Defaults → Type Data**, assign your firearm **Data Asset** (e.g., `DA_Firearm_M16`). All tuning happens here, grouped into **Feeding**, **Chambering**, **Firing**. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#firearm-input-data-asset) Firearm Input (Data Asset) * **Input mapping** * **Action 1 (Trigger)** → Typically set to Fire * **Action 2 (A/X depending on controller)** → Typically set to Release Magazine * **Action 3 (B/Circle depending on controller)** → Custom (e.g., **Change Firing Mode**, or **Action Release** on some pistols) * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#firing-system-data-asset) Firing System (Data Asset) This system handles trigger behavior, fire rate, recoil, and visual/audio effects. * **Fire Rate** (seconds between shots) * **Damage** * **Trigger Max Rotation** (measure on your trigger mesh; enter positive degrees) Audio: * **Firing Sound** * Optional: * **Firing Distance Sound** * **Firing Loop Sound** (for automatic weapons; falls back to **Firing Sound**) * **Firing Loop Distance Sound** * **Firing Stop Tail Sound** with **Start Delay** * **Firing Dry Sound** (no rounds) * **Firing Dry Cocked Sound** * **Firing Safe Sound** VFX: * **Firing Muzzle Flash** (default) — can set overrides for burst/automatic * **Chamber Smoke on Fire** (spawns at **Chamber Smoke Transform**) Recoil: * **Force Vertical** * **Force Vertical Two Hands Multiplier** * **Recoil Force Back** * **Recoil Force Back Two Hands Multiplier** Firing Modes: * Add modes (e.g., **Automatic**, **Semi-Automatic**, **Safe**). * **Array order sets default mode** (first = active on start). * **Burst Fire Shot Amount** (if using Burst). * Selector: * **Selector Animations** (thumb animation montages) * **Logic Delays** (sync to thumb contact) * **Selector Rotations** → set per mode to match your selector component. * **SFX** * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#chambering-system-data-asset) Chambering System (Data Asset) This system manages the bolt, charging handle, and round ejection behavior. > Disabling features removes related components at runtime to save performance Charging Handle: * **Enabled** * **Max Pull Distance** * **Distance to Chamber New Round** * **Can Release Charging Handle by Partial Pull Motion** (primarily for pistols) * When true, allows the player to release the slide/charging-handle by performing a partial rearward pull and releasing (a short “nudge” or slingshot) to let the bolt/slide snap forward * When false, the player must either fully rack the charging handle or press the slide release/bolt catch. * **Slides Back on Fire** * **Hold Charging Handle Retracted on Last Round Fired** Decoupled Bolt: * **Bolt Slide-Back Distance on Fire** → set rearward travel when firing. Turn Bolt (bolt-action primarily for snipers): * **Turn Bolt Max Angle** before pull. Action Release Button (Bolt Catch): * **Has Action Release Button** * **Can Hit Action Release Button** * Optional **Delta Location/Rotation after Lock-Back** * Optional **Thumb Animation** (if the button is reachable from the pistol grip hand) * **SFX** * **Press Logic Delay** Round Ejection: * **Eject From Chamber on Firing** → enabled/disabled (uses the **Round Ejection Transform** component) * **Ejection/collision SFX** * **VFX** (Niagara particle system representing a full/consumed round) * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#feeding-system-data-asset) Feeding System (Data Asset) This system controls how ammunition enters the weapon (magazines, internal stores, manual loading). * **Has External Magazine** → enable for detachable mags. * **Compatible Magazine Classes** → add your magazine class (children of a base class are supported). * **Force Hand Release on Magazine Clipping** → optional auto-release on seat. * **SFX** → optional clip/release sounds. Internal Magazine (primarily for shotguns/snipers): * set enabled/disabled * set magazine capacity Manual Round Insertion: * set enabled/disabled * set **Compatible Round Class** * set SFX * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#gameplay-data-asset) Gameplay (Data Asset) * **Abilities** → ensure the firearm has **Firearm Fire Ability** (required; GAS/multiplayer). * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#scaling-interactables) Scaling Interactables circle-exclamation Do **not** scale the **Root Component**. Scaling the root causes physics issues. Use UE tools instead: * Re-model/re-import at the correct scale, or * Adjust **Import Scale** in the **Static Mesh Editor**. [PreviousFirearmchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm) [NextCreate Magazinechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-magazine) Last updated 1 month ago * [Create Firearms](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#create-firearms) * [Creating a Reality Firearm Actor (from scratch)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#creating-a-reality-firearm-actor-from-scratch) * [Create the Blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#create-the-blueprint) * [Customize the Blueprint](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#customize-the-blueprint) * [Assign Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#assign-data) * [Configure Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#configure-behavior) * [Faster Start: Duplicate an Example (recommended)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#faster-start-duplicate-an-example-recommended) * [Grip Auto-Registration](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#grip-auto-registration) * [Viewing Example Firearms](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#viewing-example-firearms) * [Assemble Your Firearm (component pass)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#assemble-your-firearm-component-pass) * [Magazine & Guiding Spline (summary)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#magazine-and-guiding-spline-summary) * [Link the Firearm to Its Data Asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#link-the-firearm-to-its-data-asset) * [Firearm Input (Data Asset)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#firearm-input-data-asset) * [Firing System (Data Asset)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#firing-system-data-asset) * [Chambering System (Data Asset)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#chambering-system-data-asset) * [Feeding System (Data Asset)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#feeding-system-data-asset) * [Gameplay (Data Asset)](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#gameplay-data-asset) * [Scaling Interactables](https://beyond-sandbox.gitbook.io/realitysdk/documentation/interactable/firearm/create-firearm#scaling-interactables) sun-brightdesktopmoon sun-brightdesktopmoon --- # Team Definition | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#reality-team-definition) Reality Team Definition ---------------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Team Definition` is a data asset used to configure how a team should look and behave. It defines: * Team display name * Team color * Team logo * Maximum number of players * Available character data * Available character skins > This asset is used as the configuration layer for a team, while the actual in-game team is represented by a `Reality Team` instance. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#overview) Overview ---------------------------------------------------------------------------------------------------------------------------------- Feature Description Team Identity Defines the display name, color, and logo of a team Player Limit Defines the maximum number of players allowed in the team Character Setup Defines which character data can be used by the team Character Skins Defines which skins are available for the team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#team-identity) Team Identity -------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#properties) Properties Name Type Description Team Display Name String Display name of the team Team Color Color Main color associated with the team Team Logo Texture Reference Logo used to visually represent the team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#player-limit) Player Limit ------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#properties-1) Properties Name Type Description Max Player In Team Integer Maximum number of players allowed in the team * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#behavior) Behavior Value Result `-1` No player limit `0 or more` Maximum number of players allowed * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#character-configuration) Character Configuration ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#properties-2) Properties Name Type Description Characters Data Array List of character data available for this team Character Skin Array List of character skins available for this team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#typical-use-cases) Typical Use Cases ---------------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Setup Create a red vs blue game Set different Team Display Name, Team Color, and Team Logo for each team Limit the size of a team Set Max Player In Team Restrict playable characters per team Configure Characters Data Give each team unique visual identity Configure Character Skin and Team Logo * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#notes) Notes ---------------------------------------------------------------------------------------------------------------------------- Topic Note Configuration Asset This asset defines team setup, not the runtime team instance Runtime Usage Active teams in-game are represented by `Reality Team` objects Team Index Team Definitions are usually linked to a Team Index through Game Data or GameMode setup Player Limit Team limits can later be overridden at runtime by the team instance * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#related-pages) Related Pages -------------------------------------------------------------------------------------------------------------------------------------------- Page Description Reality Team Runtime in-game team instance Reality GameMode Creates and manages team instances Reality Game Data Stores team definition overrides Reality Player Character Data Defines playable character setup Reality Character Skin Data Defines available skins for characters [PreviousTeams Systemchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system) [NextTeam Instancechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance) Last updated 22 days ago * [Reality Team Definition](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#reality-team-definition) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#overview) * [Team Identity](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#team-identity) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#properties) * [Player Limit](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#player-limit) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#properties-1) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#behavior) * [Character Configuration](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#character-configuration) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#properties-2) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#typical-use-cases) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameMode Support | Documentation | Beyond Sandbox [PreviousRequiredchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/required) [NextLight Scenariochevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/light-scenario) sun-brightdesktopmoon sun-brightdesktopmoon --- # Spawn API | Documentation | Beyond Sandbox Blueprint nodes used to query, filter, and evaluate spawn points. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#spawn-resolution) Spawn Resolution Node Description **Find Spawn Transform For Player** Finds a valid spawn transform for a player using the current spawn rules. **Find Any Start Point** Finds any valid start point from the available spawn lists. **Find Nearest Any Player** Finds a spawn point nearest to any player. **Farthest Any Player** Finds a spawn point farthest from all players. **Team Start Point** Finds a spawn point using team-based spawn logic. **Near Player Team** Finds a spawn point close to allied players. **Farther Player Team** Finds a spawn point farther from allied players. **Find Spawn Point From Player** Builds a spawn transform from player locations only. **Get Random Point In NavMesh For Player** Returns a random valid point on the navmesh. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#start-point-queries) Start Point Queries Node Description **Get Reality Default Player Start** Returns all default player starts in the current world. **Get Reality Player Start** Returns all custom player starts in the current world. **Hard Get Reality Player Default Start** Performs a direct world lookup for default player starts. **Hard Get Reality Player Start** Performs a direct world lookup for player starts. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#id-filters) ID Filters Node Description **Get Reality Player Start With ID** Returns player starts matching a specific ID. **Get Reality Player Start With IDs** Returns player starts matching any ID in a list. **Filter Reality Player Start With IDs** Filters an existing player start list by ID. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#tag-filters) Tag Filters Node Description **Get Reality Player Start With Actor Tag** Returns player starts with a specific actor tag. **Get Reality Player Start With Actor Tags** Returns player starts matching any actor tag in a list. **Filter Reality Player Start With Actor Tags** Filters an existing player start list by actor tags. **Get Reality Player Start With Actor Tags And IDs** Returns player starts matching both tags and IDs. **Filter Reality Player Start With Actor Tags And IDs** Filters an existing player start list by both tags and IDs. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#player-queries) Player Queries Node Description **Get Reality Player Characters** Returns all active reality player characters. **Split Player By Team** Splits a player list into team members and non-team members. **Get Reality Transform From Player** Converts a player list into a list of transforms. **Get Reality Player Controllers** Returns all reality player controllers in the current world. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#distance-and-team-evaluation) Distance and Team Evaluation Node Description **Filter Player Start By Team** Filters player starts using one or more allowed teams. **Find Reality Start Nearest Player** Returns the custom player start nearest to players. **Find Reality Default Start Nearest Player** Returns the default player start nearest to players. **Sort Reality Start Nearest Player** Sorts custom player starts by distance to players. **Sort Reality Default Start Nearest Player** Sorts default player starts by distance to players. **Find Spawn Point Nearest Player** Finds a spawn transform nearest to players. **Find Reality Start Farthest From Player** Returns the custom player start farthest from players. **Find Reality Default Start Farthest From Player** Returns the default player start farthest from players. **Find Reality Start Best For Team** Finds the best custom player start for a team. **Find Reality Start Hidden From Player** Returns player starts hidden from the specified players. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#availability-and-occupancy) Availability and Occupancy Node Description **Get Available Reality Starts** Returns custom player starts currently available for spawning. **Get Available Reality Default Starts** Returns default player starts currently available for spawning. **Mark Reality Start Occupied** Marks a default player start as occupied. **Reset Mark Reality Start Occupied** Clears occupied state on default player starts. **Get Overlap Start Point** Checks whether a default player start is currently overlapped. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#random-utilities) Random Utilities Node Description **Get Random Reality Start** Returns a random custom player start. **Get Random Reality Default Start** Returns a random default player start. **Shuffle Player Start** Randomizes the order of custom player starts. **Shuffle Default Player Start** Randomizes the order of default player starts. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#spawn-adjustment) Spawn Adjustment Node Description **Evaluate Derived Spawn Point From Transform** Adjusts a base transform to find a better valid spawn transform. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#recommended-flow) Recommended Flow Use **Find Spawn Transform For Player** first for standard spawn logic. For custom setups, combine start point queries, filters, availability checks, and transform adjustment nodes. [PreviousTeam Instancechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance) [NextClasschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/class) Last updated 8 days ago * [Spawn Resolution](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#spawn-resolution) * [Start Point Queries](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#start-point-queries) * [ID Filters](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#id-filters) * [Tag Filters](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#tag-filters) * [Player Queries](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#player-queries) * [Distance and Team Evaluation](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#distance-and-team-evaluation) * [Availability and Occupancy](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#availability-and-occupancy) * [Random Utilities](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#random-utilities) * [Spawn Adjustment](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#spawn-adjustment) * [Recommended Flow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api#recommended-flow) sun-brightdesktopmoon sun-brightdesktopmoon --- # Game Data | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#reality-game-data) Reality Game Data --------------------------------------------------------------------------------------------------------------------------------- `Reality Game Data` is the central configuration asset for your game mode. It defines: * Game settings * UI widgets * Teams and team definitions * Game phases * Gameplay events * Features and attributes * Preloaded assets > This asset is required by the GameMode and drives most of the game configuration. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#overview) Overview --------------------------------------------------------------------------------------------------------------- Feature Description Game Settings Defines the settings used by the GameMode UI Defines widgets used in the game Teams Defines team classes and overrides Phases Defines the game phase flow Gameplay Events Defines execution logic for events Features Default gameplay features enabled Requirements Conditions required for the game Loading Assets preloaded at game start Attributes Attribute configuration for gameplay systems * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#core-settings) Core Settings ------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties) Properties Name Type Description Game Settings Data Object GameMode settings preset (must match GameMode configuration) Game Widget Class Class UI widget used in the game session (tablet/menu) Wrist Widget Class Class UI widget attached to the player wrist * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#requirements-system) Requirements System ------------------------------------------------------------------------------------------------------------------------------------- Requirements define conditions that must be satisfied for the game to run. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-1) Properties Name Type Description Requirement Groups Array List of requirement groups * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#behavior) Behavior Rule Description Between Groups AND logic (all groups must pass) Inside Group Can be AND or OR depending on group mode OR Mode First valid requirement is used (priority order) * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#teams-configuration) Teams Configuration ------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-2) Properties Name Type Description Team Class Class Team instance class used during gameplay Team Definitions Override Map Overrides default team definitions per team index * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#phases) Phases ----------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-3) Properties Name Type Description Phases Array List of game phases executed during gameplay * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#functions) Functions Name Type Description Outputs Has Phases Pure Returns true if phases are configured Boolean * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#features) Features --------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-4) Properties Name Type Description Default Game Feature Array Default features enabled at game start (cannot be removed at runtime) * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#gameplay-event-system) Gameplay Event System ----------------------------------------------------------------------------------------------------------------------------------------- This system allows defining logic for gameplay events without code. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#player-events) Player Events Name Type Description Player Event Container Defines execution logic for player-related events (join, spawn, death, etc.) * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#gamemode-events) GameMode Events Name Type Description GameMode Event Container Defines execution logic for GameMode events (team creation, score updates, etc.) * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#custom-events) Custom Events Name Type Description Custom Event Container Defines execution logic for custom user-defined events * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#loading) Loading ------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-5) Properties Name Type Description Pre Load Assets Array Assets loaded automatically when the GameMode starts * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#attributes) Attributes ------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-6) Properties Name Type Description Attribute Config Struct Defines which attribute sets are enabled * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#map-requirements) Map Requirements ------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#functions-1) Functions Name Type Description Inputs Outputs Has Map Requirement Pure Checks if a requirement exists Requirement Class Boolean Get Map Requirement Pure Returns a requirement instance Requirement Class Requirement * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#debug) Debug --------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#functions-2) Functions Name Type Description Simulate Callable Runs a simulation for debugging (editor only) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-7) Properties Name Type Description Debug Boolean Enables debug behavior * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#usage-flow) Usage Flow ------------------------------------------------------------------------------------------------------------------- Step Description 1 Create a Game Data asset 2 Configure Game Settings 3 Define Teams and Team Definitions 4 Add Phases 5 Configure Gameplay Events 6 Assign UI widgets 7 Add preload assets if needed 8 Assign this asset to your GameMode * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#typical-use-cases) Typical Use Cases --------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Setup Create a team-based game Configure Team Class + Team Definitions Create phase-based gameplay Define Phases array Add UI to players Set Game Widget + Wrist Widget Handle gameplay logic without Blueprint Use Gameplay Event containers Load assets before game starts Add assets to Pre Load Assets Enable attributes (health, stamina, etc.) Configure Attribute Config * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#notes) Notes --------------------------------------------------------------------------------------------------------- Topic Note Core Asset This is one of the most important assets in your game GameMode Dependency Must match the GameMode settings class Team System Defines how teams are created and configured Event System Allows logic without modifying GameMode Modular Design Works with features, phases, and requirements * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#related-pages) Related Pages ------------------------------------------------------------------------------------------------------------------------- Page Description Reality GameMode Uses this asset to configure gameplay Reality GameMode Base Core gameplay systems Reality Team Runtime team instances Reality Game Phase Phase-based gameplay system Reality Game Feature Modular gameplay features [PreviousCreate Gamemodechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode) [NextGame Phasechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase) Last updated 22 days ago * [Reality Game Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#reality-game-data) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#overview) * [Core Settings](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#core-settings) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties) * [Requirements System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#requirements-system) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-1) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#behavior) * [Teams Configuration](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#teams-configuration) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-2) * [Phases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#phases) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-3) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#functions) * [Features](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#features) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-4) * [Gameplay Event System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#gameplay-event-system) * [Player Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#player-events) * [GameMode Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#gamemode-events) * [Custom Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#custom-events) * [Loading](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#loading) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-5) * [Attributes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#attributes) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-6) * [Map Requirements](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#map-requirements) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#functions-1) * [Debug](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#debug) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#functions-2) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#properties-7) * [Usage Flow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#usage-flow) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#typical-use-cases) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # Teams System | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#reality-team-index) Reality Team Index -------------------------------------------------------------------------------------------------------------------------------------- `Reality Team Index` is the stable numeric identifier used to represent a team slot. Instead of relying on team asset references, many gameplay systems use this index to identify teams consistently. This makes it possible to: * map custom team definitions to a known slot, * keep spawn routing stable, * support team-based systems without depending on asset identity. > Use `Reality Team Index` whenever you need to identify a team in gameplay logic. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#overview) Overview ------------------------------------------------------------------------------------------------------------------ Feature Description Stable Team ID Each team slot has a fixed numeric identity Spawn Routing Spawn systems can use team slots safely Asset-Independent Team logic does not depend on a specific team asset reference Broad Usage Used by GameMode, Team instances, team definitions, and spawn systems * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#available-values) Available Values ---------------------------------------------------------------------------------------------------------------------------------- Name Description None No team assigned Team 1 Team slot 1 Team 2 Team slot 2 Team 3 Team slot 3 Team 4 Team slot 4 Team 5 Team slot 5 Team 6 Team slot 6 Team 7 Team slot 7 Team 8 Team slot 8 Team 9 Team slot 9 Team 10 Team slot 10 Team 11 Team slot 11 Team 12 Team slot 12 Team 13 Team slot 13 Team 14 Team slot 14 Team 15 Team slot 15 Team 16 Team slot 16 Team 17 Team slot 17 Team 18 Team slot 18 Team 19 Team slot 19 Team 20 Team slot 20 Team 21 Team slot 21 Team 22 Team slot 22 Team 23 Team slot 23 Team 24 Team slot 24 Team 25 Team slot 25 Team 26 Team slot 26 Team 27 Team slot 27 Team 28 Team slot 28 Team 29 Team slot 29 Team 30 Team slot 30 Team 31 Team slot 31 Team 32 Team slot 32 * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#usage) Usage ------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#typical-use-cases) Typical Use Cases Use Case Example Assign a player to a team Set a player to Team 1 or Team 2 Get a team instance Request the team object linked to a team index Configure team definitions Associate a Team Definition with Team 1, Team 2, etc. Route team spawn points Spawn players based on their team index Score handling Update score for a specific team slot * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#validation-rules) Validation Rules ---------------------------------------------------------------------------------------------------------------------------------- Rule Description None Represents no valid team Team 1 to Team 32 Valid gameplay team slots * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#best-practices) Best Practices ------------------------------------------------------------------------------------------------------------------------------ Recommendation Description Use Team Index for gameplay logic Prefer team indexes when routing gameplay systems Use None for unassigned state Useful for players or objects without a team Keep team definitions mapped to indexes Makes team setup predictable Use the same indexes across systems Helps keep spawns, teams, and scoring aligned * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#notes) Notes ------------------------------------------------------------------------------------------------------------ Topic Note Stable Identifier Team Index is intended to be consistent and predictable Not a Runtime Team Object This is an identifier, not the team instance itself Not a Team Definition This does not contain team data or visuals Main Purpose Used to connect team-related systems together * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#related-pages) Related Pages ---------------------------------------------------------------------------------------------------------------------------- Page Description Reality Team Runtime instance associated with a team index Reality Team Definition Configuration data mapped to a team index Reality GameMode Uses team indexes to create and manage teams Reality Game Data Can override team definitions per team index [PreviousCreate New Reality Functionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/create-new-reality-function) [NextTeam Definitionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition) Last updated 22 days ago * [Reality Team Index](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#reality-team-index) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#overview) * [Available Values](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#available-values) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#usage) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#typical-use-cases) * [Validation Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#validation-rules) * [Best Practices](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#best-practices) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # Optimisation | Documentation | Beyond Sandbox It is recommended to perform an optimization pass to properly support maps on Quest 2 and 3; some tools have been added to simplify your work. [PreviousLevel Toolschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/level-tools) [NextPrepare Assetchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/prepare-asset) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Loadout | Documentation | Beyond Sandbox ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#examples) Examples To find the existing Loadout examples, navigate to these areas: Deathmatch Example Loadouts Copy Engine > Plugins > Reality Content > Library > Gamemode > Example_DeathMatchClassic > Feature ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#creating-your-own-loadout) Creating your own Loadout 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#create-the-data-asset) Create the Data Asset Right click in your content browser, find miscellaneous, hover over it, then select the Data Asset Option. Search for and Select "Reality Loadout Data" (Not "Reality Feature Loadout Data" yet.) 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#configure-the-data-asset) Configure The Data Asset circle-info To Create new Reality Tags, create a Data Table asset, and for the struct, choose `RealityTagRegistrationRow` Then, add a new row at the top, select it. find and select the `Reality.Loadout` Category (Under Reality), then, in the `tags` array, click +, and name it Loadout\_(NameofTheTeam) Once you've opened the `RealityLoadoutData` Data Asset, go ahead and apply the Loadout Tag you just created in the Loadout Tag field, then click the + in the **Items** array just below the tag selection. Open the drop down, and in **Item Data**, select the Interactable you would like for that slot. To choose what slot the interactable goes in, select the slot tag selection, expand Reality, then Holster. That is the minimum you need to do for a Loadout Data Asset to be complete! Option Explanation Loadout Tag The Identifier for the loadout Items An array, each item being the interactable, the holster slot tag, and the cost for the item. Is customizable Whether or not a player can modify the items within the loadout Budget Cap The Maximum amount of money a player can spend on the Loadout Category Limits How many times that loadout can be used at a time on a team Max Concurrent Users How many players can use the loadout at a time Cooldown Duration How long until the loadout can be re-applied Cooldown Scope Whether the cooldown is for each player or each team. Unlock Requirements If the player has this tag, they will be able to use the loadout Locked by Default Whether the loadout starts locked * * * #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#reality-loadout-feature) Reality Loadout Feature 1 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#create-the-data-asset-1) Create the Data Asset Right click in your content browser, find miscellaneous, hover over it, then select the Data Asset Option. Search for and Select "RealityFeatureLoadoutData" (Not "RealityLoadoutData") 2 ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#configure-the-data-asset-1) Configure The Data Asset Make sure **Enabled Loadout** is ticked, then, in **Default Loadout**, Select the Loadout you just created. Option Use Case Enable Loadout Master toggle for the loadout Available Loadouts Loadouts that are available to all teams Default Loadout Default Loadout for all players Allow Custom Loadouts Whether or not players can create custom loadouts Apply on Spawn Auto applies the selected louadout on the players spawn Team Loadout Overrides Allows you to select a loadout for each team. Selection Policy Controls whether a player can initiate loadout selection, and the condition for initiating it Apply Immediately in Zone Applies the loadout instantly when player is in a loadout zone Global Locked Loadouts A tag array selector, allows you to lock loadouts, incase they're to be unlocked at a later round or something similar. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#adding-the-loadout-to-your-gamemode) Adding the loadout to your gamemode Open your GameData Data Asset, and find **Features**, Click the **+**, and enter the `RealityFeatureLoadoutData` Data Asset you created into it. [PreviousSandboxchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/sandbox) [NextHoslterchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/hoslter) Last updated 7 days ago * [Examples](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#examples) * [Creating your own Loadout](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#creating-your-own-loadout) * [Create the Data Asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#create-the-data-asset) * [Configure The Data Asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#configure-the-data-asset) * [Create the Data Asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#create-the-data-asset-1) * [Configure The Data Asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#configure-the-data-asset-1) * [Adding the loadout to your gamemode](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/native-game-feature/loadout#adding-the-loadout-to-your-gamemode) sun-brightdesktopmoon sun-brightdesktopmoon --- # RF Context | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-context) Reality Context ----------------------------------------------------------------------------------------------------------------------------------------------- `Reality Context` is the base object used to pass data during gameplay execution. It allows systems to: * share information between actions, * attach flags to execution, * provide context-aware behavior. > All execution contexts inherit from this base class. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#overview) Overview --------------------------------------------------------------------------------------------------------------------------------- Feature Description Data Container Holds execution-related data Flags System Supports simple flag-based logic Extendable Can be extended for specific systems Used Everywhere Used by functions, phases, teams, and gameplay events * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#flags-system) Flags System ----------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#functions) Functions Name Type Description Inputs Outputs Has Flag Callable Checks if a flag exists in the context Flag (Name) Boolean * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties) Properties Name Type Description Context Flag Array List of flags attached to this context * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage) Usage Example Description "IsRespawn" Mark execution as a respawn event "IsOvertime" Identify overtime logic "IsBonus" Trigger bonus-specific behavior * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-execution-context) Reality Execution Context ------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Execution Context` extends the base context with execution results. It is used when running gameplay logic. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties-1) Properties Name Type Description Execution Success Boolean Indicates whether execution succeeded Error Message String Contains error details if execution failed * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage-1) Usage Use Case Description Validate execution Mark success or failure Debug errors Store error messages Control flow Stop or modify execution based on result * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-game-phase-context) Reality Game Phase Context --------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Game Phase Context` is used during phase execution. It provides access to the current phase. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties-2) Properties Name Type Description Game Phase Object The phase associated with this execution * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage-2) Usage Use Case Description Access current phase Retrieve phase data during execution Phase-based logic Run different logic depending on phase Debug phase flow Inspect which phase triggered execution * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-team-context) Reality Team Context --------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Team Context` is used during team-related execution. It provides access to the current team instance. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties-3) Properties Name Type Description Team Instance Object The team associated with this execution * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage-3) Usage Use Case Description Team-specific logic Run logic only for a specific team Score handling Access team score or data Team-based events React to team changes or actions * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#context-hierarchy) Context Hierarchy --------------------------------------------------------------------------------------------------------------------------------------------------- Context Inherits From Purpose Reality Context — Base data container Reality Execution Context Reality Context Adds execution result handling Reality Game Phase Context Reality Execution Context Adds phase reference Reality Team Context Reality Execution Context Adds team reference * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#typical-use-cases) Typical Use Cases --------------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Context Generic execution Reality Execution Context Phase-based logic Reality Game Phase Context Team-based logic Reality Team Context Flag-based logic Reality Context * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#best-practices) Best Practices --------------------------------------------------------------------------------------------------------------------------------------------- Recommendation Description Use the right context type Choose the most specific context available Use flags for lightweight logic Avoid creating too many context types Keep context minimal Only store necessary data Use execution success carefully Control flow based on result * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#notes) Notes --------------------------------------------------------------------------------------------------------------------------- Topic Note Core System Contexts are used across the entire framework Lightweight Designed to be simple data carriers Extendable You can create custom context types Optional Not all executions require a context * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#related-pages) Related Pages ------------------------------------------------------------------------------------------------------------------------------------------- Page Description Reality Function Uses execution context when executing actions Reality Game Phase Provides phase context during execution Reality Team Provides team context for team-based logic Reality Game Data Uses contexts in gameplay event execution * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#summary) Summary ------------------------------------------------------------------------------------------------------------------------------- Item Description What it is Base system for passing execution data Main usage Used in functions, phases, and events Key feature Supports flags and execution state Variants Execution, Phase, and Team contexts [PreviousReality Functionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function) [NextRPF RealityPlayerFunctionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction) Last updated 22 days ago * [Reality Context](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-context) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#overview) * [Flags System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#flags-system) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#functions) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage) * [Reality Execution Context](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-execution-context) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties-1) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage-1) * [Reality Game Phase Context](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-game-phase-context) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties-2) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage-2) * [Reality Team Context](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#reality-team-context) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#properties-3) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#usage-3) * [Context Hierarchy](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#context-hierarchy) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#typical-use-cases) * [Best Practices](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#best-practices) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#related-pages) * [Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context#summary) sun-brightdesktopmoon sun-brightdesktopmoon --- # Mesh Merging | Documentation | Beyond Sandbox It's ideal to merge zones from your maps into a single static mesh. Be mindful of the mesh diversity involved in merging to avoid an excessive number of drawcalls. * Prefer smaller zone merges to allow for Cul, LOD, or HLOD replacements, for example, a maximum of 50m. * Limit the number of slots per merge if possible * In some cases it is preferable to use instanced mesh, (WARNING, use only HISM and not ISM, because only HISM allows the management of LODs). Different tools allow you to save time. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fjr3Gbq4jf2nu2bAmUqGE%252Fimage.png%3Falt%3Dmedia%26token%3D08a13795-1890-4aaa-b47f-c86a48d93117&width=768&dpr=3&quality=100&sign=6aad037e&sv=2) [PreviousPrepare Assetchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/prepare-asset) [NextMesh Reductionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/mesh-reduction) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # DrawCall/Triangle Limit | Documentation | Beyond Sandbox During level creation, remember to check the number of drawcalls/triangles when optimizing the level. _NOTE:_ The number of drawcalls/triangles is not the same under DirectX (PCVR) as under VulkanMobile. Don't forget to switch to gameview to get valid values. **Quest 2 :** * Ideal limit **Drawcall :** 150-200 * Ideal limit **Triangle** : 800 000 **Quest 3/3s :** * Ideal limit **Drawcall** : 250-400 * Ideal limit **Triangle** : 1 400 000 A tool allows you to visualize the number of drawcalls/triangles in the editor. **Reality\_DrawCallTriangle\_View** : /All/Plugins/Reality/Editor/Tools/View/Reality\_DrawCallTriangle\_View ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FRYA686hZN13bCfyV5yc5%252Fimage.png%3Falt%3Dmedia%26token%3Ddeb7c7ef-cf6d-4165-8f25-0aa5b940503a&width=768&dpr=3&quality=100&sign=1940ca47&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FM5aZTRzQiiaFXfGMkNYV%252Fimage.png%3Falt%3Dmedia%26token%3D561f6776-be04-4d7c-99a8-0f884498956f&width=768&dpr=3&quality=100&sign=f8d35cd&sv=2) [PreviousMesh Reductionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/mesh-reduction) [NextBuild Lightingchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # GameMode Settings | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#reality-gamemode-settings-data) Reality GameMode Settings Data ------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality GameMode Settings Data` defines the **runtime-configurable settings** of a game mode. It controls: * Enabled game features * Team support and team count * Character availability * Skin availability * What can be modified during gameplay > This asset is used by the GameMode and can be partially modified at runtime. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#overview) Overview ----------------------------------------------------------------------------------------------------------------------- Feature Description Game Features List of active gameplay features Team System Enables and configures teams Team Count Defines how many teams are used Character Collection Defines available player characters Skin Collection Defines available character skins Runtime Editing Controls what can be modified during gameplay * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#game-features) Game Features --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties) Properties Name Type Description Game Features Array List of active gameplay features * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior) Behavior Rule Description Editable In-Game Yes Replicated Yes Saved Yes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#team-system) Team System ----------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties-1) Properties Name Type Description GameMode Support Team Boolean Enables or disables team support Minimal Team Number Integer Minimum allowed number of teams Maximal Team Number Integer Maximum allowed number of teams Can Support Change Team Number Boolean Allows changing the number of teams at runtime Number Of Team Integer Current number of teams used * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior-1) Behavior Rule Description Team Enabled Controlled by GameMode Support Team Runtime Change Controlled by Can Support Change Team Number Limits Defined by Minimal and Maximal values * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#character-collection) Character Collection ----------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties-2) Properties Name Type Description Can Edit Character Data Collection Boolean Allows modifying character list at runtime Player Characters Data Collection Array List of available player characters * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior-2) Behavior Rule Description Editable Controlled by Can Edit Character Data Collection Replicated Yes Saved Yes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#character-skin-collection) Character Skin Collection --------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties-3) Properties Name Type Description Can Edit Character Skin Collection Boolean Allows modifying skins at runtime Player Character Skin Collection Array List of available character skins * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior-3) Behavior Rule Description Editable Controlled by Can Edit Character Skin Collection Replicated Yes Saved Yes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#runtime-control) Runtime Control ------------------------------------------------------------------------------------------------------------------------------------- This asset allows partial control of the game during runtime. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#editable-systems) Editable Systems System Editable Game Features Yes Team Count Conditional Character Collection Conditional Skin Collection Conditional * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#restrictions) Restrictions Property Condition Team Count Requires Can Support Change Team Number = true Characters Requires Can Edit Character Data Collection = true Skins Requires Can Edit Character Skin Collection = true * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#typical-use-cases) Typical Use Cases ----------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Setup Enable modular gameplay features Configure Game Features Create team-based game Enable GameMode Support Team Limit number of teams Set Minimal and Maximal Team Number Allow players to change teams Enable Can Support Change Team Number Restrict playable characters Configure Player Characters Data Collection Allow dynamic character selection Enable Can Edit Character Data Collection Control available skins Configure Player Character Skin Collection * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#notes) Notes ----------------------------------------------------------------------------------------------------------------- Topic Note Runtime Editable Some properties can be modified during gameplay Replication Key properties are replicated across the network Save System Supports saving and restoring settings GameMode Dependency Must match the GameMode configuration Team Dependency Only relevant if team support is enabled * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#related-pages) Related Pages --------------------------------------------------------------------------------------------------------------------------------- Page Description Reality GameMode Uses these settings during gameplay Reality Game Data References this settings asset Reality Game Feature Features enabled through settings Reality Team Team system affected by these settings [PreviousSession Widgetchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/session-widget) [NextGame Feature Systemchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system) Last updated 22 days ago * [Reality GameMode Settings Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#reality-gamemode-settings-data) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#overview) * [Game Features](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#game-features) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior) * [Team System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#team-system) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties-1) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior-1) * [Character Collection](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#character-collection) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties-2) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior-2) * [Character Skin Collection](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#character-skin-collection) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#properties-3) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#behavior-3) * [Runtime Control](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#runtime-control) * [Editable Systems](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#editable-systems) * [Restrictions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#restrictions) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#typical-use-cases) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-settings#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # Reality Asset Edit Interface | Documentation | Beyond Sandbox This interface is used by the native functions of the data asset to assign data; you can use this interface. #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/reality-asset-edit-interface#data-interface) Data Interface : * HaveAssetData * GetAssetData * SetAssetData #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/reality-asset-edit-interface#skin-interface) Skin Interface : * HaveSkinData * GetSkinData * SetSkinData [PreviousRuntime Editing Propertychevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/runtime-editing-property) [NextTroubleshooting & Reporting Bugschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/misc/troubleshooting-and-reporting-bugs) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # RPF RealityPlayerFunction | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#reality-player-context) Reality Player Context ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Player Context` is an execution context used for player-related logic. It provides direct access to the player involved in the current execution. > Use this context when your logic needs to interact with a specific player. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#overview) Overview ------------------------------------------------------------------------------------------------------------------------------------------------ Feature Description Player Access Provides access to the player controller Execution Context Extends execution context behavior Used by Functions Commonly used in player-related functions Simple Setup Can be created and passed during execution * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#properties) Properties ---------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Reality Player Player Controller The player associated with this execution * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#usage) Usage ------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#typical-use-cases) Typical Use Cases Use Case Description Apply logic to a specific player Access the player controller directly Handle player events Use during spawn, death, or join events Modify player state Apply gameplay changes to the player Execute player-specific functions Pass this context into a Reality Function * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#example-workflow) Example Workflow Step Description 1 Create or receive a Player Context 2 Access the Reality Player property 3 Use it inside a Reality Function 4 Apply logic to that player * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#notes) Notes ------------------------------------------------------------------------------------------------------------------------------------------ Topic Note Context Type Extends Reality Execution Context Player Reference Uses Player Controller as main reference Optional Usage Only required when player-specific logic is needed * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#reality-player-function) Reality Player Function ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ `Reality Player Function` is a specialized function designed for player-related execution. It is a simplified version of `Reality Function` with predefined behavior: * Always executes on the server * Cannot change network execution mode > Use this class when creating gameplay logic that targets players and must run on the server. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#overview-1) Overview -------------------------------------------------------------------------------------------------------------------------------------------------- Feature Description Player-Focused Designed for player-specific logic Server Only Always executes on the server Simplified Setup No need to configure network execution Inherits Function Extends Reality Function * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#execution-rules) Execution Rules -------------------------------------------------------------------------------------------------------------------------------------------------------------- Rule Description Network Execution Always Server Editable Network Mode Disabled Context Support Supports execution contexts (including Player Context) * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#usage-1) Usage -------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#typical-use-cases-1) Typical Use Cases Use Case Recommended Setup Modify player stats Use Player Function with Player Context Handle player death logic Execute from player event Apply server-side effects Use Player Function (server only) Assign rewards or penalties Run logic targeting a player Handle respawn logic Use Player Context to access the player * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#workflow) Workflow Step Description 1 Create a Blueprint based on Reality Player Function 2 Implement Execute 3 Use Player Context to access the player 4 Add the function to a phase or event system * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#best-practices) Best Practices ------------------------------------------------------------------------------------------------------------------------------------------------------------ Recommendation Description Use Player Context Always access the player through context Keep logic server-side This class is designed for authoritative logic Avoid client-only logic Use standard Reality Function for client-side behavior Keep functions modular One function = one responsibility * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#notes-1) Notes -------------------------------------------------------------------------------------------------------------------------------------------- Topic Note Server Authority Ensures gameplay consistency Simplified Usage No need to manage network execution manually Designed for Gameplay Ideal for player state changes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#related-pages) Related Pages ---------------------------------------------------------------------------------------------------------------------------------------------------------- Page Description Reality Function Base execution class Reality Context Base context system Reality Execution Context Execution result handling Reality Game Phase Can execute player functions Reality Team Can be used with team-related player logic * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#summary) Summary ---------------------------------------------------------------------------------------------------------------------------------------------- Item Description Reality Player Context Provides access to a specific player during execution Reality Player Function Server-only function for player-related gameplay logic Main Use Player-specific actions and gameplay logic Network Behavior Always server-side [PreviousRF Contextchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context) [NextBase RF Functionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rf-function) Last updated 22 days ago * [Reality Player Context](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#reality-player-context) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#overview) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#properties) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#usage) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#typical-use-cases) * [Example Workflow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#example-workflow) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#notes) * [Reality Player Function](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#reality-player-function) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#overview-1) * [Execution Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#execution-rules) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#usage-1) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#typical-use-cases-1) * [Workflow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#workflow) * [Best Practices](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#best-practices) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#notes-1) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#related-pages) * [Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rpf-realityplayerfunction#summary) sun-brightdesktopmoon sun-brightdesktopmoon --- # Build Light Scenario | Documentation | Beyond Sandbox [PreviousReflection Capturechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/reflection-capture) [NextMap Requirementschevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements) sun-brightdesktopmoon sun-brightdesktopmoon --- # Prepare Asset | Documentation | Beyond Sandbox For your levels to function correctly on Quest, you must prepare your assets, especially when importing them. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/prepare-asset#staticmesh) StaticMesh : ----------------------------------------------------------------------------------------------------------------------------------- * Nanite must be disabled (not supported). * Your meshes must have a triangle count below 65,535 to maintain a 16-bit index. * Your meshes must have LODs if the triangle count is high. * limited the number of material slots per static mesh to limit the number of draw calls. * Prefer using simple collisions instead of complex ones. A tool exists to execute these parameters on a set of static meshes selected in the content browser. **Reality\_StaticMeshTools** : /All/Plugins/Reality/Editor/Tools/Optimisation/Reality\_StaticMeshTools ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FdtKQPsbSjLP0HKuNZHVN%252Fimage.png%3Falt%3Dmedia%26token%3Dac51a546-5fb1-45ae-b50c-ff1104176cca&width=768&dpr=3&quality=100&sign=e64f3587&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FOXffvDm5VizSVjAeywg0%252Fimage.png%3Falt%3Dmedia%26token%3D71078861-58ae-439a-abac-983fda7e6013&width=768&dpr=3&quality=100&sign=daddd6e5&sv=2) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/prepare-asset#texture) Texture : ----------------------------------------------------------------------------------------------------------------------------- * Prefer a resolution limit of 2048 for textures. * Switch the compression to ASTC 8x8 * Compress without the alpha layer if it is empty. * Enable mipmap by default (unless otherwise specified). * Limit the size of ORM textures if possible. A tool exists to execute these parameters on the assets selected in the content browser. **Reality\_TextureTools** : /All/Plugins/Reality/Editor/Tools/Optimisation/Reality\_TextureTools ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252F47S0To5hwoZyoKvmZUNW%252Fimage.png%3Falt%3Dmedia%26token%3D77dd7010-aaef-4a25-b0b6-79286c5e6957&width=768&dpr=3&quality=100&sign=9ea8b4e4&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FXd1Ka30ytmjhmSyB6Icq%252Fimage.png%3Falt%3Dmedia%26token%3D21dab8d6-5716-4acb-88b3-b4eb184a9112&width=768&dpr=3&quality=100&sign=7dbd05f5&sv=2) [PreviousOptimisationchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation) [NextMesh Mergingchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/mesh-merging) Last updated 1 month ago * [StaticMesh :](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/prepare-asset#staticmesh) * [Texture :](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/prepare-asset#texture) sun-brightdesktopmoon sun-brightdesktopmoon --- # Reality Event Function System | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#reality-event-function-system) Reality Event Function System --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The `Reality Event Function System` is used to attach reusable `Reality Functions` to gameplay events. This system is used in: * `Reality Game Data` * `Reality Game Phase` It allows you to define what should happen when an event occurs, such as: * a player joining, * a player dying, * a player spawning, * a team being created, * a team score being updated, * a custom named event being triggered. > `Reality Game Data` defines the default event behavior for the whole game mode. `Reality Game Phase` can define its own event behavior and override or extend the default behavior. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FhOXuNDK7XuMQepEL2wgT%252Fimage.png%3Falt%3Dmedia%26token%3D984cda40-cd63-43ad-ada8-1e50a707e5e1&width=768&dpr=3&quality=100&sign=d884273&sv=2) * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#overview) Overview --------------------------------------------------------------------------------------------------------------------------------------------- Feature Description Player Event Logic Attach functions to player-related gameplay events GameMode Event Logic Attach functions to team and GameMode events Custom Event Logic Attach functions to named custom events Default Extension Add logic before or after default behavior Full Override Replace default behavior completely Phase Override Phases can define their own event behavior Reusable Actions Uses `Reality Function` objects * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#where-this-system-is-used) Where This System Is Used ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System Usage Reality Game Data Stores the default event execution logic for the game mode Reality Game Phase Can define phase-specific event execution logic Reality GameMode Triggers event execution during gameplay Reality Function Used as the executable action inside each event entry * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#execution-type) Execution Type --------------------------------------------------------------------------------------------------------------------------------------------------------- `Execution Type` controls how a specific event behaves compared to the default parent logic. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#available-values) Available Values Name Description Default Uses the normal execution order after the default list NotExec No custom behavior is executed, and the default parent logic is not overridden Additional Pre Default Runs custom logic before the default parent logic Additional Post Default Runs custom logic after the default parent logic Override Fully replaces the default parent logic * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#execution-container-mode) Execution Container Mode ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Execution Container Mode` controls how the whole event container behaves. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#available-values-1) Available Values Name Description Per Event Each event uses its own execution rule Override All Event All events in the container are treated as overridden * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#execution-logic-summary) Execution Logic Summary --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Mode Result Default Keeps the normal parent logic and runs the configured function list in default order NotExec No custom execution for this event Additional Pre Default Custom functions run before default logic Additional Post Default Custom functions run after default logic Override Parent logic is replaced by the configured functions Override All Event The whole container overrides parent behavior for all events * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#function-execution-entry) Function Execution Entry ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A single event entry is represented by an execution data structure. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#function-execution-data) Function Execution Data Property Type Description Execution Type Enum Defines how this event entry interacts with parent logic Function Execution List Array List of `Reality Function` objects executed for this event * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#usage) Usage Use Case Setup Add extra logic after normal player spawn behavior Additional Post Default Add setup before the normal player spawn behavior Additional Pre Default Replace normal death behavior completely Override Disable custom event execution for one entry NotExec * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#player-event-container) Player Event Container ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This container stores execution rules for player-related GameMode events. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#supported-events) Supported Events Event Description Player Join Called when a player joins the game Player Exit Called when a player leaves the game Player Die Called when a player dies Player Spawn Called when a player is spawned Player Request Respawn Called when a player requests a respawn Player Spectating Called when a player enters spectating mode Player Kill Player Called when a player kills another player * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#player-event-container-structure) Player Event Container Structure Property Type Description Override Execution Event Type Enum Defines whether the container uses per-event rules or overrides all events Player Event Map Maps each player event to its execution data * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#gamemode-event-container) GameMode Event Container ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This container stores execution rules for GameMode and team-related events. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#supported-events-1) Supported Events Event Description Team Created Called when a team is created Team Destroyed Called when a team is removed Team Initialized Called when a team is initialized and ready Team Score Updated Called when a team score changes Team Eliminate Called when a team is eliminated * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#gamemode-event-container-structure) GameMode Event Container Structure Property Type Description Override Execution Event Type Enum Defines whether the container uses per-event rules or overrides all events GameMode Event Map Maps each GameMode event to its execution data * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#custom-event-container) Custom Event Container ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This container stores execution rules for custom named events. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#structure) Structure Property Type Description Override Execution Event Type Enum Defines whether the container uses per-event rules or overrides all events Custom Event Map Maps event names to execution data * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#usage-1) Usage Use Case Example Trigger project-specific gameplay logic Custom event named `RoundWin` Handle mod-specific behavior Custom event named `SpecialObjectiveCompleted` Create reusable gameplay hooks Trigger named custom events from GameMode or phases * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#relationship-between-game-data-and-phases) Relationship Between Game Data and Phases --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This is the most important part of the system. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#default-behavior) Default Behavior Source Role Reality Game Data Defines the default event execution logic for the whole game Reality Game Phase Can define phase-specific event execution logic * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#phase-override-behavior) Phase Override Behavior Situation Result No phase-specific event entry Uses the default behavior from Game Data Phase entry with Additional Pre Default Runs phase logic before Game Data logic Phase entry with Additional Post Default Runs phase logic after Game Data logic Phase entry with Override Replaces the default Game Data logic for that event Phase container set to Override All Event All matching default behavior is overridden by the phase container * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#practical-flow) Practical Flow --------------------------------------------------------------------------------------------------------------------------------------------------------- Step Result 1 Event is triggered by the GameMode or another system 2 The system checks whether the active phase has event logic for that event 3 If the phase defines override behavior, that rule is applied 4 Otherwise, the default logic from Game Data is used 5 The associated `Reality Function` list is executed [PreviousGame Phasechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase) [NextCustom Event Functionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/custom-event-function) Last updated 8 days ago * [Reality Event Function System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#reality-event-function-system) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#overview) * [Where This System Is Used](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#where-this-system-is-used) * [Execution Type](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#execution-type) * [Available Values](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#available-values) * [Execution Container Mode](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#execution-container-mode) * [Available Values](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#available-values-1) * [Execution Logic Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#execution-logic-summary) * [Function Execution Entry](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#function-execution-entry) * [Function Execution Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#function-execution-data) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#usage) * [Player Event Container](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#player-event-container) * [Supported Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#supported-events) * [Player Event Container Structure](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#player-event-container-structure) * [GameMode Event Container](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#gamemode-event-container) * [Supported Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#supported-events-1) * [GameMode Event Container Structure](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#gamemode-event-container-structure) * [Custom Event Container](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#custom-event-container) * [Structure](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#structure) * [Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#usage-1) * [Relationship Between Game Data and Phases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#relationship-between-game-data-and-phases) * [Default Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#default-behavior) * [Phase Override Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#phase-override-behavior) * [Practical Flow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system#practical-flow) sun-brightdesktopmoon sun-brightdesktopmoon --- # Actor Spawning | Documentation | Beyond Sandbox [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/overview) [NextGame Contextchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/game-context) sun-brightdesktopmoon sun-brightdesktopmoon --- # Mesh Reduction | Documentation | Beyond Sandbox After merging, or if you have massive static meshes, you can still do post-processing on them to limit the impact on performance. * Weld , Jacket and clean mesh with modelingtools. * Reduce the number of material slots * Reduce the number of triangles and test reducing the number of triangles by percentage (simplygon is super powerful and allows very large reductions in the number of triangles without visible changes) * Prefer to separate the transparency of your merges in order to be able to make high-quality proxies, or HLOD. Some tools are available to perform these operations (WARNING: these are prototypes, be careful with the result). ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FQFXFSVfISQVAJxV9TIPE%252Fimage.png%3Falt%3Dmedia%26token%3D21d8a2e2-d77b-4b86-a569-e91e9c89fb60&width=768&dpr=3&quality=100&sign=11f7d797&sv=2) [PreviousMesh Mergingchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/mesh-merging) [NextDrawCall/Triangle Limitchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/drawcall-triangle-limit) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Runtime Data | Documentation | Beyond Sandbox [PreviousGame Contextchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/game-context) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/overview) sun-brightdesktopmoon sun-brightdesktopmoon --- # Lightmass Configuration | Documentation | Beyond Sandbox For baking with lightmass, you need to configure the parameters that are in the world settings of your main level , here are some examples of parameters used in Beyond. circle-info Warning: increasing quality can drastically increase baking time. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252F1MUNkB9ufPx5YJsmRRJQ%252Fimage.png%3Falt%3Dmedia%26token%3D75b7d3be-3dd8-4d05-b9b1-bd49cc474dbd&width=768&dpr=3&quality=100&sign=f5fb8fe9&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fftz6ro9m21UFFFafxTMY%252Fimage.png%3Falt%3Dmedia%26token%3Dd0415a7d-8b0b-4935-a46f-e3876ff3e218&width=768&dpr=3&quality=100&sign=40f4ed15&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fws3ZyDwV3MMfkENMM8qW%252Fimage.png%3Falt%3Dmedia%26token%3D150c1375-7b36-4933-b928-cd5ca63692d0&width=768&dpr=3&quality=100&sign=af5c1dc4&sv=2) For the final baking stage, it is recommended to use the "Production" mode. [PreviousLightMap Densitychevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/lightmap-density) [NextReflection Capturechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/reflection-capture) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Build Lighting | Documentation | Beyond Sandbox Ideally you should bake your lights to maximize performance in VR, here are the basic configurations. * Set all lights to static (you can enable cast shadow for all of them). * Don't forget LightmassImportanceVolume; set it in your valid play area. * Configure Lightmass in the WorldSettings tab. * Use the lightmap density visualization tool and test setting all static meshes as close to green as possible. * Separate your lights into a sub-level of the LightScenario type. * Don't forget to make your static objects static. * Add many Reflection capture [PreviousDrawCall/Triangle Limitchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/optimisation/drawcall-triangle-limit) [NextLightMap Densitychevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/lightmap-density) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox [PreviousTroubleshooting & Reporting Bugschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/misc/troubleshooting-and-reporting-bugs) [NextActor Spawningchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/actor-spawning) sun-brightdesktopmoon sun-brightdesktopmoon --- # Virtual Screen | Documentation | Beyond Sandbox [PreviousControl Devicechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/control-device) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/overview) sun-brightdesktopmoon sun-brightdesktopmoon --- # LightMap Density | Documentation | Beyond Sandbox One of the most important parameters for a good result is controlling the light map density of your meshes placed in your level. Ideally, you should aim for a density close to green. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FtLeQ7oF0zydPLj07pOHZ%252Fimage.png%3Falt%3Dmedia%26token%3Dabd7c4fa-b425-477c-8ba6-c1afb9f42597&width=768&dpr=3&quality=100&sign=908c8378&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FMuCVkodWAVPARw4ndw9h%252Fimage.png%3Falt%3Dmedia%26token%3D4c2822d9-fab0-41b4-b57e-f46a6c8bb759&width=768&dpr=3&quality=100&sign=36e3f86&sv=2) You can override the parameters in the static mesh asset, or the override in the instance which is in the level. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FdakKgQPemyjBZU4777hN%252Fimage.png%3Falt%3Dmedia%26token%3D268caaff-5f13-4590-b993-8a3ddc64bba4&width=768&dpr=3&quality=100&sign=c65d94d8&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FP0b6oiKZaWwttRvouPRB%252Fimage.png%3Falt%3Dmedia%26token%3D2f819cc5-5d6b-48e1-97ca-d3d4bcddbd4c&width=768&dpr=3&quality=100&sign=d8361fd4&sv=2) [PreviousBuild Lightingchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting) [NextLightmass Configurationchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/lightmass-configuration) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Game Phase | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#reality-game-phase) Reality Game Phase ---------------------------------------------------------------------------------------------------------------------------------------------- `Reality Game Phase` defines a phase of gameplay inside a game mode. A phase can control: * when a phase begins and ends, * how long it lasts, * how many times it repeats, * which actions run on begin or end, * which conditions end the phase, * optional sub-phases, * event-driven logic during the phase. > Use phases to build structured game flow such as Lobby, Preparation, Combat, Sudden Death, Results, or any custom sequence. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#overview) Overview -------------------------------------------------------------------------------------------------------------------------- Feature Description Phase Lifecycle Begin, end, and move to the next phase Duration Optional timed phase duration Iterations Repeat the phase multiple times Transition Conditions End the phase based on conditions Begin / End Actions Run actions when the phase starts or ends Sub-Phases Create nested phase flow inside a phase Event Logic Attach player, GameMode, and custom events to the phase Synchronization Supports synchronized execution state * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#phase-state) Phase State -------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#enum) Enum Name Description None Phase is inactive Begin Phase has started End Phase has ended * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#phase-timing) Phase Timing ---------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties) Properties Name Type Description Name Text Display name of the phase Duration Float Duration before the phase ends Iterations Integer Number of times this phase repeats Tags Tag Container Gameplay tags associated with this phase * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#timing-rules) Timing Rules Value Result Duration = 0 Infinite duration Iterations = 1 Phase runs once Iterations > 1 Phase repeats that many times Iterations = 0 Infinite repetition * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#functions) Functions Name Type Description Outputs Get Current Iteration Pure Returns the current iteration index of the phase Integer Get Begin Time Pure Returns the world time when the phase started Double Get Duration Pure Returns the configured duration of the phase Float Get Remaining Time Pure Returns the time remaining before the phase ends Double * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#phase-lifecycle) Phase Lifecycle ---------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#functions-1) Functions Name Type Description Inputs Outputs Force Next Callable Forces the phase to end and advance to the next one — — * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#events) Events Name Type Description Outputs On Begin Event Called when the phase starts — On End Event Called when the phase ends — On Check Transition Event Called when checking if the phase should transition Boolean * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#begin-and-end-actions) Begin and End Actions ---------------------------------------------------------------------------------------------------------------------------------------------------- These actions are executed automatically during the phase lifecycle. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties-1) Properties Name Type Description Begin Actions Array Actions executed when the phase begins End Actions Array Actions executed when the phase ends * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#transition-system) Transition System -------------------------------------------------------------------------------------------------------------------------------------------- The phase can end automatically based on configured conditions. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties-2) Properties Name Type Description End Conditions Array Conditions that can end the phase Auto Check End Conditions Boolean Enables automatic condition checking Auto Check End Conditions Period Float How often end conditions are checked * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#transition-rules) Transition Rules Rule Description End Conditions If at least one condition is true, the phase can end Auto Check Enabled Conditions are checked automatically Auto Check Disabled Transition checks must be triggered manually Check Period Defines the interval between automatic checks * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#sub-phases) Sub-Phases ------------------------------------------------------------------------------------------------------------------------------ A phase can optionally contain its own list of sub-phases. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties-3) Properties Name Type Description Has Sub Phases Boolean Enables sub-phase support Sub Phase Iterations Integer Number of times the sub-phase list repeats Sub Phase Classes Array List of sub-phase classes used by this phase * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#sub-phase-rules) Sub-Phase Rules Value Result Has Sub Phases = false No sub-phases are used Sub Phase Iterations = 1 Sub-phase list runs once Sub Phase Iterations > 1 Sub-phase list repeats Sub Phase Iterations = 0 Infinite repetition * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#functions-2) Functions Name Type Description Inputs Outputs Get Parent Phase Pure Returns the parent phase if this is a sub-phase — Phase Get Sub Phase By Index Pure Returns a sub-phase by index Subphase Index Phase Get Sub Phases Count Pure Returns the number of sub-phases — Integer * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#gameplay-event-system) Gameplay Event System ---------------------------------------------------------------------------------------------------------------------------------------------------- A phase can define gameplay event logic locally. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#player-events) Player Events Name Type Description Player Event Container Player-related gameplay events active during this phase * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#gamemode-events) GameMode Events Name Type Description GameMode Event Container GameMode-related gameplay events active during this phase * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#custom-events) Custom Events Name Type Description Custom Event Container Custom gameplay events active during this phase * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#synchronization-and-execution-state) Synchronization & Execution State ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ A phase supports synchronized execution behavior. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#behavior) Behavior State Description Synchronizing Phase is currently synchronizing Synchronized Phase has completed synchronization Iteration Synchronized Current phase iteration is synchronized Simulating Phase is currently simulating > These states are useful when the phase flow depends on synchronized execution across systems. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#typical-use-cases) Typical Use Cases -------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Setup Create a timed combat phase Set Duration and Begin / End Actions Create a lobby phase that waits for a condition Use End Conditions Repeat a wave phase multiple times Set Iterations Build a multi-step round flow Use Sub Phase Classes Trigger logic when the phase starts Use On Begin Trigger cleanup when the phase ends Use On End End a phase from Blueprint Use Force Next Run event-specific logic only during one phase Configure Player Event, GameMode Event, or Custom Event * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#blueprint-events-summary) Blueprint Events Summary ---------------------------------------------------------------------------------------------------------------------------------------------------------- Name Description On Begin Called when the phase starts On End Called when the phase ends On Check Transition Called when the phase checks whether it should end * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#notes) Notes -------------------------------------------------------------------------------------------------------------------- Topic Note Main Purpose Phases are used to structure gameplay flow Timed or Conditional A phase can end by time, by conditions, or manually Nested Flow Sub-phases allow more advanced flow control Iteration Support Both phases and sub-phases can repeat Event Scope Event containers let you scope logic to one specific phase * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#related-pages) Related Pages ------------------------------------------------------------------------------------------------------------------------------------ Page Description Reality GameMode Uses phases to control game progression Reality Game Data Stores the list of phases used by the GameMode Reality GameMode Base Provides phase manager access and phase flow helpers Reality Game Feature Can interact with phase-based systems [PreviousGame Datachevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data) [NextReality Event Function Systemchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/reality-event-function-system) Last updated 22 days ago * [Reality Game Phase](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#reality-game-phase) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#overview) * [Phase State](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#phase-state) * [Enum](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#enum) * [Phase Timing](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#phase-timing) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties) * [Timing Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#timing-rules) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#functions) * [Phase Lifecycle](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#phase-lifecycle) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#functions-1) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#events) * [Begin and End Actions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#begin-and-end-actions) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties-1) * [Transition System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#transition-system) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties-2) * [Transition Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#transition-rules) * [Sub-Phases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#sub-phases) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#properties-3) * [Sub-Phase Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#sub-phase-rules) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#functions-2) * [Gameplay Event System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#gameplay-event-system) * [Player Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#player-events) * [GameMode Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#gamemode-events) * [Custom Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#custom-events) * [Synchronization & Execution State](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#synchronization-and-execution-state) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#behavior) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#typical-use-cases) * [Blueprint Events Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#blueprint-events-summary) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/game-phase#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameModeBase API | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#reality-gamemode-base) Reality GameMode Base ------------------------------------------------------------------------------------------------------------------------------------------------------------- Base class for all Reality Game Modes. Handles: * Game lifecycle * Player flow (join, leave, spawn, death) * Respawn & spectating * Game phases * Gameplay events * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-lifecycle) Game Lifecycle ----------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs Begin Game Callable Starts the game immediately — — End Game Callable Ends the current game — — Has Game Started Pure Returns true if the game has started — Boolean Has Game Ended Pure Returns true if the game has ended — Boolean Wait For Players And Start Callable Waits for players before starting the game Min Players (Integer) — Cancel Wait For Players Callable Stops waiting for players — — Is Waiting For Players Pure Returns if waiting for players — Boolean Get Players Needed To Start Pure Returns how many players are still needed — Integer Force Next Phase Callable Forces transition to next phase — — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-management) Player Management ----------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs On Player Join Event Called when a player joins Player Controller — On Player Exit Event Called when a player leaves Player Controller — On Post Login Event Dispatcher Triggered after player login Player Controller — On Pre Logout Event Dispatcher Triggered before player leaves Player Controller — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-spawn-and-respawn) Player Spawn & Respawn ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs Auto Spawn Player Callable Automatically spawns or respawns a player Player Controller, Spawn Type, Start Point Type, As Spectator (Bool) Player Character Spawn Player At Callable Spawns a player at a specific transform Player Controller, Transform, As Spectator (Bool) Player Character Set Player To Spectating Callable Sets player as spectator Player Controller Spectator Character Add Pending Respawn Callable Adds a delayed respawn Player Controller, Time (Float) Boolean Has Pending Respawn Callable Checks if player has pending respawn Player Controller Boolean Remove Pending Respawn Callable Removes pending respawn Player Controller — Force Respawn Player Callable Forces immediate respawn Player Controller — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-events) Player Events --------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs On Player Spawn Event Called when a player spawns Player Controller, Player Character — On Player Die Event Called when a player dies Player Controller, Kill Info — On Player Kill Player Event Called when a player kills another Killer Controller, Victim Controller, Kill Info — On Player Spectating Event Called when player becomes spectator Player Controller — On Player Request Respawn Event Called when player requests respawn Player Controller — Kill Player Callable Instantly kills player Player Controller — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#event-dispatchers) Event Dispatchers ----------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-events) Game Events Name Description On Game Start Triggered when the game starts On Game End Triggered when the game ends * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-events-1) Player Events Name Description On Player Die Fired when a player dies On Player Kill Fired when a player kills another On Player Spawn Fired when a player spawns On Player Join Fired when a player joins On Player Exit Fired when a player exits On Player Became Spectator Fired when player becomes spectator On Player Request Respawn Fired on respawn request * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#preload) Preload Name Description On Preload Completed Called when preload finishes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-phase-system) Game Phase System ----------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs Get Game Phase Manager Callable Returns the phase manager — Game Phase Manager Get Current Phase Callable Returns the current phase — Game Phase * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#execution-system) Execution System --------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs Execute Player Event Callable Executes a player event Event, Context — Execute GameMode Event Callable Executes a GameMode event Event, Context — Execute Custom Event Callable Executes a custom named event Event Name, Context — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#data-and-settings) Data & Settings --------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs Get Data Callable Returns GameMode data — Game Data Get Settings Pure Returns GameMode settings — Settings * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#properties) Properties Name Description Data Core GameMode data (required) Default Player Data Default player configuration Default Spectator Data Default spectator configuration Player Controller Class Controller class used Game State Class Game state class Player State Class Player state class Support Restart Game Enables restart functionality Game Settings Data Class Settings class used * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#utility) Utility --------------------------------------------------------------------------------------------------------------------------------- Name Type Description Inputs Outputs Get Reality GameMode Base Pure Returns current GameMode World Context GameMode Log Info Callable Logs info message String — Log Warning Callable Logs warning message String — Log Error Callable Logs error message String — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#initialization-events) Initialization Events ------------------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description Post Init Game Event Called after game init Post Init Settings Event Called after settings init Post Init Game State Event Called after GameState init * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-events-1) Game Events ------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description On Game Start Event Called when game starts On Game End Event Called when game ends * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#travel-and-restart) Travel & Restart ----------------------------------------------------------------------------------------------------------------------------------------------------- Name Type Description On Pre Restart Game Event Called before restart On Post Travel Event Called after level travel * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#misc) Misc --------------------------------------------------------------------------------------------------------------------------- Name Type Description Outputs Preload Completed Callable Returns preload state Boolean Character Die Callback Event Called when any character dies — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#summary) Summary --------------------------------------------------------------------------------------------------------------------------------- `Reality GameMode Base` is the **core gameplay controller**. It provides: * Player lifecycle control * Event-driven gameplay system * Spawn & respawn management * Phase-based architecture [PreviousGameMode APIchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api) [NextGameMode APIchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api) Last updated 22 days ago * [Reality GameMode Base](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#reality-gamemode-base) * [Game Lifecycle](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-lifecycle) * [Player Management](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-management) * [Player Spawn & Respawn](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-spawn-and-respawn) * [Player Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-events) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#event-dispatchers) * [Game Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-events) * [Player Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#player-events-1) * [Preload](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#preload) * [Game Phase System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-phase-system) * [Execution System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#execution-system) * [Data & Settings](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#data-and-settings) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#properties) * [Utility](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#utility) * [Initialization Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#initialization-events) * [Game Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#game-events-1) * [Travel & Restart](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#travel-and-restart) * [Misc](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#misc) * [Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api#summary) sun-brightdesktopmoon sun-brightdesktopmoon --- # Runtime Editing Property | Documentation | Beyond Sandbox In your previously created class data, you can add properties that can then be editable in-game. Note that SET and MAP are not supported because they are not replicable by default by unreal; only Single property and Array Property are supported. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fig00SpOSYwWiz6Al8ian%252Fimage.png%3Falt%3Dmedia%26token%3D06344ab7-d40e-477e-9fa0-f29a86e23a00&width=768&dpr=3&quality=100&sign=e12d2e47&sv=2) Once you have added your properties, don't forget to compile your class to update the system, then look at the property options; if the type is supported, you will see the "RuntimeEditable" option. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Frem9qXElxclqXBBEStRE%252Fimage.png%3Falt%3Dmedia%26token%3D90fe48db-d81a-4c96-a47f-71f649a450d0&width=768&dpr=3&quality=100&sign=ef9c9500&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FGbGRStsfhM2XCGJbXWb4%252Fimage.png%3Falt%3Dmedia%26token%3D720e238d-8eb1-4c90-9e8e-c0cfc925da74&width=768&dpr=3&quality=100&sign=ba65160&sv=2) Once "RuntimeEditable" is checked, your property will be editable in-game and will also be replicated to support networking. You can also configure how the property is displayed and set additional limits for in-game editing. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FaazfBrxEvzF7ED72Cld9%252Fimage.png%3Falt%3Dmedia%26token%3De97e6595-5eaf-4351-9c9b-e772d1f1efcd&width=768&dpr=3&quality=100&sign=45369170&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FOi0iRmQjf2V2cWudXd9R%252Fimage.png%3Falt%3Dmedia%26token%3D40e3027a-8551-4cf3-8232-74aa1df0b04d&width=768&dpr=3&quality=100&sign=973e1cd4&sv=2) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/runtime-editing-property#supported-proprety-type-single-or-array) Supported proprety Type ( Single or Array ) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * Boolean * Byte ( uint8 ) * Int32 * float * Enum * String * Name * Vector * Vector2D * Rotator * Transform * LinearColor * Any Struct * Reality Asset Data ( only direct reference ) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/runtime-editing-property#example-view-ingame) Example view ingame -------------------------------------------------------------------------------------------------------------------------------------------------------------- ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FhE9XNkx2oEiFgv235lzN%252Fimage.png%3Falt%3Dmedia%26token%3D748eb515-c69e-4550-9f62-2a2eae3fde5f&width=768&dpr=3&quality=100&sign=8548ac1a&sv=2) [PreviousCreate New Data Classchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class) [NextReality Asset Edit Interfacechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/reality-asset-edit-interface) Last updated 1 month ago * [Supported proprety Type ( Single or Array )](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/runtime-editing-property#supported-proprety-type-single-or-array) * [Example view ingame](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/runtime-editing-property#example-view-ingame) sun-brightdesktopmoon sun-brightdesktopmoon --- # Actor Data | Documentation | Beyond Sandbox Reality Actor Data is the basic class for spawning actors in sandbox mode. It stores the properties necessary for proper operation and the functions for spawning. NOTE: It is recommended to use the spawn functions of the data asset instead of doing it manually, because the data asset's parameters are applied during spawning. You can also do it yourself, but you must remember to apply the data asset you are using. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/actor-data#native-property-required) Native Property ( Required ) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * PreviewMesh ( StaticMesh ) * Bound ( SphereBoxBound ) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/actor-data#native-function) Native Function : ------------------------------------------------------------------------------------------------------------------------------------------------------------ * SpawnSyncActor * SpawnAsyncActor * ApplyDataToActor ( Via Interface ) [PreviousNative Data Classchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class) [NextSkin Datachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data) Last updated 1 month ago * [Native Property ( Required )](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/actor-data#native-property-required) * [Native Function :](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/actor-data#native-function) sun-brightdesktopmoon sun-brightdesktopmoon --- # Reality Function | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#reality-function) Reality Function -------------------------------------------------------------------------------------------------------------------------------------- `Reality Function` is the base object used to execute reusable gameplay actions. It is designed to work with the Reality execution system and can be used by: * Game Phases * Gameplay event containers * GameMode logic * Team-related systems * Custom execution flows A function can receive an execution context, which makes it possible to run context-aware logic such as: * phase-based actions, * team-based actions, * custom event execution, * conditional gameplay flow. > Use `Reality Function` as the base class for modular gameplay actions that can be reused across multiple systems. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#overview) Overview ---------------------------------------------------------------------------------------------------------------------- Feature Description Reusable Action Represents a gameplay action that can be executed by multiple systems Blueprint Extendable Can be implemented directly in Blueprint Context Aware Can receive execution context data Network Execution Can run on client, server, or both Modular Design Intended for reusable and data-driven gameplay logic * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#network-execution-mode) Network Execution Mode -------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Function` supports different execution targets. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#available-values) Available Values Name Description Client Executes on the client Server Executes on the server Client And Server Executes on both client and server * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#core-execution) Core Execution ---------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#functions) Functions Name Type Description Inputs Outputs Execute Callable / Event Main action executed by the function Execution Context — Is Server Callable Returns whether this execution is currently running on the server — Boolean Is Client Callable Returns whether this execution is currently running on the client — Boolean * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#execution-context-support) Execution Context Support -------------------------------------------------------------------------------------------------------------------------------------------------------- A `Reality Function` can receive an optional execution context. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#supported-context-types) Supported Context Types Context Description Reality Execution Context Generic execution context Reality Game Phase Context Used when the function runs from a game phase Reality Team Context Used when the function runs from a team-related system * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#common-usage) Common Usage Context Type Example Usage Reality Execution Context Generic event execution Reality Game Phase Context Run logic based on the active phase Reality Team Context Apply logic to a specific team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#execution-settings) Execution Settings ------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#properties) Properties Name Type Description Can Modify Net Execution Context Boolean Allows the function to define its own network execution target Net Execution Enum Defines where the function should execute * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#behavior) Behavior Rule Description Can Modify Net Execution Context = true The function can define its own network execution mode Can Modify Net Execution Context = false The network execution mode should not be changed here Net Execution = Client Executes only on the client Net Execution = Server Executes only on the server Net Execution = Client And Server Executes on both * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#blueprint-workflow) Blueprint Workflow ------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#common-pattern) Common Pattern Step Description 1 Create a Blueprint based on Reality Function 2 Implement the Execute event 3 Read data from the provided Execution Context if needed 4 Configure the Net Execution mode 5 Add the function to a phase, event container, or other execution system * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#typical-use-cases) Typical Use Cases ---------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Setup Run logic when a phase begins Add the function to a phase Begin Actions list Run cleanup when a phase ends Add the function to a phase End Actions list Execute a team-specific action Use a Team Context Execute a phase-specific action Use a Game Phase Context Run server-authoritative gameplay logic Set Net Execution to Server Run local UI or feedback logic Set Net Execution to Client Reuse gameplay logic across multiple systems Build a reusable Reality Function Blueprint * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#best-practices) Best Practices ---------------------------------------------------------------------------------------------------------------------------------- Recommendation Description Keep each function focused One function should handle one clear action Use the correct context type Read only the data relevant to the action Set the right network target Avoid running server-only gameplay on the client Reuse functions across systems Functions are designed to be modular Use server execution for state changes Best for score, progression, and authoritative logic * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#notes) Notes ---------------------------------------------------------------------------------------------------------------- Topic Note Base Action Class This is the main base class for executable gameplay actions Blueprint Friendly Intended to be extended in Blueprint Context Driven Works best when used with execution contexts Network Aware Supports explicit client/server targeting * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#related-pages) Related Pages -------------------------------------------------------------------------------------------------------------------------------- Page Description Reality Context Base context system used during execution Reality Execution Context Generic execution result context Reality Game Phase Context Context used during phase execution Reality Team Context Context used during team-related execution Reality Game Phase Uses functions in begin and end actions Reality Game Data Uses gameplay event containers that can execute functions * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#summary) Summary -------------------------------------------------------------------------------------------------------------------- Item Description What it is Base class for reusable executable gameplay actions Used by Phases, gameplay events, team systems, and custom logic Main entry point Execute Context support Yes Network support Client, Server, or Client And Server [PreviousCustom Event Functionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-data/custom-event-function) [NextRF Contextchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/rf-context) Last updated 22 days ago * [Reality Function](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#reality-function) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#overview) * [Network Execution Mode](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#network-execution-mode) * [Available Values](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#available-values) * [Core Execution](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#core-execution) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#functions) * [Execution Context Support](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#execution-context-support) * [Supported Context Types](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#supported-context-types) * [Common Usage](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#common-usage) * [Execution Settings](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#execution-settings) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#properties) * [Behavior](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#behavior) * [Blueprint Workflow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#blueprint-workflow) * [Common Pattern](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#common-pattern) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#typical-use-cases) * [Best Practices](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#best-practices) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#related-pages) * [Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function#summary) sun-brightdesktopmoon sun-brightdesktopmoon --- # Reflection Capture | Documentation | Beyond Sandbox Reflection capture is essential for accurately rendering reflections on metallic surfaces. Depending on the changing lighting conditions, don't hesitate to add a reflection capture box or sphere. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FTlACpZi5W0UIgTcrW6xj%252Fimage.png%3Falt%3Dmedia%26token%3D8c901fa1-dba3-40cf-bc37-3ffe867f578a&width=768&dpr=3&quality=100&sign=c0c248fc&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FIxfgMoArzDkxGp9BOQgY%252Fimage.png%3Falt%3Dmedia%26token%3D1efb3203-9183-46d9-b3b5-b98649b8c4ac&width=768&dpr=3&quality=100&sign=aeb44b30&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FN5xCDkJXkuu1nbMlTkOv%252Fimage.png%3Falt%3Dmedia%26token%3D5a1648b4-1866-44cf-a6ba-3fc47f7d15d8&width=768&dpr=3&quality=100&sign=beba229c&sv=2) [PreviousLightmass Configurationchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/lightmass-configuration) [NextBuild Light Scenariochevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/build-light-scenario) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Map Requirements | Documentation | Beyond Sandbox ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#what-are-map-requirements) What are Map Requirements? Map requirements define what a map requires to provide so that gamemodes can run on it. When you publish a map mod, the editor checks that your map meets these requirements and tags your map with metadata so the right gamemodes can find it when a player is setting up a session. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#rgr_sublevels) RGR\_Sublevels Requirements are associated with **RGR\_ sublevels** \- streaming levels whose names start with `RGR\_` (Reality Gamemode Requirement). For Example: * `RGR_PLAYER_SPAWNS` * `RGR\_TEAM_PLAYER_SPAWNS` You don't _have_ to place your actors in these sublevels. Spawners on the persistent level are found and counted too. The advantage of using `RGR_sublevels` is **control** - actors placed in a sublevel are only loaded when a Gamemode requires that sublevel. This lets you have different spawn layouts loaded depending on the Gamemode. If you don't need that level of control, placing actors directly in the persistent level works fine. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#requirement-types) Requirement Types There are two kinds of checks: * **Hard minimum** - An absolute minimum that blocks publishing if not met. For example, you must have at least 1 player spawn. You cannot override this. * **Recommended count** - The minimum our default gamemodes require. Your map only gets tagged as meeting a requirement (e.g., `RGR_PLAYER_SPAWNS`) when this count is met. You'll get a warning if you're below this, but you can still publish - your map just won't match gamemodes that expect it. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#whats-next) What's Next * [Requirements Reference](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference) - The specific requirements and what they expect * [Map Requirements Panel](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability) - How to use the editor panel to manage requirements * [Publishing & Validation](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation) - What happens when you validate and publish * [Compatibility](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel) - How gamemodes find compatible maps [PreviousBuild Light Scenariochevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/build-lighting/build-light-scenario) [NextRequirements Referencechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference) Last updated 17 days ago * [What are Map Requirements?](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#what-are-map-requirements) * [RGR\_Sublevels](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#rgr_sublevels) * [Requirement Types](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#requirement-types) * [What's Next](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements#whats-next) sun-brightdesktopmoon sun-brightdesktopmoon --- # Common Asset | Documentation | Beyond Sandbox CommonAssets are proxies for basic assets like staticmesh or texture, which allows you to assign them to other data assets later; they are not modifiable in-game because their properties are not supported. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/common-asset#base-asset-support-proxy-asset-data) Base Asset support ( proxy asset data ) : ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * StaticMesh * SkeletalMesh * Sound ( SoundBaseClass = Cue , Wave , MetaSound ) * VFX Particle ( Cascade ) * VFX Niagara ( NiagaraSystem ) * Material ( MaterialInterface = Material , Material Instance Constant ) * Texture ( Texture2D Asset ) [PreviousEntity Datachevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/entity-data) [NextCreate New Data Classchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Entity Data | Documentation | Beyond Sandbox [PreviousSkin Datachevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data) [NextCommon Assetchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/common-asset) sun-brightdesktopmoon sun-brightdesktopmoon --- # Skin Data | Documentation | Beyond Sandbox The skin system is based on property overriding for StaticMeshComponent and SkeletalMeshComponent. It uses the target system to target the components of an actor. Theoretically, it's possible to apply skins to any actor as long as it has the correct tag setup on its components. However, for this to work correctly, the actor must use the Asset Edit interface, internal application functions, and replication. The property where you store the skin data must be replicated with RepNotify, and you must apply the skin on change. Reality's native actors already support this mechanism. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FRlHqzPVyYVnPAKMQpm8x%252Fimage.png%3Falt%3Dmedia%26token%3Dd2073320-f36c-48aa-8171-d2eff0455482&width=768&dpr=3&quality=100&sign=7ef87cb0&sv=2) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data#target-system) Target System ----------------------------------------------------------------------------------------------------------------------------------------------------- The override system is based on Component tags to be able to target specific primitive components; it must start with "**RSkin\_**" to be listed. The Reality Interactable actor and Reality Character have "**RSkin\_Base**" on their base mesh. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data#override-support) Override support : ------------------------------------------------------------------------------------------------------------------------------------------------------------- * Override StaticMesh * Override SkeletalMesh * Override Material slot by index * Override PrimitiveData * Primitive Data Float * Primitive Data Vector4 ( Color ) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data#native-function) Native Function --------------------------------------------------------------------------------------------------------------------------------------------------------- * ApplySkinAsync * ApplySkinToActor [PreviousActor Datachevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/actor-data) [NextEntity Datachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/entity-data) Last updated 1 month ago * [Target System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data#target-system) * [Override support :](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data#override-support) * [Native Function](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/skin-data#native-function) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameFeatureData | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#reality-game-feature-data) Reality Game Feature Data --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `Reality Game Feature Data` is a configurable asset used to add modular gameplay features. > Use this asset when you want to add modular systems to a game without hardcoding them directly into the GameMode. A feature can provide: * client-side objects, * globally replicated objects, * team-specific objects, * optional UI widgets, * initialization and cleanup logic, * hooks for player clients and team instances. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#overview) Overview ----------------------------------------------------------------------------------------------------------------------------------------- Feature Description Client Object Per-client feature object Global Object Shared replicated feature object Team Object Team-specific feature object Feature Widget Optional widget used by the feature Initialization Called when the feature starts Deinitialization Called when the feature ends Client Hooks Reacts by client are added or removed Team Hooks Reacts by team are created * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#object-types) Object Types ------------------------------------------------------------------------------------------------------------------------------------------------- A feature can spawn and manage different object types depending on where the logic should live. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#properties) Properties Name Type Description Client Object Class Class Feature object created for each client Global Replicated Object Class Class Shared replicated feature object Team Object Class Class Feature object created for each team Feature Widget Class Class Optional widget that can be created on the client * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#initialization-lifecycle) Initialization Lifecycle ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#events) Events Name Type Description Inputs Feature Initialization Event Called when the feature is initialized — Feature Deinitialization Event Called when the feature is deinitialized — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#client-lifecycle) Client Lifecycle --------------------------------------------------------------------------------------------------------------------------------------------------------- A feature can react when a new client is registered or removed. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#events-1) Events Name Type Description Inputs On New Client Event Called when a new client is added to the feature Client, Client Object Remove Client Event Called when a client is removed from the feature Client, Client Object * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#functions) Functions Name Type Description Inputs Outputs Get Global Feature Object Callable Returns the shared replicated feature object — Global Feature Object Get Client Object Map Callable Returns the mapping between clients and their feature objects — Client/Object Map Get Client Objects Callable Returns all feature client objects — Client Object Array * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#team-lifecycle) Team Lifecycle ----------------------------------------------------------------------------------------------------------------------------------------------------- If the game mode supports teams, a feature can also create team-specific objects. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#events-2) Events Name Type Description Inputs On New Team Object Event Called when a team feature object is created Team, Team Feature Object * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#functions-1) Functions Name Type Description Inputs Outputs Get Team Object Callable Returns the mapping between teams and their feature objects — Team/Object Map Get Teams Object Callable Returns all team feature objects — Team Feature Object Array * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#feature-architecture) Feature Architecture ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Layer Description Client One feature object per client Global One shared replicated feature object Team One feature object per team UI Optional widget for client-side display * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#typical-use-cases) Typical Use Cases ----------------------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Setup Add a modular replicated gameplay system Use Global Replicated Object Class Give each player a feature-specific runtime object Use Client Object Class Add team-based feature logic Use Team Object Class Display feature UI to players Use Feature Widget Class Run setup logic when the feature starts Use Feature Initialization Clean up the feature when it ends Use Feature Deinitialization React when players connect to the feature Use On New Client React when team feature objects are created Use On New Team Object * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#blueprint-events-summary) Blueprint Events Summary ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name Description Feature Initialization Called when the feature starts Feature Deinitialization Called when the feature ends On New Client Called when a client is registered Remove Client Called when a client is removed On New Team Object Called when a new team feature object is created * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#notes) Notes ----------------------------------------------------------------------------------------------------------------------------------- Topic Note Modular Design Features are intended to be reusable gameplay modules Team Support Team objects are only relevant if the current GameMode supports teams Client Support Client objects are useful for player-specific feature logic Global Replication Global feature objects are ideal for shared replicated state UI Support Widget creation is optional and feature-dependent * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#related-pages) Related Pages --------------------------------------------------------------------------------------------------------------------------------------------------- Page Description Reality Game Data Stores default game features Reality GameMode Main GameMode that can use features Reality Team Team instance that can store team feature objects Reality Game Phase Can interact with modular features during phase flow [PreviousGame Feature Systemchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system) [NextGameFeatureClientObjectchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeatureclientobject) Last updated 21 days ago * [Reality Game Feature Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#reality-game-feature-data) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#overview) * [Object Types](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#object-types) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#properties) * [Initialization Lifecycle](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#initialization-lifecycle) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#events) * [Client Lifecycle](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#client-lifecycle) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#events-1) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#functions) * [Team Lifecycle](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#team-lifecycle) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#events-2) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#functions-1) * [Feature Architecture](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#feature-architecture) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#typical-use-cases) * [Blueprint Events Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#blueprint-events-summary) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/game-feature-system/gamefeaturedata#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # Compatability | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#compatibility) Compatibility ------------------------------------------------------------------------------------------------------------------------------------------- When a gamemode needs to find maps that work with it, the system checks the metadata tags your map was published with — no map loading required. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#how-it-works) How It Works Each gamemode defines what it needs: * **Requirement groups** — e.g., "I need spawns (player or team) AND a navmesh" * **Threshold counts** — e.g., "I need at least 16 spawns" Each map publishes what it provides: * **Requirement flags** — e.g., `RGR_PLAYER_SPAWNS = true` means the map meets the recommended minimum for our default gamemodes * **Threshold flags** — e.g., `RGR_PLAYER_SPAWNS_16 = true` means the map has at least 16 spawns * **Group flags** — e.g., `RGR_GROUP_SPAWNS = true` means the Spawns group is fully satisfied The system matches gamemodes to maps by checking these tags. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#matching-rules) Matching Rules All of a gamemode's requirement groups must be satisfied. Within each group: * **OR groups** (like Spawns) — the map needs to match **at least one** requirement in the group. A map with only player spawns still works for a gamemode that accepts either player or team spawns. * **AND groups** (like World) — the map needs to match **every** requirement in the group. The system checks group-level tags first (fast path). If those aren't found, it falls back to checking individual requirement tags. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#threshold-matching) Threshold Matching Thresholds let gamemodes filter maps by capacity. If a gamemode requires 16 player spawns, it looks for the `RGR_PLAYER_SPAWNS_16` tag. Your map only gets that tag if it actually has 16 or more spawn points. This means: * A map with 8 spawns won't show up for a 16-player gamemode * A map with 20 spawns will show up for 8-player and 16-player gamemodes * Adding more spawns and re-publishing makes your map compatible with larger gamemodes ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#what-makes-a-map-compatible) What Makes a Map Compatible Here's a quick reference for what a typical gamemode expects: Gamemode Needs Your Map Needs Player spawns `RealityPlayerStart` actors (at least the gamemode's threshold) Team spawns `RealityPlayerStart` actors assigned to teams via `TeamIndex` NavMesh An `NavMeshBoundsVolume` covering the playable area AI support Both spawns and navmesh (AI Compatible is automatic) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#maximizing-compatibility) Maximizing Compatibility To make your map work with the most gamemodes: 1. **Add both player spawns and team spawns** — this satisfies gamemodes that use either system 2. **Place plenty of spawns** — hitting higher thresholds (16, 32, 64) makes your map eligible for large-player-count gamemodes 3. **Add a NavMesh volume** — this enables AI-based gamemodes and gives you the AI Compatible tag for free 4. **Distribute team spawns evenly** — make sure each team has enough spawns (at least 6 per team by default) [PreviousRequirements Referencechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference) [NextPublishing & Validationchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation) Last updated 17 days ago * [Compatibility](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#compatibility) * [How It Works](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#how-it-works) * [Matching Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#matching-rules) * [Threshold Matching](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#threshold-matching) * [What Makes a Map Compatible](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#what-makes-a-map-compatible) * [Maximizing Compatibility](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability#maximizing-compatibility) sun-brightdesktopmoon sun-brightdesktopmoon --- # Control Device | Documentation | Beyond Sandbox [PreviousIngame Propertychevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/ingame-property) [NextVirtual Screenchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/virtual-screen) sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox Reality Asset Data (Data Asset) refers to data assets that represent content within the game and are essential for sandbox mode. This allows you to configure and modify parameters for your actors, game mode, skins, etc., at runtime. Most systems are designed to use RealityAssetData to make the game as modifiable as possible. Once in-game, you can create derivatives of existing data assets, and then modify them directly within the game; they will be shared over the network by the server and saved. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252F3QiVBn409lLyTKMnFeSE%252Fimage.png%3Falt%3Dmedia%26token%3Db07e9567-7372-457b-916b-f3518481dac8&width=768&dpr=3&quality=100&sign=78e6966d&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FK1Zm6OvH9MdCh0xcQWsv%252Fimage.png%3Falt%3Dmedia%26token%3Df2976e2a-0a6a-4060-bfc3-5fa4323b00d8&width=768&dpr=3&quality=100&sign=51654edc&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FZkiACt30q1WFoqanL7wK%252Fimage.png%3Falt%3Dmedia%26token%3Df9c7602c-a964-4773-8da7-f7633c1d839a&width=768&dpr=3&quality=100&sign=4bd93a86&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FkE7zhvLdQ3nqzfBQLILa%252Fimage.png%3Falt%3Dmedia%26token%3D96fb883f-5fdf-43ce-8779-277e1434ab51&width=768&dpr=3&quality=100&sign=dc7e5fa1&sv=2) [PreviousMap Requirements Panelchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel) [NextNative Data Classchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class) Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Native Widget | Documentation | Beyond Sandbox [Panelchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/panel) [Commonchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/common) [Materialchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/material) [Ingame Propertychevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/ingame-property) [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/overview) [NextPanelchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/panel) sun-brightdesktopmoon sun-brightdesktopmoon --- # Panel | Documentation | Beyond Sandbox [PreviousNative Widgetchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget) [NextCommonchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/common) sun-brightdesktopmoon sun-brightdesktopmoon --- # Common | Documentation | Beyond Sandbox [PreviousPanelchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/panel) [NextMaterialchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/material) sun-brightdesktopmoon sun-brightdesktopmoon --- # Game Context | Documentation | Beyond Sandbox [PreviousActor Spawningchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/actor-spawning) [NextRuntime Datachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/runtime-data) sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox [PreviousRuntime Datachevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/runtime-data) [NextNative Widgetchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget) sun-brightdesktopmoon sun-brightdesktopmoon --- # Troubleshooting & Reporting Bugs | Documentation | Beyond Sandbox ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/misc/troubleshooting-and-reporting-bugs#how-to-report-a-bug-that-causes-your-mod-to-not-work) How to report a bug that causes your mod to not work: When reporting a bug, make sure to collect your data and send it along with the bug report. To collect your data, open the RealityRibbon, with the bugged mod selected, select "Collect Data", this will open your file explorer with the collected data JSON. Send that along with your bug report. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FfXKHU32R1SRyZLKgyotB%252Fimage.png%3Falt%3Dmedia%26token%3D395e8056-34c9-4506-b077-3fc3e42f093c&width=768&dpr=3&quality=100&sign=b1f86003&sv=2) * * * [PreviousReality Asset Edit Interfacechevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/reality-asset-edit-interface) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/sandbox/overview) Last updated 1 day ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Create New Data Class | Documentation | Beyond Sandbox You can create your own classes derived from RealityAssetData to add custom editable properties or custom types. You can create a child class from any of Reality's native classes. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#create-new-data-class) Create New Data Class --------------------------------------------------------------------------------------------------------------------------------------------------------------- ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FhWQFC7E6O77DGOFG7K6B%252Fimage.png%3Falt%3Dmedia%26token%3D4bff8a7e-112e-4e4c-8401-dfc737140211&width=768&dpr=3&quality=100&sign=1b5c0d5e&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FnnjNq1YiHqDDJXyo273X%252Fimage.png%3Falt%3Dmedia%26token%3D397d978d-1bf4-481c-817c-1eb85747e2bc&width=768&dpr=3&quality=100&sign=5026f300&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FH14ttuYsu3ckhsgunyyF%252Fimage.png%3Falt%3Dmedia%26token%3Dc90786d9-64d9-42dd-b1f7-2a2cc97944b1&width=768&dpr=3&quality=100&sign=a7a2e61e&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FffOW8nmc1qzyNI04s0lY%252Fimage.png%3Falt%3Dmedia%26token%3De027e60e-c929-458a-b24c-430306139392&width=768&dpr=3&quality=100&sign=c0c5fcc&sv=2) We're going to create a derivative of Reality Actor Data ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FfWC7xLeuuFpikaGh2ZXY%252Fimage.png%3Falt%3Dmedia%26token%3D1a0933ea-5d4b-49fa-9b09-8a3bc917e7fe&width=768&dpr=3&quality=100&sign=119ca32b&sv=2) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#native-class-property) Native Class Property : ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FlknWe5maUt3ep5KTEcTt%252Fimage.png%3Falt%3Dmedia%26token%3D3f98ba05-b3f3-4ae2-a4fa-b737e044c48d&width=768&dpr=3&quality=100&sign=212b9eef&sv=2) Here you will find the parameters of your class that will be used by the asset system. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#custom-widget-for-your-class) Custom Widget for your class You can assign custom widgets that will be used by the asset browser, allowing you to display or add additional viewing options; they will be instantiated each time you have that class displayed in the AssetContentBrowser in-game. * **CustomDetailWidgetClass** : Display in the detail panel of the asset browser. * **CustomIconActionWidgetClass** : Will be displayed on the Thumbnail in the asset browser, WARNING, it is recommended to display your widget in the top left with an overlay, and small so as not to block interaction with the basic button. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#override-native-function) Override Native Function You can override the native functions of the class you are using, if they are available, such as in the RealityActorData class. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FIER55kc6HBe2oLk7gYBJ%252Fimage.png%3Falt%3Dmedia%26token%3Da5842dde-e728-4bb2-a58b-2535910bebe9&width=768&dpr=3&quality=100&sign=ac156198&sv=2) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#create-data-asset) Create Data Asset ------------------------------------------------------------------------------------------------------------------------------------------------------- Once your class is created and configured, to add instances you must go through the classic data asset creation process. ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FISuR4rhOSAR3yqGIiHXV%252Fimage.png%3Falt%3Dmedia%26token%3D6332d63f-1859-4b21-a600-0c0802717bf0&width=768&dpr=3&quality=100&sign=89ad49f7&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252Fmmfm6DKZ32LTfZjmrz8p%252Fimage.png%3Falt%3Dmedia%26token%3Dc4f45011-280f-4074-807d-f86cdb4babcc&width=768&dpr=3&quality=100&sign=16186283&sv=2) ![](https://beyond-sandbox.gitbook.io/realitysdk/~gitbook/image?url=https%3A%2F%2F2931449311-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYleV5RbOUz0IHfYLEfwM%252Fuploads%252FFVSAHIs9MJ6ZsUCQfQeE%252Fimage.png%3Falt%3Dmedia%26token%3D3e3d5d34-0f70-4b25-88c0-b7487cce31d4&width=768&dpr=3&quality=100&sign=c543e307&sv=2) [PreviousCommon Assetchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/common-asset) [NextRuntime Editing Propertychevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/runtime-editing-property) Last updated 1 month ago * [Create New Data Class](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#create-new-data-class) * [Native Class Property :](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#native-class-property) * [Custom Widget for your class](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#custom-widget-for-your-class) * [Override Native Function](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#override-native-function) * [Create Data Asset](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/create-new-data-class#create-data-asset) sun-brightdesktopmoon sun-brightdesktopmoon --- # Requirements Reference | Documentation | Beyond Sandbox ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#player-spawns) Player Spawns The most common requirement. Your map needs at least one `RealityPlayerStart` actor for players to spawn into. Requirements Meets Requirements Sublevel `RGR_PLAYER_Spawns` Actor `RealityPlayerStart` Hard Minimum 1 Recommended 10 #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#thresholds) Thresholds The recommended count of 10 is the minimum our default gamemodes require -= your map won't get the `RGR_Player_Spawns` tag unless it meets this count. Beyond that, thresholds determine which gamemodes consider your map compatible based on player count support: Requirements Meets Requirements 1 Minimum viable (hard minimum) 2 Supports 2-player modes 8 Supports up to 8 players 16 Supports up to 16 players 32 Supports up to 32 players 64 Supports up to 64 players If your map has 20 spawn points, it qualifies for a 1,2,8 and 16 thresholds. A gamemode that needs 32-player support won't consider your map compatible. #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#gameplay-tag-filtering) Gameplay Tag Filtering Spawn points can be filtered by gameplay tags. If a gamemode requires spawn tagged with specific tags (eg. `Spawns.VIP`), only spawns matching those tags are counted. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#team-player-spawns) Team Player Spawns For team-based gamemodes. Each `RealityPlayerStart` is assigned to one or more teams via its `TeamIndex` property. Requirements Meets Requirements Sublevel `RGR_TEAM_PLAYER_SPAWNS` Actor `RealityPlayerStart` Hard Minimum 2 (Total) Recommended 16 (Total), 6 per team, at least 2 teams Like player spawns, team spawns can be on the persistent level or the sublevel. #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#whats-checked) What's Checked Three things are validated: * **Total spawn count** - at least 16 across all teams * **Number of teams** - at least 2 distinct teams represented * **Spawn per team** - at least 6 spawns for each team All three must pass for the requirement to be fully met. Threshold Meaning 2 Minimum viable 4 Small team modes 8 Supports up to 8 total players 16 Supports to 16 total players 32 Supports to 32 total players 64 Supports up to 64 total players 128 Large-scale team modes #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#setting-up-team-spawns) Setting Up Team Spawns Each `RealityPlayerStart` has a `TeamIndex` array. Assign each spawn to a team (Team1, Team2, etc..). Make sure to spread spawns across teams - a map with 16 spawns all on Team1 won't pass the per-team or team-count checks. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#navmesh) NavMesh Required for AI navigation. Your map needs at least one `NavMeshBoundsVolume` Requirement Meets Requirements Sublevel (None - world-level requirement) Actor `NavMeshBoundsVolume` Hard Minimum (none) Recommended 1 NavMesh is a **world-level requirement** - it doesn't have its own sublevel. The volume can be anywhere in the persistent level or any streaming level. The volume defines the area where the engine builds navigation data for AI. After placing one, resize it to cover your map's playable area and rebuild navigation. * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#requirement-groups) Requirement Groups Requirements are organized into groups. Gamemodes require **all groups** to be satisfied, but within each group the logic varies: #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#spawns-or) Spawns (OR) Contains: Player Spawns, Team Player Spawns Your map needs **either** player spawns **or** team spawns (or both). A free-for-all map only needs regular spawns. A team deathmatch map only needs team spawns. Either satifies the Spawns group. #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#world-and) World (AND) Contains: NavMesh Your map needs **all** requirements in this group. Currently that's just NavMesh, but additional world-level requirements may be added in the fiture. #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#ai-compatible-composite) AI Compatible (composite) This isn't a requirement you satisfy directly. Your map is automatically tagged as AI Compatible when both the Spawns and World groups are satisfied - meaning you have spawn points and a navmesh. Gamemodes that use AI bots look for this tag [PreviousMap Requirementschevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements) [NextCompatabilitychevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability) Last updated 17 days ago * [Player Spawns](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#player-spawns) * [Team Player Spawns](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#team-player-spawns) * [NavMesh](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#navmesh) * [Requirement Groups](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/requirements-reference#requirement-groups) sun-brightdesktopmoon sun-brightdesktopmoon --- # Map Requirements Panel | Documentation | Beyond Sandbox The **Map Requirements panel** is your main tool for checking whether your map meets gamemode requirements. It shows you what's needed, what you have, and lets you auto-populate missing actors. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#opening-the-panel) Opening the Panel Open it from the Reality Editor toolbar. It also opens automatically if validation fails because of missing spawns. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#what-youll-see) What You'll see The panel shows a list of requirement groups and their individual requirements: * * * Spawns (OR) Copy Spawns (OR) [Satisfy] ● Player Starts 12 / >= 10 ✓ [+] ○ Team Player Starts 0 / >= 16 — [+] Thresholds: _1 ✓ _2 ✓ _8 ✓ _16 ✗ World (AND) [Satisfy] ● NavMesh 1 / >= 1 ✓ [+] Each row shows: * **Name** — which requirement this is * **Count** — how many actors you have vs. how many are recommended (e.g., `12 / ≥ 10`) * **Status —** green check if met, gray if unmet * **Thresholds** — which player-count tiers your map qualifies for For team spawns, you'll also see a per-team breakdown showing how many spawns each team has. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#status-colors) Status Colors Color Meaning Green Met Gray Not met (warning only - you can still publish) Red Hard minimum not met (blocks publishing) ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#actions) Actions * **Refresh** Re-scans your map and updates all counts. Use this after you've placed or remove actors. * **Add (+)** Adds the RGR\_ sublevel for a requirement without placing any actors. Use this if you want to set up the sublevel and place actors manually. * **Add & Populate** Adds the sublevel and spawns actors to meet the recommended count: -> **Player Spawns** - `RealityPlayerStart` actors in a grid -> **TeamSpawns -** places spawns split evenly between Team 1 and Team 2 **\-> NavMesh** \- places a large `NavMeshBoundsVolume` * **Satisfy Group** Runs Add & Populate for every unmet requirement in a group. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#typical-workflow) Typical Workflow #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#new-map) New Map 1. Open the Map Requirements panel 2. Click **Satisfy** on each group to create sublevels and populate starter actors 3. Move spawn points to good locations in your map 4. Resize the NavMesh volume to cover playable areas 5. Click **Refresh** to verify everything is met 6. Publish - your map is automatically tagged with what it supports! #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#adding-team-support-to-an-existing-map) Adding Team Support to an Existing map 1. Open the panel 2. Click **+** next to Team Player Starts 3. Place `RealityPlayerStart` actors and assign them to teams via the `TeamIndex` property 4. Make sure you have at least 2 teams with 6+ spawns each 5. Refresh and publish #### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#increasing-player-count-support) Increasing Player Count Support If your map only qualifies for 8-player gamemodes and you want to support 16: 1. Add more spawn points until you have at least 16 2. Refresh the panel - the threshold display will update 3. Re-publish to update your map's tags. [PreviousPublishing & Validationchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation) [NextOverviewchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/overview) Last updated 17 days ago * [Opening the Panel](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#opening-the-panel) * [What You'll see](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#what-youll-see) * [Status Colors](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#status-colors) * [Actions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#actions) * [Typical Workflow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel#typical-workflow) sun-brightdesktopmoon sun-brightdesktopmoon --- # Publishing & Validation | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#publishing-and-validation) Publishing & Validation ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- When you publish a map mod, the editor validates your map against all known requirements and tags your mod with metadata so gamemodes can find it. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#what-happens-when-you-publish) What Happens When You Publish 1. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#sublevel-scan) Sublevel Scan The editor scans your mod's content for `.umap` files and checks which RGR\_ sublevels exist. 2. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#spawn-check) Spawn Check \-> `RGR_PLAYER_SPAWNS` sublevel, or -> `RGR_TEAM_PLAYER_SPAWNs` sublevel If neither exists, publishing is blocked and the Map Requirements panel opens. This is a hard gate - every map needs spawn points. 3. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#requirement-validation) Requirement Validation For each requirement that has a matching sublevel (or is a world-level requirement like NavMesh): -> **Hard minimum check** — if you're below the absolute minimum (e.g., 0 spawn points), publishing is blocked. You cannot override this. -> **Recommended count check** — if you're below the recommended count, you'll see a warning dialog: --> **Yes** = continue publishing anyway --> **No** = open the Map Requirements panel to fix it 4. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#metadata-tagging) Metadata Tagging Your map is tagged with: -> **Requirements** — e.g., `RGR_PLAYER_SPAWNS = true` means your map meets the recommended count for player spawns — the minimum our default gamemode expect. This tag is only set when the recommended count is met, not just because the sublevel exists. -> **Threshold Flags** — e.g., `RGR_PLAYER_SPAWNS_16 = true` means your map has at least 16 spawns. Each threshold you meet adds another tag, so gamemodes can filter by player count. -> **Group flags** — e.g., `RGR_GROUP_SPAWNS = true` means the entire Spawns group is satisfied. -> **Exact Counts —** e.g., `PlayerStarts = 18` ,`Teams = 2` These tags are published to mod.io as custom KVPs and are used by gamemodes to find compatible maps. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#publishing-without-the-map-open) Publishing Without the Map Open If you publish a map that isn't currently open in the editor, the validator can't count actors live. Instead: * If you've published this map before and the files haven't changed, the cached metadata from last time is reused. * If the files have changed since the last validation, you'll get a warning suggesting you open the map and re-publish for accurate metadata. * If there's no cached metadata at all, you'll be warned that metadata won't be generated. For the most accurate results, have the map open in the editor when you publish. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#settings) Settings Setting Default What It Does Validate Map Requirements On Show the warning dialog for unmet recommended counts. Turn off to skip the prompt. Suppress Stale Metadata Warning Off Skip the warning when publishing a map that isn't open in the editor. [PreviousCompatabilitychevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/compatability) [NextMap Requirements Panelchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/map-requirements-panel) Last updated 17 days ago * [Publishing & Validation](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#publishing-and-validation) * [What Happens When You Publish](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#what-happens-when-you-publish) * [Publishing Without the Map Open](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#publishing-without-the-map-open) * [Settings](https://beyond-sandbox.gitbook.io/realitysdk/documentation/level/map-requirements/publishing-and-validation#settings) sun-brightdesktopmoon sun-brightdesktopmoon --- # Material | Documentation | Beyond Sandbox [PreviousCommonchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/common) [NextIngame Propertychevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/ingame-property) sun-brightdesktopmoon sun-brightdesktopmoon --- # Ingame Property | Documentation | Beyond Sandbox [PreviousMaterialchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/native-widget/material) [NextControl Devicechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/control-device) sun-brightdesktopmoon sun-brightdesktopmoon --- # Team Instance | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#reality-team) Reality Team ---------------------------------------------------------------------------------------------------------------------------------------- `Reality Team` is the runtime team instance used during gameplay. Teams are identified by a **Team Index**, and during the game an actual **Team Instance** object is created for each active team. This object is responsible for: * storing team players, * tracking team score, * reacting to player death and spawn, * handling team limits, * managing feature objects and additional objects. > Use `Reality Team` when you need to interact with a team during gameplay. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#overview) Overview -------------------------------------------------------------------------------------------------------------------------------- Feature Description Team Identity Each team instance is linked to a Team Index Player Tracking Stores and manages players currently assigned to the team Score System Handles team score updates and score events Spawn & Death Reactions Reacts when team players spawn or die Team Elimination Detects when all players in the team are dead Player Limit Supports max player count per team Feature Objects Can store team-related feature objects Additional Objects Can register extra network objects related to the team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#team-identity) Team Identity ------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions) Functions Name Type Description Inputs Outputs Get Team Index Callable Returns the Team Index assigned to this team instance — Team Index Get Team Definition Callable Returns the Team Definition associated with this team — Team Definition * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#team-lifecycle) Team Lifecycle -------------------------------------------------------------------------------------------------------------------------------------------- These events are used when the team instance is initialized or shut down. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#events) Events Name Type Description Inputs On Team Instance Init Event Called when the team instance is initialized — On Team Instance End Event Called when the team instance is deinitialized — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#player-management) Player Management -------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#player-access) Player Access Name Type Description Inputs Outputs Get Players Callable Returns all players currently assigned to this team — Player State Array Has Player Callable Checks if a character belongs to this team Character Boolean Get Player Count Callable Returns the current number of players in the team — Integer * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#events-1) Events Name Type Description Inputs On Join Player In Team Event Dispatcher Triggered when a player joins the team Team, Player State On Exit Player In Team Event Dispatcher Triggered when a player leaves the team Team, Player State * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#team-spawn-and-death-events) Team Spawn & Death Events -------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#spawn-events) Spawn Events Name Type Description Inputs On Player Of Team Is Spawned Event Called when a player from this team spawns Player State, Player Character On Player Spawned Event Dispatcher Triggered when a player from this team spawns Team, Player State, Player Character * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#death-events) Death Events Name Type Description Inputs On Player Of Team Is Die Event Called when a player from this team dies Player State On All Player Is Death Event Called when all players in the team are dead — On All Player In Team Is Death Event Dispatcher Triggered when all players in the team are dead Team * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-1) Functions Name Type Description Inputs Outputs Kill Team Callable Kills all players currently assigned to this team — — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#score-system) Score System ---------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-2) Functions Name Type Description Inputs Outputs Set Score Callable Sets the current score of the team Value — Add Score Callable Adds score to the team Score To Add — Remove Score Callable Removes score from the team Score To Remove — Reset Score Event Resets the score of the team — — Get Score Callable Returns the current score of the team — Float On Score Set Event Called when a new score is set New Value Float * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers) Event Dispatchers Name Description Outputs On Team Score Change Triggered when the team score changes Team, Old Score, New Score * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#player-limit) Player Limit ---------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-3) Functions Name Type Description Inputs Outputs Override Max Player In Team Callable Overrides the maximum allowed players in this team New Max — Get Max Player In Team Callable Returns the max allowed players in this team — Integer Get Team Have Player Limit Callable Returns whether the team has a player limit — Boolean ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers-1) Event Dispatchers Name Description Outputs On Max Player Change Triggered when the max player limit changes Team, Old Value, New Value * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#additional-objects) Additional Objects ---------------------------------------------------------------------------------------------------------------------------------------------------- A team can store extra objects related to its runtime state. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-4) Functions Name Type Description Inputs Outputs Add Additional Object Callable Adds an extra object to this team Net Object — Remove Additional Object Callable Removes an extra object from this team Net Object — Clear Additional Object Callable Clears all extra objects attached to this team — — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#feature-objects) Feature Objects ---------------------------------------------------------------------------------------------------------------------------------------------- Feature Objects are team-specific runtime objects attached to the team. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-5) Functions Name Type Description Inputs Outputs Get Feature Object Exists Callable Checks whether a feature object exists on this team Feature Class Boolean Get Feature Object Callable Returns a feature object from this team Feature Class Feature Object ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers-2) Event Dispatchers Name Description On Feature Object Updated Triggered when the team feature object list changes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#registry) Registry -------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#properties) Properties Name Type Description Generic Registry Registry Container Server-side generic registry for storing custom runtime team data > This registry can be used to store team-related runtime information. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#blueprint-events-summary) Blueprint Events Summary ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Name Description On Team Instance Init Called when the team is initialized On Team Instance End Called when the team is deinitialized On Player Of Team Is Die Called when one player in the team dies On All Player Is Death Called when all players in the team are dead On Player Of Team Is Spawned Called when one player in the team spawns On Score Set Called when a new score is set Reset Score Resets the team score * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers-summary) Event Dispatchers Summary ------------------------------------------------------------------------------------------------------------------------------------------------------------------ Name Description On Join Player In Team Triggered when a player joins the team On Exit Player In Team Triggered when a player leaves the team On Team Score Change Triggered when team score changes On Max Player Change Triggered when max player count changes On All Player In Team Is Death Triggered when the whole team is dead On Player Spawned Triggered when a team player spawns On Feature Object Updated Triggered when feature objects are updated * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#typical-use-cases) Typical Use Cases -------------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Nodes Get all players in a team Get Players, Get Player Count Check if a player belongs to a team Has Player Update score during gameplay Set Score, Add Score, Remove Score, Reset Score React to player deaths inside a team On Player Of Team Is Die, On All Player Is Death Detect full team elimination On All Player In Team Is Death Limit the number of players in a team Override Max Player In Team, Get Team Have Player Limit Attach extra team-specific objects Add Additional Object, Remove Additional Object Use modular team features Get Feature Object Exists, Get Feature Object * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#notes) Notes -------------------------------------------------------------------------------------------------------------------------- Topic Note Team Index Each team instance is linked to a Team Index Runtime Instance This object represents the active in-game version of a team Team Definition A team can reference a Team Definition, but that is documented separately Main Usage Use this object whenever you need to interact with a team during gameplay * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#related-pages) Related Pages ------------------------------------------------------------------------------------------------------------------------------------------ Page Description Reality GameMode Main GameMode used to create and manage team instances Reality GameMode Base Base gameplay flow and player lifecycle systems Reality Team Definition Data used to configure team behavior Reality Game Phase Phase object used for phase-based progression [PreviousTeam Definitionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-definition) [NextSpawn APIchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/spawn-api) Last updated 21 days ago * [Reality Team](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#reality-team) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#overview) * [Team Identity](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#team-identity) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions) * [Team Lifecycle](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#team-lifecycle) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#events) * [Player Management](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#player-management) * [Player Access](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#player-access) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#events-1) * [Team Spawn & Death Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#team-spawn-and-death-events) * [Spawn Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#spawn-events) * [Death Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#death-events) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-1) * [Score System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#score-system) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-2) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers) * [Player Limit](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#player-limit) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-3) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers-1) * [Additional Objects](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#additional-objects) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-4) * [Feature Objects](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#feature-objects) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#functions-5) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers-2) * [Registry](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#registry) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#properties) * [Blueprint Events Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#blueprint-events-summary) * [Event Dispatchers Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#event-dispatchers-summary) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#typical-use-cases) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/teams-system/team-instance#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # Device Scalability | Documentation | Beyond Sandbox [Quest 2chevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/quest-2) [Quest 3s/3chevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/quest-3s-3) [PCVRchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/pcvr) [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/overview) [NextQuest 2chevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/quest-2) sun-brightdesktopmoon sun-brightdesktopmoon --- # Overview | Documentation | Beyond Sandbox [PreviousVirtual Screenchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/ui/virtual-screen) [NextDevice Scalabilitychevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability) sun-brightdesktopmoon sun-brightdesktopmoon --- # GameMode API | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#reality-gamemode) Reality GameMode ----------------------------------------------------------------------------------------------------------------------------------------------- `Reality GameMode` is the main gameplay GameMode used in most projects. It extends **Reality GameMode Base** and adds support for: * Teams * Team definitions * Team scores * Team assignment * AI spawning * Phase updates * Round and team-based gameplay flow > Use this class when your game needs team management, score handling, and phase-based gameplay. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#overview) Overview ------------------------------------------------------------------------------------------------------------------------------- Feature Description Teams Create, remove, and manage team instances Team Definitions Configure team setup and override team definitions Team Scores Read, update, reset, and broadcast team scores Team Assignment Assign players manually or automatically AI Support Spawn AI characters and assign them to teams Phase Updates Receive updates when the active phase changes Team Elimination Events Detect when all players of a team are dead * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#inheritance) Inheritance ------------------------------------------------------------------------------------------------------------------------------------- Class Description Reality GameMode Base Base gameplay flow, spawning, respawn, events, game lifecycle Reality GameMode Adds teams, score system, AI spawning, and phase management helpers * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#ai) AI ------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions) Functions Name Type Description Inputs Outputs Spawn AI Callable Spawns an AI character and assigns it to a team AI Character Class, Team Index, Transform AI Character * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-definitions) Team Definitions ----------------------------------------------------------------------------------------------------------------------------------------------- Team Definitions describe how each team should be configured. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-1) Functions Name Type Description Inputs Outputs Get Teams Definition Callable Returns all team definitions — Team Definitions Map Get Team Definition Callable Returns the definition for a specific team Team Index Team Definition Set Team Definition Callable Overrides the definition for a specific team Team Index, Team Definition — Reset Team Definition To Default Callable Restores the default definition for a specific team Team Index Boolean * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#teams) Teams ------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#properties) Properties Name Type Description Auto Create Team On Init Boolean Automatically creates team instances when the GameMode initializes ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-2) Functions Name Type Description Inputs Outputs Auto Init Team By Settings Callable Creates team instances from current settings — — Create Teams List Index Callable Creates a list of team indexes from a number of teams Number Of Team Team Index Array Create Teams List Index From Settings Callable Creates a list of team indexes using the configured team count from settings — Team Index Array Clear Teams Callable Removes all team instances — — Create New Team Callable Creates a new team instance using the provided team index Team Index Team Get Team Exist Callable Checks whether a team exists for a given index Team Index Boolean Get Team Instance Callable Returns the team instance for a given index Team Index Team Get Teams Instances Callable Returns all active team instances — Team Array Get Team Indexes Callable Returns all currently used team indexes — Team Index Array Remove Team By Index Callable Removes a team using its team index Team Index Boolean Remove Team Callable Removes a team using its team instance Team Boolean * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-scores) Team Scores ------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-3) Functions Name Type Description Inputs Outputs Get Team Score Callable Returns the current score of a team Team Index Float Set Team Score Callable Sets the score of a team Team Index, Value Float Add Score To Team Callable Adds score to a team Team Index, Score To Add Float Remove Score To Team Callable Removes score from a team Team Index, Score To Remove Float Reset Team Score Callable Resets a team score to 0 Team Index — Reset Teams Score Callable Resets all team scores to 0 — — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-elimination) Team Elimination ----------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-4) Functions Name Type Description Inputs Outputs Kill Team Callable Kills all players currently assigned to a team Team Index — ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events) Events Name Type Description Inputs On All Player Of Team Is Death Event Called when all players in a team are dead Team ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers) Event Dispatchers Name Description Outputs On All Player Of Team Is Death Broadcast when all players of a team are dead Team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-assignment) Team Assignment --------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-5) Functions Name Type Description Inputs Outputs Assign Team For Player Callable Assigns a specific team to a player Player Controller, Team Index — Auto Assign Team For Player Callable Automatically assigns a team to a player Player Controller — Auto Assign Team For All Players Callable Automatically assigns teams to all players — — Get All Players Callable Returns all players currently known by the GameMode — Player Controller Array Auto Add Players In Teams Callable Automatically adds players into their assigned team instances — — Get Team Players Callable Returns all players assigned to a specific team Team Index Player Controller Array Reset Team For Player Callable Removes the team assignment from a player Player Controller — Reset Team For Players Callable Removes the team assignment from multiple players Player Controller Array — Reset Team For All Player Callable Removes the team assignment from all players — — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#phase-system) Phase System --------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-6) Functions Name Type Description Inputs Outputs Check Phase Transitions Callable Checks whether the current phase should end and move to the next one — — ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events-1) Events Name Type Description Inputs On Update Phase Event Called when the active phase changes Phase ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-1) Event Dispatchers Name Description Outputs On Update Phase Broadcast when the active phase changes Phase * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#score-events) Score Events --------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events-2) Events Name Type Description Inputs On Update Score Event Called when a team score changes Team, Old Score, New Score ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-2) Event Dispatchers Name Description Outputs On Update Score Broadcast when a team score changes Team, Old Score, New Score * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-creation-events) Team Creation Events ------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events-3) Events Name Type Description Inputs On Pre Init New Team Event Called before a new team is initialized Team Index, Team On Team Created Event Called after a team has been created Team Index, Team ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-3) Event Dispatchers Name Description Outputs On Teams Auto Init From Settings Broadcast after teams are initialized from settings Team Array On Pre Init New Team Broadcast before a new team is initialized Team On Team Created Broadcast after a team is created Team On Team Removed Broadcast after a team is removed Team Index * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#utility) Utility ----------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-7) Functions Name Type Description Inputs Outputs Get Reality GameMode Callable Returns the current Reality GameMode from a world context World Context Reality GameMode Get Team Instance Class Callable Returns the team instance class used by this GameMode — Team Class * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#blueprint-events-summary) Blueprint Events Summary --------------------------------------------------------------------------------------------------------------------------------------------------------------- Name Description On Pre Init New Team Called before a new team is initialized On Team Created Called after a team is created On All Player Of Team Is Death Called when all players in a team are dead On Update Phase Called when the active phase changes On Update Score Called when a team score changes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-summary) Event Dispatchers Summary ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Name Description On Update Phase Triggered when the active phase changes On Update Score Triggered when a team score changes On Teams Auto Init From Settings Triggered when teams are initialized from settings On Team Created Triggered when a team is created On Team Removed Triggered when a team is removed On Pre Init New Team Triggered before a new team is initialized On All Player Of Team Is Death Triggered when all players in a team are dead * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#typical-use-cases) Typical Use Cases ------------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Nodes Create a team-based game mode Auto Init Team By Settings, Create New Team, Assign Team For Player Auto-balance players across teams Auto Assign Team For Player, Auto Assign Team For All Players Update team scores during gameplay Add Score To Team, Set Team Score, Reset Teams Score Detect when a team has been eliminated On All Player Of Team Is Death React to phase changes On Update Phase, Check Phase Transitions Spawn bots for a specific team Spawn AI * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#notes) Notes ------------------------------------------------------------------------------------------------------------------------- Topic Note Main usage This is the GameMode class you will usually use in production Team system Team features are built directly into this class Score system Team score updates can be handled both manually and through events Blueprint workflow Best used as the main Blueprint parent for team-based game modes * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#related-pages) Related Pages ----------------------------------------------------------------------------------------------------------------------------------------- Page Description Reality GameMode Base Core lifecycle, player flow, spawn, respawn, and shared game systems Reality Team Team instance object used by the GameMode Reality Team Definition Data used to define team behavior and configuration Reality Game Phase Active phase object used during phase-based progression [PreviousGameModeBase APIchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemodebase-api) [NextCreate Gamemodechevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/create-gamemode) Last updated 22 days ago * [Reality GameMode](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#reality-gamemode) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#overview) * [Inheritance](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#inheritance) * [AI](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#ai) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions) * [Team Definitions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-definitions) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-1) * [Teams](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#teams) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#properties) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-2) * [Team Scores](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-scores) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-3) * [Team Elimination](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-elimination) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-4) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers) * [Team Assignment](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-assignment) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-5) * [Phase System](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#phase-system) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-6) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events-1) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-1) * [Score Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#score-events) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events-2) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-2) * [Team Creation Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#team-creation-events) * [Events](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#events-3) * [Event Dispatchers](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-3) * [Utility](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#utility) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#functions-7) * [Blueprint Events Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#blueprint-events-summary) * [Event Dispatchers Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#event-dispatchers-summary) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#typical-use-cases) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/gamemode-api/gamemode-api#related-pages) sun-brightdesktopmoon sun-brightdesktopmoon --- # PCVR | Documentation | Beyond Sandbox [PreviousQuest 3s/3chevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/quest-3s-3) sun-brightdesktopmoon sun-brightdesktopmoon --- # Native Data Class | Documentation | Beyond Sandbox Reality Asset Data is the base class; it contains the essential basic data for the proper functioning of reality systems. This class also allows the system to derive in-game properties and to be directly editable in-game. [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class#native-property-required) Native Property ( Required ) --------------------------------------------------------------------------------------------------------------------------------------------------------------------- * Name ( String ) * Category ( GameplayTag ) * PreviewImage ( Texture2D ) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class#native-function) Native Function ----------------------------------------------------------------------------------------------------------------------------------------------- * **LoadAssetSyncronous** ( Allows synchronous loading of all references stored in the data asset. ) * **LoadAssetAsync** (Allows asynchronous loading of all references stored in the data asset.) * **CollectAssetToLoad** ( Allows retrieval of assets to load.) * **CollectLoadedAsset** ( Allows you to retrieve the asset loads and keep them.) [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class#hierarchical-class) Hierarchical class ----------------------------------------------------------------------------------------------------------------------------------------------------- * Reality Asset Data * Reality Actor Data * Reality Interactable Data * Reality Firearm Data * Reality Revolver Data * Reality Melee Data * Reality Magazine Data * Reality Projectile Data * Reality Round Data * Reality Entity Data * Reality Entity Character Data * Reality Actor Gameplay Data * Reality Entity Controller * Reality CommonAsset * Reality StaticMesh Data * Reality SkeletalMesh Data * Reality Sound Data * Reality VFX Particle Data * Reality VFX Niagara Data * Reality Materrial Data * Reality Texture Data * Reality GameMode Settings Data * Reality Player Character Data * Reality Skin Data * Reality Skin Character Data * Reality Skin Interactable Data [PreviousOverviewchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/overview) [NextActor Datachevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class/actor-data) Last updated 1 month ago * [Native Property ( Required )](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class#native-property-required) * [Native Function](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class#native-function) * [Hierarchical class](https://beyond-sandbox.gitbook.io/realitysdk/documentation/reality-asset-data/native-data-class#hierarchical-class) sun-brightdesktopmoon sun-brightdesktopmoon --- # Quest 2 | Documentation | Beyond Sandbox [PreviousDevice Scalabilitychevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability) [NextQuest 3s/3chevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/quest-3s-3) sun-brightdesktopmoon sun-brightdesktopmoon --- # Quest 3s/3 | Documentation | Beyond Sandbox [PreviousQuest 2chevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/quest-2) [NextPCVRchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/performance/device-scalability/pcvr) sun-brightdesktopmoon sun-brightdesktopmoon --- # Base RPF Function | Documentation | Beyond Sandbox [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reality-player-functions) Reality Player Functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ `Reality Player Functions` are ready-to-use player actions built on top of the Reality execution system. They are designed to work with: * `Reality Player Context` * `Reality Player Function` * player-related gameplay events * game phases and execution containers These functions make it easy to trigger common gameplay actions such as: * spawning a player, * forcing spectate, * killing a player, * assigning character data, * assigning character skins, * assigning teams, * updating player stats. > Use these functions when you want reusable player gameplay actions in Blueprint. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#overview) Overview ---------------------------------------------------------------------------------------------------------------------------------------- Feature Description Player Actions Execute common gameplay actions on a player Context Based Works with `Reality Player Context` Server Oriented Built for authoritative player logic Reusable Can be plugged into phases and gameplay events Ready To Use Includes built-in functions for common gameplay flow * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reality-target-character-data) Reality Target Character Data ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This enum defines where character data or skin data should be selected from. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#available-values) Available Values Name Description From Data Collection Selects from the GameMode Settings collection From Team Definition Selects from the player's assigned team definition Direct Selects from the array provided directly on the function * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#character-data-source-rules) Character Data Source Rules ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Source Description From Data Collection Uses the character or skin collection from `Reality GameMode Settings Data` From Team Definition Uses the character or skin list from the player's assigned team definition Direct Uses the list configured directly in the function instance * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reality-gamemode-player-function-library) Reality GameMode Player Function Library -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This library provides Blueprint-callable helper actions for player-related gameplay. ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#functions) Functions Name Type Description Inputs Outputs RealityGame Set Player To Spectating Callable Sets a player to spectator mode Player — RealityGame Spawn Player Callable Spawns or respawns a player Player, Spawn Type, Start Point Type, As Spectator — RealityGame Kill Player Callable Kills a player Player — RealityGame Set Pending Respawn Callable Adds a delayed respawn to a player Player, Respawn Delay — RealityGame Assign Character Data To Player Callable Assigns character data to a player Player, Data Type, Character Data Array — RealityGame Assign Character Skin To Player Callable Assigns a character skin to a player Player, Data Type, Character Skin Array — RealityGame Auto Assign Team To Player Callable Automatically assigns a team to a player Player — * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#built-in-reality-player-functions) Built-In Reality Player Functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ These are ready-to-use `Reality Player Function` classes built for common player actions. * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spectating) Spectating -------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#set-spectating) Set Spectating Name Type Description Context Required Set Spectating Player Function Sets the target player to spectator mode Player Context * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spawn) Spawn ---------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spawn-1) Spawn Name Type Description Context Required Spawn Player Function Spawns or respawns the target player Player Context ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties) Properties Name Type Description Spawn Type Enum Defines how the spawn location is selected Start Point Type Enum Defines which type of start point can be used As Spectator Boolean Spawns the player as spectator instead of normal player * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#kill) Kill -------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#kill-1) Kill Name Type Description Context Required Kill Player Function Kills the target player Player Context * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#respawn) Respawn -------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#pending-respawn) Pending Respawn Name Type Description Context Required Pending Respawn Player Function Adds a respawn delay to the target player Player Context ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties-1) Properties Name Type Description Respawn Delay Float Delay before the player can respawn * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#character-assignment) Character Assignment ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#assigned-character-data) Assigned Character Data Name Type Description Context Required Assigned Character Data Player Function Assigns character data to the target player Player Context ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties-2) Properties Name Type Description Data Type Enum Defines where the character data is selected from Character Data Array Direct character data list used if `Data Type` is set to `Direct` * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#assigned-character-skin) Assigned Character Skin Name Type Description Context Required Assigned Character Skin Player Function Assigns a character skin to the target player Player Context ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties-3) Properties Name Type Description Data Type Enum Defines where the character skin is selected from Character Skin Array Direct skin list used if `Data Type` is set to `Direct` * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#team-assignment) Team Assignment ------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#auto-assign-team-to-player) Auto Assign Team To Player Name Type Description Context Required Auto Assign Team To Player Player Function Automatically assigns a team to the target player Player Context * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#player-stats) Player Stats ------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#add-kill-stat) Add Kill Stat Name Type Description Context Required Add Kill Stat Player Function Adds one kill to the player's stats Player Context * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#add-death-stat) Add Death Stat Name Type Description Context Required Add Death Stat Player Function Adds one death to the player's stats Player Context * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reset-kda) Reset KDA Name Type Description Context Required Reset KDA Player Function Resets the player's KDA values Player Context * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#common-blueprint-workflows) Common Blueprint Workflows ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#respawn-flow) Respawn Flow Step Action 1 Kill player 2 Add Pending Respawn 3 Spawn player after delay * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#team-based-character-assignment) Team-Based Character Assignment Step Action 1 Assign or auto-assign the player's team 2 Use Assigned Character Data with `From Team Definition` 3 Use Assigned Character Skin with `From Team Definition` 4 Spawn player * * * ### [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spectator-flow) Spectator Flow Step Action 1 Set player to spectating 2 Wait for respawn request or game condition 3 Spawn back as player or spectator * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#typical-use-cases) Typical Use Cases ---------------------------------------------------------------------------------------------------------------------------------------------------------- Use Case Recommended Function Force a player into spectator mode Set Spectating Respawn a player Spawn Kill a player immediately Kill Add a delayed respawn Pending Respawn Assign a random class from settings Assigned Character Data with `From Data Collection` Assign a team-specific class Assigned Character Data with `From Team Definition` Assign a direct list of skins Assigned Character Skin with `Direct` Auto-balance teams Auto Assign Team To Player Update scoreboard stats Add Kill Stat / Add Death Stat Reset player round stats Reset KDA * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#best-practices) Best Practices ---------------------------------------------------------------------------------------------------------------------------------------------------- Recommendation Description Use Player Context These functions are designed to run with a target player Assign team before team-based character selection `From Team Definition` depends on the player already having a team Use Data Collection for global loadouts Good for shared character pools Use Direct mode for custom one-off logic Useful for event-specific or phase-specific assignments Use built-in functions for common gameplay flow Keeps your Blueprint logic cleaner and reusable * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#notes) Notes ---------------------------------------------------------------------------------------------------------------------------------- Topic Note Execution Type These functions are intended for player-related execution Server Logic Best suited for authoritative gameplay actions Random Selection Character data and skins are selected randomly from the chosen source Team Dependency Team-based selection requires the player to already be assigned to a valid team * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#related-pages) Related Pages -------------------------------------------------------------------------------------------------------------------------------------------------- Page Description Reality Player Context Context used to target a specific player Reality Player Function Base class for player-specific functions Reality GameMode Handles spawning, killing, spectating, and team assignment Reality GameMode Settings Data Provides character and skin collections Reality Team Definition Can provide team-based character and skin selection * * * [hashtag](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#summary) Summary -------------------------------------------------------------------------------------------------------------------------------------- Item Description What it is Built-in reusable player gameplay functions Used with Player Context and Player Function Main actions Spawn, kill, spectate, respawn, assign team, assign character, update stats Character source options Data Collection, Team Definition, or Direct [PreviousBase RF Functionchevron-left](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rf-function) [NextCreate New Reality Functionchevron-right](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/create-new-reality-function) Last updated 22 days ago * [Reality Player Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reality-player-functions) * [Overview](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#overview) * [Reality Target Character Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reality-target-character-data) * [Available Values](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#available-values) * [Character Data Source Rules](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#character-data-source-rules) * [Reality GameMode Player Function Library](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reality-gamemode-player-function-library) * [Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#functions) * [Built-In Reality Player Functions](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#built-in-reality-player-functions) * [Spectating](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spectating) * [Set Spectating](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#set-spectating) * [Spawn](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spawn) * [Spawn](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spawn-1) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties) * [Kill](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#kill) * [Kill](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#kill-1) * [Respawn](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#respawn) * [Pending Respawn](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#pending-respawn) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties-1) * [Character Assignment](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#character-assignment) * [Assigned Character Data](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#assigned-character-data) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties-2) * [Assigned Character Skin](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#assigned-character-skin) * [Properties](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#properties-3) * [Team Assignment](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#team-assignment) * [Auto Assign Team To Player](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#auto-assign-team-to-player) * [Player Stats](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#player-stats) * [Add Kill Stat](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#add-kill-stat) * [Add Death Stat](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#add-death-stat) * [Reset KDA](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#reset-kda) * [Common Blueprint Workflows](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#common-blueprint-workflows) * [Respawn Flow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#respawn-flow) * [Team-Based Character Assignment](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#team-based-character-assignment) * [Spectator Flow](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#spectator-flow) * [Typical Use Cases](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#typical-use-cases) * [Best Practices](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#best-practices) * [Notes](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#notes) * [Related Pages](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#related-pages) * [Summary](https://beyond-sandbox.gitbook.io/realitysdk/documentation/gamemode/reality-function/base-rpf-function#summary) sun-brightdesktopmoon sun-brightdesktopmoon ---