LogoLogo
GeneralAccountsPlayersOwnersCreatorsThe Sandbox Website
Creators
Creators
  • 🎆Welcome to the Creator Portal
  • 🟦Learn Creator Basics
    • 🟦Scale & LAND Use
    • 🟦Assets & Equipment
    • 🟦Avatars & Character
    • 🟦Look & Feel
    • 🟦Logic & Gameplay
    • ❓FAQs: Gameplay
    • ❓FAQs: Assets
    • 🧙‍♂️Begin Game Maker (Video Series)
  • The Sandbox Creators Forum
  • The Sandbox DAO
  • 🪙Monetisation
  • Game Maker
    • ✨Create Experiences
    • 🔰Beginners
      • Play/Test
      • Build with Blocks
      • Place Assets
      • Set Object Actions
      • Trigger Logic
      • Craft Quests
      • Set Up Mechanics
      • Build Multiplayer Games
    • Game Maker 0.11 Update
    • 0.11 Upgrade Guide
    • 📖Docs
      • Navigate Game Maker Home
      • Manage Experiences
      • Controls & Shortcuts
      • Build Menus
        • Top Bar
          • Gameplay
        • Side Bar
          • Hierarchy
          • Presets
        • Library & Quick Access Bar
        • Grid System & Snap Tool
        • Properties Panel
      • Using Blocks
      • Using Assets & Objects
        • Behaviour & Component Parameters
        • Tags
        • Messages
      • Behaviours
        • NPC - AI Pawns
          • 🔵Citizen
          • 🔵Farmer
          • 🔵Healer
          • 🔵Melee Enemy
          • 🔵Predator
          • 🔵Prey
          • 🔵Soldier
          • 🔴Friendly NPC
        • Movement
          • 🟡Door
          • 🟡Bird
          • 🔴Basic Platform
          • 🔴Advanced Platform
          • 🔴Projectile
          • 🔴Rotate
        • Basic Logic
          • 🔵Message Broadcaster
          • 🟢Combination Code
          • 🟢Asker
          • 🟢Timed Events
          • 🟡Crowd Event
          • 🔴Spawn Point & Avatar's Feature
        • Modifiers
          • 🔵Actor Property Switcher
          • 🔵Multi
          • 🔵Void
          • 🟢Asset Spawner
          • 🟢Replace Asset
        • Visual
          • 🟢Post Process Effects
          • 🟡Weather Switcher
          • 🟡Animated Decoration
      • Components
        • Actions
          • 🟢Climbable
          • 🟢Avatar Teleport
          • 🟢Collectable
          • 🟢Drop
          • 🟢Slide
          • 🟢Speaker
          • 🔴Pickable
        • Triggers
          • 🟢Plant
          • 🟢Switch
          • 🟢Button
          • 🟢Trigger Volume
        • Status
          • 🟢Toggle
          • 🟢Power Up
          • 🔴Avatar Checkpoint
          • 🔴Health
        • Gameplay
          • 🔵Defeat
          • 🔵Victory
          • 🔴Raycast
        • NFT
          • 🟢NFT Sensor
          • 🟢NFT Image Display
          • 🟢Image Display
          • 🔴NFT Details Display
        • Display
          • 🟢Indicator
          • 🟢Rarity VFX
          • 🟡Visual FX
          • 🟡Light
        • Audio
          • 🟡Play Sound
      • Objectives
      • Game Rules
        • Math
        • Time
        • Comparisons
        • Replace Variable Values
        • Game Screen
        • Triggers
        • Events
      • Build Singleplayer & Multiplayer Logic
      • Quality Guidelines
        • Optimisation
        • Testing
        • Playability
      • Templates
    • 📑Creative Guides
      • 📗Game Rules Guide
        • Point Race
        • Collect Points
        • Time Trial
        • Combo
        • Hunger
        • Poison
        • Shop
      • ⚙️Logic Guide
        • Abilities
        • Equipment Based Logic - On Equip / NFT Sensor
        • Doors & Chests
        • Collectibles
        • Text, Quests & Icons
        • Platforms
        • Victory & Defeat
        • Miscellaneous
        • NFT Inspect
        • Fighting
      • 🏞️Experience Guide
        • Tower Defense
        • Horror / Backrooms
        • Solo Platforming
        • Social Platforming
        • Resource Management
        • Cooking Simulator
        • Survival
        • Action / Adventure
        • Night Clubs & Concerts
        • Virtual Home & Architecture
        • NFT Gallery / In-Game Shop
        • Puzzle Games
        • Social Hubs
        • Simulation
      • 🎲Experience Design Techniques
        • Narrative Design
          • Worldbuilding
          • Storyboard
          • Dialogue
        • Art Design
          • Experience Art Concept
          • Asset Curation
          • Blockout Aesthetics
          • Detailing / Dressing
        • 3D Spatial Layout
          • Rough Base Map
          • Greyboxing / Blockout
        • Game Design
          • Ramp of Difficulty
          • Risk & Reward
          • Game Loops & Decisions
    • 🎬Game Production Guide
      • 🟥Concept
      • 🟧Blockout
      • 🟨Logic
      • 🟩Art
      • 🟦Quality Assurance
      • 🟪Polish
      • ⬜Marketing
    • 🧰Publish Experiences
      • Experience Manager
        • Experience Analytics
        • 🧰Experience Page
          • Content Guide
          • Marketing
          • Create an Experience Trailer
          • Player Engagement
        • Map Location
        • Asset Review
        • Access Restrictions
      • Collaborating With Third Parties
      • ❓FAQs: Experience Publishing
    • 🕘Version Notes & Changelogs
      • Game Maker 0.11
        • ❗0.11 Upgrade Guide
      • Game Maker 0.10
      • Game Maker 0.9
      • Game Maker 0.8
      • Game Maker 0.7
    • ❓FAQs: Game Maker
  • VoxEdit
    • ✨Create Assets
    • 🔰Beginners
    • 📖Docs
      • Navigate VoxEdit Home
      • Controls & Shortcuts
      • Panels & Custom Layouts
      • Block
      • Modeler
        • Use Modes & Tools Together
        • Set the Pivot Point
        • Create Frame Assets
      • Animator
        • Build a Rig
        • Create an Animated Asset
        • Use Inverse Kinematics
      • Templates
      • Quality Guidelines
        • Asset Types & Collisions
        • Asset Scale
        • Node Efficiency
        • Pivot Point & Alignment
        • Animation
        • Visual Quality
        • Asset Name & Description
        • Manage Files & Folders
    • 📑Creative Guides
      • 🧍Asset Guide
        • Structures & Landmarks
          • Basic Building: No Entry
          • Animated Building: No Entry
          • Unanimated Building: Player Entry
          • Landmark
          • Building Facade
          • Structure Component Parts
          • Modular Architecture
        • Humanoids & Animals
        • Vehicles
        • Equipment
        • Art: Statues, Paintings
          • Animated Art Screens
          • Statues
          • Kinetic Art Sculptures
          • Paintings
          • Performance Art
        • Furniture
        • Platforms
        • Doors, Gates, and Windows
          • Multi Design Door Asset
        • Chests & Other Animated Interactions
        • Plants, Trees
        • Objects, Machines
        • Signs & Text
        • Obstacles
        • Create Frame Assets
      • 🎨Art Techniques
        • Asset References
        • 3D Design
          • 🧹Need to Simplify?
          • ✂️Trim All Volumes
          • 🟢Optimize with Texture
          • 🟢Curved Edges: Blocky Style
          • 🟡Break Down Objects
          • 🟡Create Smooth Angled Lines
          • 🟡Circular Shapes: Cross Technique
        • Colour, Texture & Depth
          • 🪅Colour Choice & Strategy
          • 🧱Textures & Materials
    • 🧰Upload Assets to Workspaces
    • 🌟Mint & List Assets to Sell
    • 🕘Changelogs
    • 🔓Open Source Assets
    • ❓FAQs: VoxEdit
  • Creators Program
    • 🏗️Builders' Challenge
      • Rules & Eligibility
      • Earnings & Rewards
      • How to Succeed in the Builders' Challenge
      • ❓FAQs: Builders' Challenge
    • ℹ️Creator Contests
    • 🏆Game Jams
      • Rules & Guidelines
      • Judges & Voting
      • Explore Past Winners
      • ❓FAQs: Game Jams
    • 🏆VoxEdit Contests
      • Rules & Guidelines
      • Judges & Voting
      • Explore Past Winners
      • ❓FAQs: Voxel Art Contests
  • General
    • 📚The Sandbox Documentation
    • 🔄Play, Create & Earn
    • 🗺️Map
    • 🛒Marketplace
    • 🗣️Discord Community
    • 🔗Social Networks, News & Blogs
    • The Sandbox Linktree
    • ❓Help & Contact
Powered by GitBook
LogoLogo

INFO

  • Discord
  • Social, News & Blogs
  • Service Status

PLAY

  • Events
  • Map
  • Avatar

CREATE

  • VoxEdit
  • Game Maker
  • Contests

OWN

  • SAND
  • LAND
  • Staking

Copyright ©The Sandbox. All Rights Reserved.

On this page
  • ABOUT MESSAGE ON EQUIP
  • GAMEPLAY FLOW
  • 1. Get Equipment Item(s)
  • 2. Equip to Trigger Logic
  • Use On Equip Message
  • Use On Equip Message(s) + Event Count & Check Setup
  • 3. Experience Outcome(s)
  • WORLD/GAMEPLAY
  • Unlock NPC Interactions
  • Trigger Unique Quests
  • Trigger Unique Interactions
  • Avoid Hazards
  • Toggle Between States
  • PLAYERS
  • Enhance Player with Equipment Attributes
  • Injure or Curse the Player
  • Trigger Power Ups
  • Trigger Crowd Events
  • Unlock Player Class/Skills
  • Activate Equipment

Was this helpful?

  1. Game Maker
  2. Creative Guides
  3. Logic Guide

Equipment Based Logic - On Equip / NFT Sensor

Explore creative possibilities to trigger logic with equipment using the Collectable component's On Equip feature or NFT Sensor.

PreviousAbilitiesNextDoors & Chests

Last updated 2 months ago

Was this helpful?

EQUIPMENT: ASSETS vs NFTs

  • Equipment provided in game must be collected and worn to send an On Equip message.

  • To trigger logic in this guide with NFTs a player owns (which offers exclusive gameplay):

    • Trigger with NFT Sensor component's Success message instead of On Equip

    • Modify the narrative to be about owning rather than equipping items found in game

ABOUT MESSAGE ON EQUIP

NO UNEQUIP MESSAGE Currently there is no "On Unequip" message option. Design your Experience logic to avoid broken immersion if the player removes equipment, which WILL NOT send a message.


GAMEPLAY FLOW

1. Get Equipment Item(s)

  • Beginning equipment (must be collected, not applied to avatars at start via )

  • Receive from an NPC (e.g., for a quest)

  • Discover via hints and exploration

  • Buy/trade/craft with resources

  • Item Drop when an enemy dies

2. Equip to Trigger Logic

Use On Equip Message

  • One equipment item required

  • Communicates one time with other logic (e.g., launch a quest)

Use On Equip Message(s) + Event Count & Check Setup

  • One or multiple equipment

  • Communicates many times check if item(s) were ever equipped (e.g., new skill unlocked)

Variations

Equipment Used Together (e.g., for a quest) This Event Count & Check setup includes a ruleset that requires 1 item using the Compare Number rule's Fixed Value. Set to any number (6 is a full equipment set).

Equipment Use Over Time (e.g., for player leveling/growth) Set the Fixed Value to any number of equipment you require to unlock gameplay. Example (Power/Defense): Using more powerful equipment unlocks a boss fight. Example (Knowledge/Observation): Exploration/item use unlocks new areas.

Combination of Different Events

Count a combination of event types, not just equipping a certain number of items. Example: Event: Place pickable equipment on a charge base to fill the battery Event: Equip item to use it (which can trigger many potential use cases)

Event Count & Check

  • Count any number of events (e.g., equipment worn, player deaths, etc.) one time each

  • Compare this count to a goal amount

  • Optional: Check the state of the goal (met or not) for continuous use (e.g., unlocked skill)

Currently this method will not count Quests.

Event Count & Check Ruleset

  1. Copy the JSON text in the box below and paste into your Rules grid board. Messages and variables included are automatically created.

  2. Follow the Integration Notes.

{
  "GameplayData": {
    "Version": 20,
    "SaveData": "{\"RulesetDatas\":[{\"TreeDatas\":[{\"DisplayName\":\"Math - Add Event to EVENT COUNTER\",\"PresetId\":\"MathTree\",\"Id\":\"bd52c5b8-0d19-474d-9a99-3bd5b6a7c8d0\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Event.Triggered\",\"MathOperand1\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"MathOperator\":\"0\",\"MathOperand2\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"1.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\"}\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Check\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Compare Numbers - EVENT COUNTER vs GOAL\",\"PresetId\":\"MessageOnAmountTree\",\"Id\":\"b7dbf75a-7881-4a66-a3e9-a2349c476dab\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Check\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\"}\",\"Equation\":\"0\",\"ValueSource\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"1.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"78b4080a-3228-4a51-83b0-4cb60db9f008\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.Check\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"CreateConditionalEvent\":\"False\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Done\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Set number value - Reset EVENT COUNTER (reuse)\",\"PresetId\":\"SetValueTree\",\"Id\":\"9d7d057d-65d4-4019-aa40-b433858e11ff\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.CounterReset\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.CounterReset\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\"}},{\"DisplayName\":\"Set number value - Set EVENT GOAL via Message \",\"PresetId\":\"SetValueTree\",\"Id\":\"573bbdaa-4f53-4604-a512-fe8145fbcca9\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.SetGoal\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"78b4080a-3228-4a51-83b0-4cb60db9f008\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.SetGoal\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Total Required\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\"}}],\"DisplayName\":\"Event Count & Check - Set Event Goal with message argument, count events, check if goal is met to trigger logic on demand, reset event counter to reuse during play\",\"Description\":null,\"EnableDebugging\":false,\"Id\":\"3e9de119-33ae-4877-aa39-465884dd4393\"}],\"version\":-1,\"dataID\":null}"
  },
  "Type": 0,
  "Messages": {
    "Version": 1,
    "SaveData": "[{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Event.Triggered\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.CounterReset\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.SetGoal\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Total Required\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false}]"
  },
  "Fields": {
    "Version": 8,
    "SaveData": "{\"Fields\":[{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":0,\"Id\":\"3933e860-af41-4e34-91fc-cc4e6f7adcce\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event Counter\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":0,\"Id\":\"78b4080a-3228-4a51-83b0-4cb60db9f008\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event Goal\",\"Mode\":1,\"ValueFormatId\":0}],\"version\":-1,\"dataID\":null}"
  }
}

Integration Notes

  1. Set event goal: Set anything to send the message Events.SetGoal to Rules or All and set the amount in the message argument. Note: Trigger logic on demand if this goal is met.

  2. Trigger an outcome once/repeatedly: Send Events.Done to Rules to check if goal is met.

  3. (Optional) Reuse to count other events: Reset the goal by sending Events.SetGoal with the amount in the argument and Events.CounterReset to Rules.

How It's Built

  1. In Game Rules, create a number variable with a value of 0. Set is as Local (L). Name it Event Goal.

  2. Create a number variable with a value of 0. Set it as Local (L). Name it Event Counter.

  3. Follow the Integration notes.

Multi Event Count & Check

In some cases, you may want to count multiple events at the same time.

The similar ruleset below allows you to count and check three types of events at the same time. It uses messages with arguments to send a value to a specific ruleset for setting a goal and triggering an event.

{
  "GameplayData": {
    "Version": 20,
    "SaveData": "{\"RulesetDatas\":[{\"TreeDatas\":[{\"DisplayName\":\"Set number value - EVENT A Goal\",\"PresetId\":\"SetValueTree\",\"Id\":\"af47864e-b45e-4b5c-8d38-c2cf788a88ff\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.SetGoal.multi\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"81ca6267-915e-4f42-9778-5fbbad7f26d3\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.SetGoal.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Goal A Update\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\"}},{\"DisplayName\":\"Set number value - EVENT B Goal\",\"PresetId\":\"SetValueTree\",\"Id\":\"6349f0b9-0191-46c8-9b69-2bd287ea915d\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.SetGoal.multi\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"2f2fae1a-4b9a-4eae-ab71-60635aca215b\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.SetGoal.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Goal B Update\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\"}},{\"DisplayName\":\"Set number value - EVENT C Goal\",\"PresetId\":\"SetValueTree\",\"Id\":\"1e94e2b0-5659-47dc-9049-aa6653f27454\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Event.Triggered.multi\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"db5d7508-8743-47cd-830b-6c76d4c5ebdd\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event C +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\"}},{\"DisplayName\":\"Math - EVENT A +/- Event via Message Argument\",\"PresetId\":\"MathTree\",\"Id\":\"f696eac7-5918-422e-843d-e6253c3b9fd3\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Event.Triggered.multi\",\"MathOperand1\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event A +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\",\"MathOperator\":\"0\",\"MathOperand2\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event A +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\"}\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Check.A\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Math - EVENT B +/- Event via Message Argument\",\"PresetId\":\"MathTree\",\"Id\":\"d7425ba0-f7b8-4dde-8c7e-b2caac6a1147\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Event.Triggered.multi\",\"MathOperand1\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event B +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\",\"MathOperator\":\"0\",\"MathOperand2\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"621a4f7e-8434-4200-a20b-9d8ae900e939\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event A +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"621a4f7e-8434-4200-a20b-9d8ae900e939\\\"}\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Check.B\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Math - EVENT C +/- Event via Message Argument\",\"PresetId\":\"MathTree\",\"Id\":\"880a70af-8fdc-4585-898d-d39456dc60d4\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Event.Triggered.multi\",\"MathOperand1\":\"{\\\"ValueSource\\\":1,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event C +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\",\"MathOperator\":\"0\",\"MathOperand2\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"ec5ccf43-a442-4062-8f2e-67447dc4f6bd\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Event.Triggered.multi\\\\\\\",\\\\\\\"Field\\\\\\\":{\\\\\\\"Type\\\\\\\":\\\\\\\"Int\\\\\\\",\\\\\\\"DefaultValue\\\\\\\":0,\\\\\\\"DisplayName\\\\\\\":\\\\\\\"Event A +/-\\\\\\\",\\\\\\\"UIConfigParameters\\\\\\\":null}}\\\"}}\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"ec5ccf43-a442-4062-8f2e-67447dc4f6bd\\\"}\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Check.C\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Compare numbers - EVENT A Check\",\"PresetId\":\"MessageOnAmountTree\",\"Id\":\"3334e9d7-c027-47fc-87f5-a4ca405cc42e\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Check.A\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\"}\",\"Equation\":\"0\",\"ValueSource\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"1.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"81ca6267-915e-4f42-9778-5fbbad7f26d3\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.Check.A\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"CreateConditionalEvent\":\"False\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Done.A\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Compare numbers - EVENT B Check\",\"PresetId\":\"MessageOnAmountTree\",\"Id\":\"b2caae9e-5791-466d-82fa-cd62174d61bf\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Check.B\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"621a4f7e-8434-4200-a20b-9d8ae900e939\\\"}\",\"Equation\":\"0\",\"ValueSource\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"1.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"2f2fae1a-4b9a-4eae-ab71-60635aca215b\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.Check.B\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"CreateConditionalEvent\":\"False\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Done.B\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Compare numbers - EVENT C Check\",\"PresetId\":\"MessageOnAmountTree\",\"Id\":\"87d48979-437f-439d-afaa-2e1ae4a74007\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Check.C\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"ec5ccf43-a442-4062-8f2e-67447dc4f6bd\\\"}\",\"Equation\":\"0\",\"ValueSource\":\"{\\\"ValueSource\\\":0,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"1.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":1,\\\\\\\"Id\\\\\\\":\\\\\\\"db5d7508-8743-47cd-830b-6c76d4c5ebdd\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.Check.C\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"CreateConditionalEvent\":\"False\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Events.Done.C\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Set number value - Reset EVENT A Counter\",\"PresetId\":\"SetValueTree\",\"Id\":\"924276fd-c508-48c1-9063-c2e13ce20794\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.CounterResetA\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"3933e860-af41-4e34-91fc-cc4e6f7adcce\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.CounterResetA\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\"}},{\"DisplayName\":\"Set number value - Reset EVENT B Counter\",\"PresetId\":\"SetValueTree\",\"Id\":\"c677d237-bead-4e87-b698-e035c418ec36\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.CounterResetB\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"621a4f7e-8434-4200-a20b-9d8ae900e939\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.CounterResetB\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\"}},{\"DisplayName\":\"Set number value - Reset EVENT C Counter\",\"PresetId\":\"SetValueTree\",\"Id\":\"5ddaac2f-1039-424d-b3a7-10e66ae86028\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.CounterResetC\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"ec5ccf43-a442-4062-8f2e-67447dc4f6bd\\\"}\",\"SetValue\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.CounterResetC\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\"}}],\"DisplayName\":\"Multi Event Count & Check (Set 3 event counter goals, message argument to add/subtract to specified counters, compare goals to counters, and reset counters to reuse)  \",\"Description\":null,\"EnableDebugging\":false,\"Id\":\"1abbe453-f27c-4ab2-999e-d1512db516f2\"}],\"version\":-1,\"dataID\":null}"
  },
  "Type": 0,
  "Messages": {
    "Version": 1,
    "SaveData": "[{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.SetGoal.multi\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Goal A Update\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Goal B Update\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Goal C Update\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.SetGoal.multi\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Goal A Update\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Goal B Update\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Goal C Update\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Event.Triggered.multi\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event A +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event B +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event C +/-\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Event.Triggered.multi\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event A +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event B +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event C +/-\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check.A\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Event.Triggered.multi\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event A +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event B +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event C +/-\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check.B\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Event.Triggered.multi\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event A +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event B +/-\",\"UIConfigParameters\":null},{\"Type\":\"Int\",\"DefaultValue\":0,\"DisplayName\":\"Event C +/-\",\"UIConfigParameters\":null}],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check.C\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check.A\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done.A\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check.B\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done.B\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check.C\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done.C\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.CounterResetA\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.CounterResetB\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.CounterResetC\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false}]"
  },
  "Fields": {
    "Version": 8,
    "SaveData": "{\"Fields\":[{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":1,\"Id\":\"81ca6267-915e-4f42-9778-5fbbad7f26d3\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event A Goal\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":1,\"Id\":\"2f2fae1a-4b9a-4eae-ab71-60635aca215b\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event B Goal\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":1,\"Id\":\"db5d7508-8743-47cd-830b-6c76d4c5ebdd\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event C Goal\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":0,\"Id\":\"3933e860-af41-4e34-91fc-cc4e6f7adcce\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event Counter A\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":0,\"Id\":\"621a4f7e-8434-4200-a20b-9d8ae900e939\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event Counter B\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.RtBlackboardFieldData`1[[System.Int32, mscorlib]], Sandbox.Engine\",\"ConcreteDefaultValue\":0,\"Id\":\"ec5ccf43-a442-4062-8f2e-67447dc4f6bd\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"Event Counter C\",\"Mode\":1,\"ValueFormatId\":0}],\"version\":-1,\"dataID\":null}"
  }
}

3. Experience Outcome(s)


WORLD/GAMEPLAY

Unlock NPC Interactions

Wear equipment to make NPCs recognise player identity, unlocking dialogue and gameplay.

Use cases: Reveal player identity in narrative, access gameplay under disguise, etc.

Start: Initially, NPCs refuse to talk to the player or hint at needed equipment.

Gameplay Steps

  1. Get Equipment: Discover via hints/exploration or receive from an NPC for a quest

  2. Hint: Learn what the equipment is/does and how to equip it

  3. Equip Item(s): Open Inventory and equip required assets (one or multiple items)

  4. Hint: Return to the NPC and talk again

Outcome: Trigger unlocked dialogue. This could be set up to grant access to a restricted area, open a door, offer a new quest, etc.

Build It

  • NPC:

  • Logic Asset (NPC hidden dialogue):

  • Equipment:

Follow Up:

  • Set up additional gameplay of your choice triggered by the NPC's new dialogue.

Roman Soldier Quest

A Roman soldier is urgently looking for another soldier to help him. When you speak to him, he tells you to go away because he's busy looking for a soldier. Go on a quest to acquire a full set of Roman armour. Return to him with the full armour set equipped, and he will finally ask for your help in killing a powerful enemy.

Unlocked Gameplay He instructs you to grab a spear to attack the enemy. The spear will only spawn if you have a full set of armour equipped.

Party Entry

You are trying to get into a party, but you are not dressed in a suit and tie, so the guard will not let you in. Find a suit and return. The guard will notice you are dressed correctly and let you in.

Unlocked Gameplay Any playable content inside of the party space is now available.

Trigger Unique Quests

Wear equipment to unlock information that will trigger a quest to begin.

Use cases: Puzzles, mysteries, translation, etc.

Start: When the player interacts with something interesting, they learn that they are unable to read/understand it without certain equipment.

Gameplay Steps

  1. Get Equipment: Discover via hints/exploration or buy/trade/craft

  2. Hint: Learn what the item is/does and how to equip it

  3. Equip Item(s): Open Inventory and equip the asset

  4. Hint: Return to try interacting with the original item

Outcome: The equipment allowed the player to complete or read some text, narrative, small puzzle, or map, so a quest is unlocked. This may lead the player to a hidden location or unlock other gameplay.

Build It

  • NPC:

  • Logic Asset (hint):

      • The Asker response sends a message to Objectives or All.

  • Polish: Use the Asker response message to trigger a visual cue that the item is readable (e.g., VFX, animated decoration behaviour to display an animation, etc.).

  • Equipment:

  • Check:

Follow Up:

Treasure Hunter

You are a treasure hunter who comes across an ancient map in an unknown language. You must use a backpack of tools to find a way to translate it. The locals give you a tip about an old tomb with strange carvings outside the entrance. When you check these, you can read part of the tablet, which indicates you need to explore the tomb to translate the rest. Explore the tomb to find clues from artifacts and collect pieces of ancient books to decode the whole tablet.

Unlocked Gameplay Once you have enough information, you'll discover what mysteries await.

Language Barrier

You speak to an NPC, but they talk to you in a language you do not understand. You need to get past them, but they keep saying something you can't comprehend. Using a local translation book, you manage to communicate with them. They tell you they need 50 gold coins to let you pass and give you a quest to find the money. Using the book, you interact with other NPCs and find ways to help them to gather the money needed to progress.

Unlocked Gameplay After paying gold coins to the NPC, you can move on to new areas and quests.

Take this further by allowing the player to speak with other NPCs who speak the same language and hint at the player to revisit earlier areas of the game where the language barrier prevented them from reading signs, books, etc. as part of a new quest, leveling up, etc.

Trigger Unique Interactions

Wear equipment to unlock new ways to interact with items or engage with the game world.

Use cases: Use tools for specified actions, carry heavy or special items, etc.

In multiplayer Experiences, each player can have a unique gameplay experience based on the equipment they find and use.

Start: When the player interacts with an object, they learn that they need certain equipment to interact with the item to complete a task.

Gameplay Steps

  1. Get Equipment: Discover via hints/exploration, buy/trade/craft, or receive from an NPC

  2. Hint: Learn what the item is/does and how to equip it

  3. Equip: Open Inventory and equip the asset

  4. Hint: Learn that the equipment has unlocked what needs to be done using it

Outcome: The player may now complete a task using the equipment. This may a one time action, a repeated task, or a series of tasks as part of a process (e.g., manufacturing a product).

It may also lead to buying equipment that is more powerful/faster to complete the task/process, which is common in a Resource Management game.

Build It

Equipment/Object Setup

  • Object Interactions (some options):

        • Items spring outward: place close together with gravity and collisions on

After Object Interactions are Unlocked (some options)

  • Count Object Interactions

  • Wear Out Equipment

Potion Maker

Welcome to the village as the new potion maker. Gather herbs and fruits to craft potions to help the townspeople. Equip different tools to interact with various plants, bushes, trees, and creatures. Work with a friend to gather resources and craft potions, supporting the town together. Note: When the player interacts with a berry bush, they will harvest the berries. The bush should swap assets or destroy itself to indicate it has been harvested. The bush can later regenerate over time.

Unlocked Gameplay

Once the berries are picked, the player can carry them to another location to process them into a potion, such as a cauldron. The player deposits the required amount of berries to create the potion.

Clean Up the Streets

Collect as much garbage as possible before the mayor arrives to judge the town.

Unlocked Gameplay Equip different tools, gloves, etc. to interact with various types of trash. Some items require special equipment, like a gas mask for smelly garbage.

Level Up Use coins earned from cleaning to buy tools that help you clean faster. This can be done with a small number of shop items using the Shoppreset.

For a larger number of items in a shop, explore the Resource Management template in Game Maker, paying close attention to how messages with arguments are used to buy and sell items using fewer rules.

Avoid Hazards

Wear equipment to prevent detection by enemies or a state where significant harm/death would occur.

Use cases: Avoid damage from environmental dangers (gas trap, radioactive area, deadly rainstorm, pass through fire, etc), sneak, wear a disguise, etc.

Start: The player sees or learns of a dangerous hazard or obstacle to overcome and gets visual clues to figure out what equipment is needed. Seeing health drained or being spotted by a low level monster players can survive against are natural ways to explain the situation.

Gameplay Steps

  1. Get Equipment: Beginning equipment (collectable, not via Spawn Point), discover via hints/exploration, given by an NPC, or buy/trade/craft

  2. Hint: Learn that the item prevents harm/death or detection and how to equip it.

  3. Equip: Open Inventory and equip the asset

  4. Hint: Learn that the player is now protected and can proceed safely.

Outcome: The player can safely overcome the hazard and continue their quest or adventure. This could lead to access to new areas to escape to a safe place.

Build It

The dangers in this method can't be reversed and cause heavy damage quickly.

Equipment

Player Detection

Hint of Danger

  • Barrier or Checkpoint

Logic Outcome (some options)

  • Enemy Detects Player

    • Per enemy: Set a small detection area and place a copy of the detection logic asset at each enemy's location. Set as a child object of each enemy if the enemy moves.

    • All enemies detect at once: Set a large detection area on the detection logic asset's Trigger Volume to cover the whole space the player will be detected upon entering. If an unusual detection area is needed, duplicate the logic asset and position.

    • Trigger Enemy to Attack:

Post-Apocalyptic Cleanup

You are in a post-apocalyptic world with radiation leaks all around the area, and you have the unfortunate task of cleaning up the waste. Equip your suit and explore the world to clean up as much as you can before your suit runs out of protection and leaves you open to the dangers around you.

Unlocked Gameplay Gather waste and other junk to sell and buy better-upgraded suits to last longer and take on more extreme versions of the wasteland world you find yourself in.

Sneaking Around Giants

You are lost in a world with giants that have taken a liking to eating humans. You need to find items to equip that will help you hide, blend in, and sneak around undetected.

Unlocked Gameplay Explore new areas while sneaking around to find an escape route.

Zombie Disguise

You are trying to sneak past some zombies, but they can smell you from a mile away. You kill a zombie and take its clothes, which are covered in blood and rot.

Unlocked Gameplay Once equipped, you can sneak around undetected.

Twist Set the equipment message to trigger a timer so the disguise has a limited effect.

Toggle Between States

Wear equipment to swap between two different states.

Use cases: Change view, world state, gameplay state, etc. to access new puzzles, find clues, trigger new quests, access hidden areas, etc.

Start: The player has no way of progressing on a quest, in the game world, etc. and are hinted that they need specific equipment to switch between different states.

Gameplay Steps

  1. Get Equipment: Discover via hints/exploration, given by an NPC, or buy/trade/craft

  2. Hint: Learn that the equipment toggles between states and how to equip it

  3. Equip: Open Inventory and equip the asset

  4. Hint: A pop-up message or NPC explains which keys/mouse buttons trigger the different states (view, world, gameplay, etc.)

Outcome: The player can now explore previously inaccessible gameplay to complete new quests, hunt enemies, reveal clues/items, find new areas, open doors, trigger platforms, etc.

Build It

Equipment

Key Input

Outcomes (some options)

  • Stop a component's logic: spawn/kill asset or use Actor Property Switcher

Switch Back

Dynamic worlds where players have control can be extremely enjoyable, but require a bit more work to set up hidden gameplay to discover.

It's easiest to start with one state fully built, then modify to gradually set up switched logic and test, eventually resulting in multiple changes occurring at once and balanced gameplay. Take advantage of logic that creates a more powerful change such as wide area VFX, weather, etc.

While some switching logic setups may be very simple, in some advanced cases it could require a carefully planned and tested setup:

  • to remove or deactivate logic and objects from state A while revealing or activating what belongs with state B

  • to reverse all of the changes

  • to introduce additional states

Ghost Hunter

You are the latest ghost hunter investigating places no one else dares go. You carry around your ghost equipment and special goggles that allow you to see ghosts. Using your goggles, you enter scary buildings and look for clues of ghost activity. Switching between the normal and ghost view, you find and hunt down the ghosts, clearing the place of all ghost activity.

Spy Mission

You are a spy sneaking into places in the darkest of nights. Using your night vision goggles, you can see better in the dark and highlight items of interest that you might need. Try to stay out of the light and use your night vision headset to sneak to success.

Co-op Temple Adventure

You and a friend have discovered a hidden temple and found two strange headpieces. When equipped, you can toggle the temple to allow platforms and hidden doors to open. However, you are separated from your friend, and your headpiece affects the temple on their side. Together, you have to get your timings right to switch between the different states. You must help each other avoid traps, open doors, make enemies disappear, and make platforms appear, working together to navigate the temple.

PLAYERS

Enhance Player with Equipment Attributes

Wear unique equipment that is designed to modify the player's base stats to increase performance.

Use cases: Power to deal more attack damage, Defense to reduce damage when attacked, Speed to increase movement rate, or any combination.

BUY OR CREATE EQUIPMENT You can buy and test equipment NFTs from the Marketplace or create custom assets with VoxEdit for use in your own Experience without minting.

Gameplay Notes

  • Equipment with Attributes can be integrated into logic the same way as common assets.

  • Be sure to emphasize the strengths of the equipment to the player.

  • Gradually provide new equipment with stronger attributes to signify player growth.

  • Consider how to balance gameplay so the game can be completed with default equipment or so the player will definitely be able to use stronger equipment if difficulty increases.

Build It

Start: Decide what Attributes you want to increase for the player with the equipment, considering how it fits into your logic and narrative. This can also guide your art design.

Asset Creation Steps:

  • Upload Assets to Workspaces to make draft versions for testing the Attributes desired. Note: You do NOT need to own CATALYST NFTs to complete this step.

  • Test in Game Maker: Find your asset in the Library and test gameplay using it. If needed, try different Attributes by uploading the asset from VoxEdit again (new/replace draft).

Catalysts of higher rarity provide more Attribute Points that can boost players more.

The Lava River

The lava deals damage to the player, when he swims in it. The base player has 100 life, so the player can die really quickly. By equipping gear with defence stats, the player increases his health. For each point of defence the player will get 1.6 points of health.

If a player equips items with a total of 125 defence, he increases his health to 308 points.

The Gap

Sometimes a gap is to big for a player to jump over it with his base jump. Giving the player some speed items he can jump far enough to reach the other side.

In this case, the player got an item with 100, that boost his reach almost for 10%.

Killing a NPC

Fighting monsters and NPCs can be a big part in an experience. Player have various attacks to kill them. The base attack deals only 5 damage, so it can take a while to defeat an opponent. By equipping items with power, players deal more damage.

The base attack of the player is 5. If a player equips an item with 100 power, his normal attacks will deal 22 damage.

Injure or Curse the Player

Wear equipment to dynamically cause a negative effect on the player, prompting real time reaction.

Risk & Reward: helpful items have a negative effect, items have only positive or negative effect, etc.

Use cases: infection/poison, lost vision, hallucinations, confusion, intense hunger, blocked skill, etc.

CUES & COHESIVENESS

Match the tone of your world well with the outcomes players may experience and provide visual cues (e.g., curse: glowing VFX, infection: rusty blade). This makes players feel safe to explore when risk is low or make choices strategically when risk is high.

Start: The player comes across equipment that they can collect, pick up, etc. without negative effect. However, there may be some indication that it could be dangerous to wear. If the player never equips the item, the negative effect remains a mystery.

Gameplay Steps

  1. Hint: Visual cues (e.g., VFX) or NPC dialogue hint that equipment is harmful, but powerful. Equipment with no cues or benefit only suit difficult games with similarly beneficial items. Note: If there's no way to remove the effect, communicate it clearly and make the equipment's benefit more powerful as a worthy trade-off. Examples: - Drains health, but has a very high Power Attribute for attacks - Reduces vision, but heightens player senses to detect enemies sooner - Injures the player once, but allows them to heal teammates for a limited time

  2. Get Equipment: Collect, buy, etc. if choosing to risk a negative effect

  3. Equip: At any time, the player may open the Inventory and equip the item

  4. Alert: The player notices a change via the HUD (health, poison, etc), spawned enemy, dialogue indicating the change, Post Process Effects (camera), etc.

  5. Hint (if it can be removed): Note: Unequipping can not send a message to trigger this) Examples: - Kill spawned enemy - Find a potion - Equip a holy item - Wear a full set of cursed equipment to cancel it out

Outcome: The player may solve the issue and continue playing normally, or the effect may continue throughout the rest of the game. The game logic could also be designed so the player can re-equip the item (in this case, a timer should be used to cancel the effects).

Build It

Equipment

Logic Outcome (some options)

  • Infection/Poison: Use the On Equip message to trigger the Poison rules preset.

  • Hunger: Use the On Equip message to trigger the Hunger rules preset.

  • Lost Vision/Hallucinations: Use the On Equip message to trigger custom settings using Post Process Effects on the player camera.

  • Continuous Health Damage:

Polish

  • Hint clearly at what the player may be able to do to reverse the effects and apply logic.

Solutions

Unequipping an item will not send a message to cancel out the effects of equipping.

  • Timed Effects

    • Wait for time to pass: Trigger effects to stop with the Start Timer rule's message Out.

    • Resolve before time expires: Set up logic to kill or injure the player with the Start Timer rule's message Out and set up logic for a solution (suggestions below) to communicate to Rules or All to stop the Start Timer rule. Note: Make sure it won't be possible for the player to trigger the rule again accidentally and start the timer.

  • Consume an item: Create a potion, find a medical pack, etc.

  • Eat: Find and eat food to survive through extreme hunger for a short time

  • Reset Health: Enter a healing area (e.g., shrine, healing pool, etc.) to cancel the effects

  • Balance: Equip an item to cancel effects (e.g., holy pendant, item with opposite effect, etc.)

Rusty Dagger

The player finds a rusty dagger and decides to equip it. After a set time, the player realizes the dagger has cut them and caused poisoning. The player now needs to find a cure before they die. Nearby is a plant known to cure poison, and the player must stop whatever they are doing to get this item quickly.

Powerful Helmet

The player finds a powerful helmet that greatly increases defense but makes them nearly blind, darkening the game world.

Cursed Crown

The player finds a crown with a note warning that it is cursed. The player chooses to equip it, and the demon owner of the crown spawns to reclaim it. This could be used in a multiplayer experience to cause panic among players as the cursed demon roams around.

Trigger Power Ups

Wear equipment to trigger buffs and debuffs on the player once, infinitely, or when triggered by a key or mouse input.

Use cases:

  • Health or Oxygen meters: restore to maximum or reduce

  • Speed (movement), Attack Power, or Damage Resistance: increase/decrease for a short time

  • Set up logic to trigger buffs/debuffs on a timer for extended use needs

See Power Up documentation for detailed use cases. Anything can send Power Up special messages. Use a negative number in the message argument to set a debuff.

Start: The player may struggle to complete a task quickly enough or fully due to health hazards, not enough oxygen, not enough speed to finish in time or jump far enough, or enemies that have a large amount of health or very high attack power. They may even be hinted that equipping a certain item will activate a skill to use on command (with cooldown).

Gameplay Steps

  1. Get Equipment: Discover via hints/exploration, given by an NPC, item drop from killing an enemy, or buy/trade/craft Make the cost of the equipment higher to balance out longer term benefits (earn from a hard quest, spend more to buy/trade/craft it, kill a stronger enemy to drop it, etc)

  2. Hint: Learn the benefit of equipping the item (which may be temporary or long term) and how to equip it, and use different Visual FX to signal how useful or valuable it is

  3. Equip: Open Inventory and equip the asset

  4. Hint: The effects of triggering Power Ups are built into Game Maker with updated health/oxygen meters or visual effects for speed, attack power, and damage resistance, but the player will benefit from a hint of what key to press and how long the cooldown period is if it has long term use with player input

Outcome: The player proceeds with the benefit of the Power Up, but speed, attack power, and damage resistance may have varied durations and triggers.

Build It

Equipment

Trigger Buffs

Power Up options: Health, Oxygen, Speed, Attack Power, or Damage Resistance

  • Trigger Like a Skill

Once a Power Up is activated, it can NOT be undone by unequipping the item. Consider evolving the player's skill over time with Power Ups. Examples:

  • Provide equipment (same slot) over time to gradually trigger stronger Power Ups.

  • Require to drop equipment where its tag will be detected to cancel its effects or replace it with a different skill (same or different equipment slot).

Trigger Repeatedly

Trigger a Power Up repeatedly for a set time. Note: This method prevents conflicts if your Experience uses a Power Up multiple ways.

  • Copy and paste the ruleset below into your Game Rules gridboard and customise:

  • Modify the Start Timer rule for the total buff/debuff duration you want.

  • Modify the other Start Timer rule for the buff/debuff loop time.

  • Modify the Send Message rule's message Out to desired Power Up, custom argument.

{
  "GameplayData": {
    "Version": 20,
    "SaveData": "{\"RulesetDatas\":[{\"TreeDatas\":[{\"DisplayName\":\"Start timer - Total Buff/Debuff Period\",\"PresetId\":\"StartTimerTree\",\"Id\":\"7e79c9fe-2586-40ef-b117-247d952ace37\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Done\",\"Timer\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"d5ad8c31-b53e-4477-84d8-518d834a2f86\\\"}\",\"ValueSource\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"60.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Events.Done\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"StopTriggerMessage\":null,\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Stop.Loop\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Start timer - Buff/Debuff Loop Trigger\",\"PresetId\":\"StartTimerTree\",\"Id\":\"b55a4b03-d91e-4513-9299-bb2aeac1a5ba\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Trigger.PowerUp\",\"Timer\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"da2ff520-04c8-420f-ab43-8416a4758059\\\"}\",\"ValueSource\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"10.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Trigger.PowerUp\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"StopTriggerMessage\":\"Stop.Loop\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Trigger.PowerUp\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Send Message - Trigger a Buff/Debuff\",\"PresetId\":\"MessageOnMessageTree\",\"Id\":\"ee785edc-77ed-4804-8633-06632970b723\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Trigger.PowerUp\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Health\\\",\\\"ArgumentsData\\\":[\\\"{\\\\\\\"ValueSource\\\\\\\":2,\\\\\\\"SubSaveData\\\\\\\":{\\\\\\\"Constant\\\\\\\":\\\\\\\"10\\\\\\\",\\\\\\\"BlackboardValue\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"BlackboardType\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\"Id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"}\\\\\\\",\\\\\\\"MessageArgument\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"MessageId\\\\\\\\\\\\\\\":null,\\\\\\\\\\\\\\\"Field\\\\\\\\\\\\\\\":null}\\\\\\\"}}\\\"]}\"}},{\"DisplayName\":\"Send Message - Trigger First Buff/Debuff\",\"PresetId\":\"MessageOnMessageTree\",\"Id\":\"f7541cd7-193e-4d11-977f-d625e758eeb2\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Done\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Trigger.PowerUp\\\",\\\"ArgumentsData\\\":[]}\"}}],\"DisplayName\":\"Trigger a Power Up (Buff/Debuff) On Loop for a Duration\",\"Description\":null,\"EnableDebugging\":false,\"Id\":\"c7073795-2a8e-4938-8d91-c50317e1ce8b\"}],\"version\":-1,\"dataID\":null}"
  },
  "Type": 0,
  "Messages": {
    "Version": 1,
    "SaveData": "[{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Stop.Loop\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Stop.Loop\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Health\",\"Color\":\"5EA1D7FF\",\"IsPermanent\":true,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":10,\"DisplayName\":\"<i>Health</i>\",\"UIConfigParameters\":[\"Range (-1000,1000)\"]}],\"Tags\":[\"PowerUp\",\"Default\"],\"HasColor\":true},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false}]"
  },
  "Fields": {
    "Version": 8,
    "SaveData": "{\"Fields\":[{\"$type\":\"Sandbox.Engine.RuleTrees.Timer.RtTimerBlackboardFieldData, Sandbox.Engine\",\"ConcreteDefaultValue\":{\"Timer\":0.0,\"TimerState\":0,\"TimerType\":0},\"Id\":\"d5ad8c31-b53e-4477-84d8-518d834a2f86\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"PowerUp Total Time\",\"Mode\":1,\"ValueFormatId\":0},{\"$type\":\"Sandbox.Engine.RuleTrees.Timer.RtTimerBlackboardFieldData, Sandbox.Engine\",\"ConcreteDefaultValue\":{\"Timer\":0.0,\"TimerState\":0,\"TimerType\":0},\"Id\":\"da2ff520-04c8-420f-ab43-8416a4758059\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"PowerUp Loop Time\",\"Mode\":1,\"ValueFormatId\":0}],\"version\":-1,\"dataID\":null}"
  }
}

Trigger Infinitely

Trigger a Power Up infinitely once triggered, which can be interrupted via a loop timer rule.

Simple Note: This may conflict with other logic in your Experience using the same Power Up.

Use the Power Up type multiple ways in the Experience Note: This method prevents conflicts if your Experience uses a Power Up multiple ways.

  • Copy and paste the ruleset below into your Game Rules gridboard and customise:

  • Modify the Start Timer rule for loop time between triggering another buff/debuff.

  • Modify the Send Message rule (Trigger a Buff/Debuff) message Out to desired Power Up, custom argument.

{
  "GameplayData": {
    "Version": 20,
    "SaveData": "{\"RulesetDatas\":[{\"TreeDatas\":[{\"DisplayName\":\"Start timer - Buff/Debuff Loop Trigger\",\"PresetId\":\"StartTimerTree\",\"Id\":\"b55a4b03-d91e-4513-9299-bb2aeac1a5ba\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Trigger.PowerUp\",\"Timer\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"da2ff520-04c8-420f-ab43-8416a4758059\\\"}\",\"ValueSource\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"15.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Trigger.PowerUp\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"StopTriggerMessage\":\"Stop.PowerUp\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Trigger.PowerUp\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Send Message - Trigger a Buff/Debuff\",\"PresetId\":\"MessageOnMessageTree\",\"Id\":\"ee785edc-77ed-4804-8633-06632970b723\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Trigger.PowerUp\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Health\\\",\\\"ArgumentsData\\\":[\\\"{\\\\\\\"ValueSource\\\\\\\":2,\\\\\\\"SubSaveData\\\\\\\":{\\\\\\\"Constant\\\\\\\":\\\\\\\"-10\\\\\\\",\\\\\\\"BlackboardValue\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"BlackboardType\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\"Id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"}\\\\\\\",\\\\\\\"MessageArgument\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"MessageId\\\\\\\\\\\\\\\":null,\\\\\\\\\\\\\\\"Field\\\\\\\\\\\\\\\":null}\\\\\\\"}}\\\"]}\"}},{\"DisplayName\":\"Send Message - Trigger First Buff/Debuff\",\"PresetId\":\"MessageOnMessageTree\",\"Id\":\"f7541cd7-193e-4d11-977f-d625e758eeb2\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Done\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Trigger.PowerUp\\\",\\\"ArgumentsData\\\":[]}\"}}],\"DisplayName\":\"Trigger a Power Up (Buff/Debuff) On Loop for a Duration\",\"Description\":null,\"EnableDebugging\":false,\"Id\":\"c7073795-2a8e-4938-8d91-c50317e1ce8b\"}],\"version\":-1,\"dataID\":null}"
  },
  "Type": 0,
  "Messages": {
    "Version": 1,
    "SaveData": "[{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Stop.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Health\",\"Color\":\"5EA1D7FF\",\"IsPermanent\":true,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":10,\"DisplayName\":\"<i>Health</i>\",\"UIConfigParameters\":[\"Range (-1000,1000)\"]}],\"Tags\":[\"PowerUp\",\"Default\"],\"HasColor\":true},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Trigger.PowerUp\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false}]"
  },
  "Fields": {
    "Version": 8,
    "SaveData": "{\"Fields\":[{\"$type\":\"Sandbox.Engine.RuleTrees.Timer.RtTimerBlackboardFieldData, Sandbox.Engine\",\"ConcreteDefaultValue\":{\"Timer\":0.0,\"TimerState\":0,\"TimerType\":0},\"Id\":\"da2ff520-04c8-420f-ab43-8416a4758059\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"PowerUp Loop Time\",\"Mode\":1,\"ValueFormatId\":0}],\"version\":-1,\"dataID\":null}"
  }
}

Trigger with Key/Mouse Input (with cooldown)

Trigger a Power Up with a Key/Mouse Input and display a cooldown bar on the HUD.

  • Copy and paste the ruleset below into your Game Rules gridboard and customise:

    • Modify the Key Input rule to use a key of your choice or replace with a Mouse Input.

    • Modify the Buff/Debuff Cooldown Timer rule's duration.

    • Modify the Send Message rule's message Out to desired Power Up, custom argument.

  • Cancel/Restore this logic during gameplay:

    • Restore: Send Event.Triggered to Rules or All to increase the Event Counter again.

{
  "GameplayData": {
    "Version": 20,
    "SaveData": "{\"RulesetDatas\":[{\"TreeDatas\":[{\"DisplayName\":\"Key input - Test if Events are Done\",\"PresetId\":\"KeyboardInputTree\",\"Id\":\"74563933-c4d4-44fe-a863-db0859d07166\",\"EnableDebugging\":false,\"TreeFieldData\":{\"Input\":\"0\",\"PressedMessage\":\"{\\\"MessageId\\\":\\\"Events.Check\\\",\\\"ArgumentsData\\\":[]}\",\"ReleasedMessage\":\"{\\\"MessageId\\\":\\\"\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Send Message - Check if Cooldown is Done\",\"PresetId\":\"MessageOnMessageTree\",\"Id\":\"f7541cd7-193e-4d11-977f-d625e758eeb2\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Events.Done\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Cooldown.Check\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Compare numbers - Start Cooldown & Trigger Buff\",\"PresetId\":\"MessageOnAmountTree\",\"Id\":\"bc79f661-add9-4e3b-a084-cc2607b81e75\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Cooldown.Check\",\"Score\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"da2ff520-04c8-420f-ab43-8416a4758059\\\"}\",\"Equation\":\"0\",\"ValueSource\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"0.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Cooldown.Check\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"CreateConditionalEvent\":\"False\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Cooldown.Done\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Start timer - Buff/Debuff Cooldown Timer\",\"PresetId\":\"StartTimerTree\",\"Id\":\"b55a4b03-d91e-4513-9299-bb2aeac1a5ba\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Cooldown.Done\",\"Timer\":\"{\\\"BlackboardType\\\":1,\\\"Id\\\":\\\"da2ff520-04c8-420f-ab43-8416a4758059\\\"}\",\"ValueSource\":\"{\\\"ValueSource\\\":2,\\\"SubSaveData\\\":{\\\"Constant\\\":\\\"20.0\\\",\\\"BlackboardValue\\\":\\\"{\\\\\\\"BlackboardType\\\\\\\":0,\\\\\\\"Id\\\\\\\":\\\\\\\"\\\\\\\"}\\\",\\\"MessageArgument\\\":\\\"{\\\\\\\"MessageId\\\\\\\":\\\\\\\"Cooldown.Done\\\\\\\",\\\\\\\"Field\\\\\\\":null}\\\"}}\",\"StopTriggerMessage\":null,\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"\\\",\\\"ArgumentsData\\\":[]}\"}},{\"DisplayName\":\"Send Message - Trigger a Buff/Debuff\",\"PresetId\":\"MessageOnMessageTree\",\"Id\":\"ee785edc-77ed-4804-8633-06632970b723\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Cooldown.Done\",\"OutgoingMessage\":\"{\\\"MessageId\\\":\\\"Health\\\",\\\"ArgumentsData\\\":[\\\"{\\\\\\\"ValueSource\\\\\\\":2,\\\\\\\"SubSaveData\\\\\\\":{\\\\\\\"Constant\\\\\\\":\\\\\\\"10\\\\\\\",\\\\\\\"BlackboardValue\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"BlackboardType\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\"Id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"}\\\\\\\",\\\\\\\"MessageArgument\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"MessageId\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"Cooldown.Done\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"Field\\\\\\\\\\\\\\\":null}\\\\\\\"}}\\\"]}\"}},{\"DisplayName\":\"HUD - Display Cooldown Progress Bar\",\"PresetId\":\"HudStyleChangeTree\",\"Id\":\"f2038d5c-409c-4baf-986d-97ba7a66e2f5\",\"EnableDebugging\":false,\"TreeFieldData\":{\"TriggerMessage\":\"Cooldown.Done\",\"HudStyleChange\":\"{\\\"SlotSettings\\\":{\\\"int2(1, 0)\\\":\\\"{\\\\\\\"BlackboardValue\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"BlackboardType\\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\\"Id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"da2ff520-04c8-420f-ab43-8416a4758059\\\\\\\\\\\\\\\"}\\\\\\\",\\\\\\\"DisplayName\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"Cooldown\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"IconPath\\\\\\\":\\\\\\\"Icons/RulesVariables/Clock.png\\\\\\\",\\\\\\\"Size\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"ValueMode\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"ShowProgressBar\\\\\\\":\\\\\\\"True\\\\\\\",\\\\\\\"ShowValue\\\\\\\":\\\\\\\"False\\\\\\\",\\\\\\\"TimerFormat\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"FloatFormat\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"BoolFormat\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"MinValueValueSource\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"ValueSource\\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\\"SubSaveData\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\"Constant\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"BlackboardValue\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"BlackboardType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Id\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"MessageArgument\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"MessageId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":null,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":null}\\\\\\\\\\\\\\\"}}\\\\\\\",\\\\\\\"MaxValueValueSource\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"ValueSource\\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\\"SubSaveData\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\"Constant\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"60.0\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"BlackboardValue\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"BlackboardType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Id\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"MessageArgument\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"MessageId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":null,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":null}\\\\\\\\\\\\\\\"}}\\\\\\\"}\\\"}}\"}}],\"DisplayName\":\"Power Up with Key/Mouse Input (with cooldown) - Triggered if events are done and cooldown expires\",\"Description\":null,\"EnableDebugging\":false,\"Id\":\"2582d073-c00d-4143-acce-1956bd4e4883\"}],\"version\":-1,\"dataID\":null}"
  },
  "Type": 0,
  "Messages": {
    "Version": 1,
    "SaveData": "[{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Check\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Events.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Cooldown.Check\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Cooldown.Check\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Cooldown.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Cooldown.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Cooldown.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Health\",\"Color\":\"5EA1D7FF\",\"IsPermanent\":true,\"Parameters\":[{\"Type\":\"Int\",\"DefaultValue\":10,\"DisplayName\":\"<i>Health</i>\",\"UIConfigParameters\":[\"Range (-1000,1000)\"]}],\"Tags\":[\"PowerUp\",\"Default\"],\"HasColor\":true},{\"Enabled\":true,\"SystemMessage\":false,\"Message\":\"Cooldown.Done\",\"Color\":\"FFFFFFFF\",\"IsPermanent\":false,\"Parameters\":[],\"Tags\":[\"Default\"],\"HasColor\":false}]"
  },
  "Fields": {
    "Version": 8,
    "SaveData": "{\"Fields\":[{\"$type\":\"Sandbox.Engine.RuleTrees.Timer.RtTimerBlackboardFieldData, Sandbox.Engine\",\"ConcreteDefaultValue\":{\"Timer\":0.0,\"TimerState\":0,\"TimerType\":0},\"Id\":\"da2ff520-04c8-420f-ab43-8416a4758059\",\"BlackboardType\":1,\"IsSelectable\":true,\"FriendlyName\":\"PowerUp Loop Time\",\"Mode\":1,\"ValueFormatId\":0}],\"version\":-1,\"dataID\":null}"
  }
}

Increased Speed

Infinitely Triggered

The player needs to move faster to explore and dodge enemies and objects. They find a pair of shoes that make them move much faster.

Health Restoration

Repeat Trigger

The player finds a helmet of restoration while exploring. When they equip it, it slowly restores some of their health for a while.

Heal Skill (with Cooldown)

The player has just equipped a potion pack, giving them the ability to heal themselves every time they press "1" on the keyboard. It has a 30-second cooldown, so they need to use it wisely.

Increased Strength

One Time, Repeat, or Infinite Trigger

After killing a boss, the player finds and equips the Armour of Rage. They become much stronger and can now take on other enemies with greater ease while the effect lasts.

Defence Skill (with cooldown)

The player needs to get past some lava and has a full set of protective gear equipped, giving them the ability to increase their defence with a simple button press for 30 seconds.

Trigger Crowd Events

Wear equipment to trigger a Crowd Event for social interaction or cooperative play.

Use cases: Dance party/flash mob, complete a puzzle, etc.

Start: In a multiplayer game, the player learns (through a quest, hint, etc.) that a special item (e.g., dancing shoes) will let them start a dance or complete an action requiring emotes.

Gameplay Steps

  1. Get Equipment: Complete a challenge (e.g., parkour) or quest before other players to unlock NPC dialogue to get the item, discover it in a hidden place, etc.

  2. Hint: Learn what the equipment can trigger and how to equip it

  3. Equipment: Open Inventory and equip the item

  4. (Optional): The player learns another item is needed to trigger the Crowd Event and completes the necessary steps to get it

Outcome: Players follow the flow of the Crowd Event to complete it.

Build It

Simple - Equipping Item(s)

  • Trigger the Crowd Event

Complex - Equipping Item(s) + Portable Crowd Event Trigger

This logic allows multiple players to attempt to collect the equipment and trigger the crowd event by picking up the item that triggers the crowd event.

  • Hint: Inform players to collect and equip items, clearly explaining it is required to trigger a Crowd Event if they also find a certain pickable item.

  • Save pickable preset:

  • Pickable event tracking:

    • Create a local (L) True/False variable with initial value False.

  • Check Equipment + Pickable

    • Key/Mouse Trigger (checks if Equipped, then triggers Pickable check if done):

  • Hint: Use equip event message Events.Done to trigger a hint that the player needs to pick up the special item, place it where they want to start the Crowd Event, and use the key/mouse input you set to trigger a Crowd event at that location (and trigger any number of crowd events they want).

Mystery Dance Parties

In a social hub, while exploring, you find some shoes and a note telling you about a mysterious person who used to create dance parties wherever they went. If you can find the legendary item to complement the shoes, you too can create endless dance parties for your friends and everyone in the experience.

Explorer's Puzzle

While exploring tombs with friends, you come across an ancient crystal necklace that you realise could be used to open a door that you and your friends couldn’t get past, if you can perform a ritual requiring specific movements. You return to the door with your friends and use emotes to perform the ritual to finally open the door to your next adventure.

Unlock Player Class/Skills

Wear equipment (optional: also pick up a related item) to enable unique interactions or unlock related skills (singleplayer or multiplayer).

Use cases: Soft class system (e.g., mage, medic, scientist), special team role (e.g., leader, goalie), technological era reached (e.g., iron age, medieval ages, industrial age), social game roles, etc.

Start: Players are informed to wear a full set of equipment to unlock a unique role and skills.

Gameplay Steps

  1. Get Equipment: At game start or between levels, players find items in storage, a shop, etc.

  2. Hint: Learn player roles depending on which each equipment set is worn and how to wear it

  3. Equip: Open Inventory and equip the set of items

  4. Hint: Learn how to use skills related to the role accepted (which may include key inputs) and learn how to get a pickable item that may be needed (e.g., to shoot projectiles)

  5. (Optional): The player picks up an needed item (e.g., blaze staff) to unlock full skills

Outcome: The player can now use skills unique to their role. Other equipment may later be available to grow the player's skills. They could even change to a different role during the game.

Example: Horde Mode (Mage)

  • Place the Equipment: First, place the equipment you will use into the game world and ensure it is a collectible component with the "on equip" message filled with a simple message for the later check.

  • Add a Pickable Item: This can be any item, but in our example, we will use a magic wand. The item needs to be set up as pickable, and we also need to attach a spawner behaviour to the wand.

  • Linking Items Together: Attach the spawner behaviour to the wand. Place the spawner behaviour at the front of the wand where you want the fireball to fire from. Open the hierarchy on the left side panel. Find the wand and logic, then drag the logic over the wand to link them together. If done correctly, when you move the wand, the logic with the spawner behaviour should also move with it.

  • Create the Fireball: Create a fireball asset or any asset you want and put a projectile behaviour on it. Set it up to destroy on collision and fire at the start of the experience. No message setup is needed. You can also send a message on collision with an object, such as a health message with a negative value to damage the enemy.

  • Add a Speaker: Add a speaker to the fireball asset, ensuring it is set to detect entity. Change the detection range to its maximum and enable the "face entity" toggle. Change the detection to a specific tag and use a memorable tag for the enemy. Save this as a preset and give it a name.

  • Spawner Behaviour: Go back to the spawner and toggle the "use preset" option, selecting the fireball as the asset to fire. Change the spawn message to something memorable. Toggle "only once" and adjust the seconds between spawns as needed.

  • Add a Variable: Set up a variable in the rule system to check if the mage outfit has been equipped. Name this variable as desired.

  • Add a Math Rule: Add 1 to the variable if the trigger message from the "on equip" is triggered, indicating the item has been equipped.

  • Compare Values: Set up a compare value to check if the item is equipped. Assign a message like "check fire" to trigger this rule. If the variable equals 1, send the message that triggers the spawner to fire.

  • Add Mouse or Keyboard Controls: Add the trigger events rule and set it to your preferred setting. Change the message to the "check fire" message that the compare value needs. This setup will check when the player presses the fire key to ensure they have the equipment. If they do, it fires the fireball; if not, it does nothing.

Horde Mode

You and a few friends are playing a horde mode game where endless waves of enemies keep coming at you. You have equipped the mage outfit and picked up your staff. Using key presses, you can fire a fireball, shoot lightning, and hit an area with ice. Your friends have taken on roles such as healers, damage dealers, and tanks. Together, you must survive wave after wave of enemies and see how long you can last. For this to work each character needs to use a projectile to hit the enemies and enemies to hit the players.

Social Game

In a social game, you have chosen to be the doctor. Your job is to go around healing people and reviving them whenever possible. Your friends have taken on other social roles, like a police officer or delivery driver. Together, you need to earn money and collectively pay your rent; otherwise, the landlord will kick you out, causing you to lose the game.

Activate Equipment

Complete minor events to activate an equipment item's usefulness.

Use cases: Recharge, repair, upgrade, restore magical power, etc.

Start: The player learns they must complete multiple events to activate and use equipment.

Gameplay Steps

  1. Get Equipment: Discover via hints/exploration, given by an NPC, or buy/trade/craft, dropped from killing an enemy, etc.

  2. Hint: Learn the equipment's use and what events must be completed to activate it

  3. Event(s): Carry out all required actions to activate the equipment, which may include setting it down, gathering materials, using a workbench, etc.

  4. Equip: Collect the equipment again if necessary, then open Inventory and equip the item

  5. Hint: Learn how to use the equipment and what to do if the equipment's use eventually ends (e.g., battery needs charging)

  6. (Optional): If the player must repeat the events to re-activate the equipment later, trigger a notification when the equipment's effects expire with simplified instructions to restore it

Outcome: The player may use the equipment's benefit for the rest of the game, or they may use it for short periods and then re-activate it in cycles.

Build It

Each event counted will be a step in the process to activate equipment. Equipping an item is one of the steps required. This may mean many steps are counted to equip a full set of items, then complete additional actions to finish the remaining steps to activate the equipment.

Equipment

  • Hint: Once equipped, trigger a hint to inform the player what steps are needed to activate the equipment and what to do if it breaks, runs out of fuel/battery, loses magical power, etc. Note: It may be best to allow the player to use the equipment once, then trigger this message to learn what to do to re-activate it.

Outcomes (some options)

  • Charge equipment: Note: Though event tracking may not be needed for this flow to work, it can be very useful for situations where logic can't communicate smoothly with each other and can be counted easily via Game Rules. Note: This requires collectable and pickable components, which are not compatible because both use Interact to trigger. To work around this (example):

    • Event 1: The player collects an equipment item.

    • Event 2: The player drops it at a charge base, which sends a Drop message.

    • Event 3:

      • The Drop message triggers Actor Property Switcher to turn on visibility and collisions for an identical equipment asset on the charge base (not collectable) and triggers a timer in Game Rules to start.

      • When the timer is finished, a message Out spawns a collectable version of the equipment asset with an On Equip message.

      • The On Equip message triggers Rules to check if all events are done.

      • Events.Done triggers other logic that provides for the equipment's utility.

  • Fix broken equipment:

    • Event 1: Place broken equipment at a workbench

    • Event 2, 3, and 4: Place a specific part/resource (wood, transistor, etc.) at a workbench

    • Event 5: Interact with the workbench to do the repair (starts a timer that appears on the HUD as a Progress Bar).

    • Event 6: Player equips the fixed equipment, which triggers Events.Done and activates the equipment's utility again.

  • Restore an item's power:

    • Event 1: Place the item on an altar in a holy place

    • Event 2: Collect holy water from a cistern near the altar

    • Event 3: Interact to wash evil from the item on the altar with the holy water

    • Event 3: Interact to pray to a god to restore the item's power, which triggers Events.Done and activate the items utility.

Power Tools

In a resource management game, you need to power tools to get the job done. Over time, you'll gradually get more efficient equipment to keep your costs down. Each power tool has its own energy needs (electric, gas, etc.) that you must supply to keep your operation running smoothly.

Example:

  • Event: recharge/refill equipment (e.g., place on a charge base, fill with gas, etc.)

  • Event: equip charged/refilled item to use it

  • Re-activation: Set up another counter to decrease battery/gas % on HUD each time you keypress to use the equipment so the player will know to recharge it

Equipment Repair and/or Upgrade

Properly working equipment is vital if you want to explore new areas, gain more resources, survive, etc. When it wears down eventually, you must use your workbench and the right collected materials (e.g., ore, leather, copper wiring, etc.) to fix it and/or upgrade it since it's not easy to buy new equipment in your situation.

  • Event (any number): If necessary materials are collected, interact with a workbench to fix/upgrade equipment

  • Event: equip repaired/upgraded item to use it

  • Re-activation: Set up another counter to decrease the equipment's wear on HUD each time you use it so the player will know to repair it, and notify when it can be upgraded

Holy Relic

You are an adventurer seeking a legendary relic to save your kingdom, but when you discover it you realize it no longer emits its holy light. Ancient scripts detail how it was blessed by a god ages ago, so you follow the ritual to see if you can restore its power. However, there could be more potential hidden in the relic if you prove yourself worthy to the gods who may bless it.

  • Event (any number): place a (pickable) shard of the relic on an altar

  • Event: Pray to a diety to restore its powers

  • Event: Equip item to unlock godly powers to use on command

  • (Optional): The player may complete new events to make the item even more powerful, or they may fall out of favor with the god and approach another god to give it a new power

The provided combined with the logic below:

Avoids an exploit, forcing each event to be completed once to reach the goal.

Counts each player's events uniquely in multiplayer games (local variables).

Works in singleplayer games.

Reusable to count other events (messages modify goal and counter).

Set up a unique one-time trigger per event: An event can be any object or Rules logic (e.g., equipped items, consumed items, quick steps in a process, etc.). Currently, Quests can not be counted. Each event needs to trigger its own Message Broadcaster with a unique message. Every Message Broadcaster will send the message Event.Triggered to Rules (Broadcast Only Once toggle set to True).

Add a rule. Set its Required Message by creating the message Events.SetGoal with arguments (click "Edit Argument," choose Number(Integer) as the type, and label it "Total Required"). This lets you set the goal anytime during play and reuse.

Add a rule that requires the message Event.Triggered. Set it to add 1 to the Event Counter variable and save the result as that variable. Send a message out Events.Check. This tests to see if the goal is met each time an event is added.

Add a rule that requires the Events.Check message sent from the Math rule. Set it to compare the Event Counter variable to the Event Goal variable, with the condition set to be equal (compare once). Set the Message to Send (Out) as Events.Done. When the counter equals the goal, the message will be sent.

Add a rule that requires the Events.CounterReset message. Set it to modify the Event Counter variable to be a fixed value of 0.

Copy and paste the ruleset below into your gridboard and follow the for each event type you will count and check. Note: Create new messages with arguments and add rules to track more event types. Delete old messages via Settings in the Edit menu.

Asker behaviour - hint that the player must wear the right item(s) to prove their identity or be ready for something.

Toggle OFF with Events.Done (multiple items) or On Equip message (one item).

Asker behaviour - informs player to proceed since they are wearing correct items.

Toggle ON with Events.Done (multiple items) or On Equip message (one item). Initial state False.

Collectable component - On Equip message (one item), Collect message.

For multiple equipment: Also apply [] logic to count events (equipping items) individually and check if an event total is met.

Hint: Collect message triggers an Asker or telling the player to equip the item(s) and how.

Hint: On Equip message (one item) or Events.Done (multiple items) triggers Asker or that reminds the player to return to the NPC (for unlocked dialogue).

Asker behaviour - hint that the player must equip certain items to read/understand something for a quest.

Toggle OFF with Events.Done (multiple items) or On Equip message (one item).

Asker behaviour - informs player the equipped item contains the information they needed, makes it possible to understand what they were trying to read, etc.

Toggle ON with Events.Done (multiple items) or On Equip message (one item). Initial state False.

Quest: Add a of your choice that launches with the Asker response message.

Collectable component - On Equip message (one item), Collect message.

For multiple equipment: Also apply [] logic to count events (equipping items) individually and check if an event total is met.

Trigger Volume in front of the object the player is attempting to read/understand sends Events.Check to Rules or All to test if equipment has been worn.

Hint: Collect message triggers an Asker or telling the player to equip the item(s) and how.

Hint: On Equip message (one item) or Events.Done (multiple items) triggers Asker or that reminds the player to return to the item that couldn't be read.

Set up additional objects and for the triggered quest.

Object: Upon avatar detection or interaction, a Speaker component sends a message to a that informs the player what equipment is needed to interact with the object and where/how to get it.

Equipment: Collectable component - On Equip message (one item), Collect message. Use [] logic to be able to trigger new interactions repeatedly.

Hint: Collect message triggers a informing player how to equip the item and what to do with it.

Spawn Items Upon Interaction (e.g., fruit): Asset Spawner behaviour with Toggle ON from On Equip message, triggered to spawn with Interact message.

Polish (options): Instead of Asset Spawner, use Replace Asset triggered by the On Equip message. Replace with an identical asset with a Drop component to drop a preset of objects upon interaction:

Pick up objects: Pickable and Health components

Collect objects, count resources: Collectable component with Collect message, number (integer) variable for item count, rule to display variable, rule adds 1 to the variable when Collect message is received.

Spawn Items to Use: Replace Asset behaviour triggered by On Equip message that replaces with a preset:

Carry/Detect: Pickable with tag.

Shoot Projectile: Pickable with child Asset Spawner triggered by On Equip, which spawns Projectile triggered by a .

Set Spawned Items to Trigger Logic When Destroyed: Use Asset Spawner to spawn an object with a Health component, set up a way to destroy it, and trigger other logic with its Message on Death.

The following options use [] logic, which can be duplicated and modified to track other events or reset to reuse.

(recharge, refuel, repair, upgrade, etc. for repeat use/empty cycles)

Collectable component - On Equip message (one item), Collect message.

For multiple equipment: Apply [] logic to count events (equipping items) individually and check if an event total is met.

Hint: Use Asker or to hint what the equipment does and how to put it on once the player has collected it (trigger with the Collect message).

Place a logic asset with Trigger Volume component. Set the detection area and Enter message. Add a Toggle component that turns OFF with On Equip as Message to Destroy (or Events.Done if using [] logic).

Barrier: Block access with an invisible asset and trigger a hint. Set collisions to change using Actor Property Switcher with On Equip message (or Events.Done if using [] logic).

Checkpoint: Detect the player, trigger a hint, and activate Avatar Checkpoint.

Hint: Asker or hint for needed equipment and how to get it.

For each enemy, applyReplace Asset behaviour triggered by the Enter message. Set to replace with a preset of the same asset that has Melee Enemy behaviour. Either add many enemies or enemies with a very high amount of Health so the player must use equipment to survive.

Player Takes Continuous Damage When in an Area (requires [] logic):

Check if Equipped: Create a logic asset with Message Broadcaster behaviour to send Events.Check to Rules forever with a Delay Between Broadcasts of 1 second. Set it to Wait Before Broadcast with the Enter message required. Add a Toggle component that turns OFF with the message Events.Done and an Initial Behaviour State set as True. If the player enters the Trigger Volume, the broadcaster checks the Rules to see if required items have been equipped.

Reduce Player Health if Not Equipped: Add a rule triggered by the message Events.Check. Set it to compare the Event Counter variable to be less than the Event Goal. Set the Message to Send as Health with a large negative argument value. If the player hasn't equipped the required items yet, this rule will reduce player health when triggered by the message broadcaster every 1 second.

You must use [] logic to count events (equipping one or more items) individually and check if an event total is met to trigger other logic.

If your Experience must track multiple events, use []. Note that both rulesets use local (L) variables that track each player's event count uniquely, but in some cases one player may need multiple events tracked.

Hint: Use Asker or to hint at what the equipment does, and how to put it on once collected it.

Add a or rule for each state you wish to trigger. Set each rule's message Out as the Events.Check message needed. Set up your outcome logic to receive the Events.Done message needed.

Change time/weather/world lighting: Weather Switcher, / Visual FX, etc

Reveal secrets/change player view: Post Process Effects, Visual FX, Light, etc.

Spawn/kill assets: Asset Spawner (spawn presets), Plant (to destroy), etc.

Change asset visibility/collisions (keeps logic): Actor Property Switcher

Toggle any behavior on/off: Toggle

Switch between two logic states (sends a message per state): Switch

Start: The player discovers equipment which has certain . This may not be known until it is equipped.

Create Assets with VoxEdit (see to learn more).

: In , set draft assets as Ready to finalize them for your Experience.

Collectable component - On Equip message (one item), Collect message.

For multiple equipment: Apply [] logic to count events (equipping items) individually and check if an event total is met.

Hint: Use Asker or to hint what risks and benefits the equipment has and how to put it on once the player has collected it (trigger with the Collect message).

Note: If you're using [] logic for counting multiple equipment to trigger an outcome, use the message Events.Done instead of the On Equip message in the logic below.

Confusion Use the On Equip message to trigger various logic to indicate the player's perception of reality is inaccurate, such as Post Process Effects, Visual FX, making previously stationary assets move with Basic Platform behaviour, etc.

Blocked Skill: Use the On Equip message to temporarily turn off an (don't forget to trigger the skill to work again after the effect is done).

Set up a Message Broadcaster that sends the message Health with a negative argument value, a Broadcast Duration set to Forever and a Delay Between Broadcasts set to 1 second.

Add a Togglecomponent with Initial Behaviour State toggle set to False with the On Equip message to turn it ON and a message of your choice to turn it OFF (the solution).

Create a on the HUD to track poison, hunger, time to recovery, etc.

In Game Rules, create a time variable. Add a rule to count down from 60 seconds. Add a (any amount needed) to check the timer variable against a fixed value, such as 50 seconds, and send a message Out. Add subtle visual cues like changed vision with Post Process Effects and Visual FX.

Wear the Set: Find and equip the remaining pieces of a cursed equipment set (tracked by [] logic). Use the message Events.Done (sent when all are equipped) to trigger logic that ends any negative effects.

Use Post Process Effects behaviour to modify the player camera and later restore player vision back to normal.

Collectable component - On Equip message (one item), Collect message.

For multiple equipment or repeat trigger: Apply [] logic to count events (equipping items) individually and check if an event total is met.

Hint: Use Asker or to hint at what buff the equipment offers, how long it lasts, and how to put it on once collected it (trigger with the Collect message).

Trigger Once (simple): In the rule system, add a rule. Set On Equip as the Required Message (or Events.Done if using [] logic). Send a Power Up message Out. Set the message argument to customise the effect (use a negative number to apply a debuff).

You must use [] logic to count events (equipping one or more items) individually and check if an event total is met to trigger other logic.

Set up logic for a one time trigger. Create a time variable. Add a rule to a desired loop time. Set the Power Up message you chose as the Required Message and send the On Equip message Out (or Events.Done if using [] logic) to trigger a loop.

You must use [] logic to count events (equipping one or more items) individually and check if an event total is met to trigger other logic.

You must use [] logic to count events (equipping one or more items) individually and check if an event total is met to trigger other logic.

Cancel: Add a Math rule to subtract 1 from the Event Counter variable used in the [] setup (trigger with any message).

Collectable component - On Equip message (one item), Collect message.

For multiple equipment or repeat trigger: Apply [] logic to count events (equipping items) individually and check if an event total is met. Substitute the On Equip message with Events.Done in the rest of the setup notes below.

Hint: Use Asker or to hint at what buff the equipment offers, how long it lasts, and how to put it on once collected it (trigger with the Collect message).

Anywhere: Toggle ON a Crowd Event with On Equip message.

Specific location: Send the On Equip message to spawn a Trigger Volume that will trigger the Crowd Event with a message sent when the player enters the volume.

Apply [] logic to count events (equipping items) individually and check if an event total is met.

Create a Pickable asset with custom logic. Set a Message on Picked.

Set a logic asset as the child of the Pickable asset and apply Crowd Event behaviour and set a Crowd Event Message Required.

Save as a and delete the objects.

Spawn pickable preset: Set an Asset Spawner to spawn the preset with Required Message as Events.Done.

Add a rule with Required Message as Message on Picked.

Add a rule with Required Message Events.Done. Set it to compare the True/False variable to be equal to True. Set message Out as Crowd Event message.

Create a or rule to send a Events.Check message to check that the event counting for equipment is done.

Pickable Check: Find the rule that tracks equipped item count and change its message Out to the Events.Check message that checks the Pickable event status.

You must use [] logic to count events (equipping items + other small tasks) individually and check if an event total is met.

Hint: Use Asker or to hint at what the equipment can do and how to equip it (trigger with an equipment item's Collect message).

📑
⚙️
🛡️
👥
👤
♻️
Publishing
Workspaces
preset
Event Count & Check Ruleset
integration notes
Event Count & Check
Event Count & Check
Event Count & Check
Activate Equipment
Event Count & Check
Event Count & Check
Event Count & Check
Multi Event Count & Check
Event Count & Check
Event Count & Check
unlocked skill
Event Count & Check
Event Count & Check
Repeatedly
Infinitely
Key/Mouse Input (with cooldown)
Event Count & Check
Event Count & Check
Event Count & Check
Event Count & Check
Event Count & Check
Event Count & Check
Event Count & Check
Edit Number Value
Edit Number Value
Edit True/False Value
Compare Numbers
Compare Numbers
Compare True/False
Compare Numbers
Popup window
#quest-cursors
Math

Simple or Complex Trigger

Complex Trigger

Simple or Complex Trigger

  • Once, Repeated (for a time), Forever, Key Input with Cooldown

Complex Trigger

HOW IT WORKS

Creators: 1. Apply a Collectable component to equipment to see On Equip options. 2. Set a Message On Equip (what to send). 3. Set Equipment Broadcast Type (where to send it). 4. Set the On Equip message as the Message Required in logic you want to trigger.

Players: 1. Collect the equipment item. 2. Press I to open your Inventory. 3. Select the equipment and press E to equip, or simply double click it. 4. Enjoy triggered outcomes!

Spawn Point
ℹ️
⚠️
Event Count & Check
Event Count & Check
Event Count & Check
Event Count & Check
Event Count & Check
Compare Numbers
Popup window
Popup window
Popup window
Popup window
Popup window
HUD
Math
Popup window
Popup window
Popup window
Popup window
Popup window
Popup window
Popup window

(Power, Speed, Defense)

WORLD/GAMEPLAY
Unlock NPC Interactions
Trigger Unique Quests
Trigger Unique Interactions
Avoid Hazards
Toggle Between States
PLAYERS
Enhance Player with Equipment Attributes
Injure or Curse the Player
Trigger Power Ups (Speed, Attack Power, Damage Resistance, Health, Oxygen)
Trigger Crowd Events
Unlock Player Class/Skills
Activate Equipment
progress bar
quest
Start Timer
Start Timer
Attributes
About Equipment Templates
Key Input
Mouse Input
Key Input
Mouse Input
Key Input
Send Message
Roman Soldier Quest Example
Cover

Message on Equip (GM 0.9)

A message can be sent to All logic, the player (Self), or the Rules system when the player equips a collectable equipment asset.

Choose Self to send the message to the player who collected and equipped the item.

✅