Thank you for visiting this site.
In this article, we will provide a detailed explanation of “Visual Scripting”, the core system of Game Creator 2.
Unlike node graph systems like Playmaker or Unity’s built-in Visual Scripting, it adopts a task list approach (a list that executes instructions from top to bottom) — this is its defining feature.
Official documentation: Game Creator 2 Documentation
You can find a list of all articles in this series below.
Complete Article List — Game Creator 2 Complete Guide Series Indexen.senkohome.com/gamecreator2-series-index/
What Is Visual Scripting?
Game Creator’s Visual Scripting consists of 3 components + 1 (Hotspot):
| Component | Role |
|---|
| Actions | A list of instructions executed sequentially from top to bottom |
| Triggers | Receives events occurring in the scene (key input, collision, interval, etc.) and executes Instructions |
| Conditions | Each Branch holds a set of conditions and instructions; evaluates from top to bottom and executes the instructions of the first successful Branch |
| Hotspots | Does not affect gameplay directly but indicates “interactability” through visuals, sound, and character attention |
Naming Conventions
Actions contain multiple Instructions
Conditions contain multiple Branches, each Branch holding Conditions and Instructions
Trigger listens for a single Event
High-Level Scripting Philosophy
Designed so you can write using vocabulary closer to human intuition than programming languages. Operations like “make this character follow that object” can be written as a single instruction without breaking them down into low-level vector calculations.
Coexists with Graph-Based Systems
You can combine it with Playmaker or Unity Visual Scripting without issues. GC2 excels at “quickly assembling common patterns”, while graph-based systems excel at “writing detailed control logic” — they complement each other.
Game Creator Hub
A community hub site (officially recommended) where Instructions / Conditions / Events are distributed for free. You can expand your vocabulary without any programming.
Actions (Instruction Lists)
Creation
- Right-click in Hierarchy →
Game Creator > Visual Scripting > Actions
- Or add via Inspector →
Add Component > Actions on an existing object
- Delete via the gear icon →
Remove Component
Adding Instructions
- Click
Add Instruction for a dropdown → select from categories or use the search bar to filter directly
- Right-click an existing instruction →
Insert Above / Insert Below to insert at any position
Fuzzy Search
GC2 has its own index search that matches semantically similar results even with typos. For example, searching move will find not only Move Character but also Change Position.
Built-in Help
Right-click an instruction → Help to open a floating window with descriptions and parameter lists.
Execution Order
Instructions are executed sequentially from top to bottom. The next instruction does not run until the current one completes (instructions like Wait to Complete inherently wait). When the end of the list is reached, the Actions component finishes.
Debug Features
Right-clicking an instruction reveals the following toggles:
- Disable Instruction: Disables the instruction (shown grayed out). Click again to re-enable
- Breakpoint: Pauses the editor just before that instruction (editor only, does not affect builds)
Triggers (Event Listeners)
Creation
- Right-click in Hierarchy →
Game Creator > Visual Scripting > Trigger
- Or
Add Component > Trigger on an existing object
Basic Structure
A Trigger monitors a single Event and executes its internal Instructions list the moment it fires. The Instructions portion operates the same as Actions.
Changing the Event
Click the current Event name → select a different Event from the dropdown (Fuzzy Search enabled).
Representative Event Categories
- Audio: Monitor volume changes
- Cameras: Shot transitions
- Characters: Input / combat / death / ragdoll, etc.
- Input: Buttons, cursor, flick, touch
- Interactive:
On Interact / On Focus / On Blur
- Lifecycle:
On Start / On Update / On Interval, etc.
- Logic: Hotspot activation,
On Receive Signal
- Physics: Collider Enter/Exit, collisions
- Storage: Save, load, delete
- UI: Selection, hover
- Variables: Variable change monitoring
Conditions (Conditional Branching)
Conditions Component Structure
- Evaluates Branches from top to bottom
- Each Branch holds a “Conditions (condition list)” and an “Instructions (instruction list)”
- If all conditions in the list are true, that Branch’s instructions execute and processing ends
- If any condition returns false, it moves to the next Branch
- An empty condition list always succeeds (can be used as a default branch)
Adding and Reordering Branches
Add Branch adds to the end
- Drag the
= on the right to reorder
- Use the
Description field for memo-style labels (does not affect logic)
Condition Negation
The green toggle on the left of each Condition applies NOT. For example: NOT on Is Player Moving returns true when the player is stationary.
Creation
- Right-click in Hierarchy →
Game Creator > Visual Scripting > Conditions
- Or
Add Component > Conditions
Hotspots (Interaction Visualization)
Overview
Hotspots are presentation components that do not directly affect gameplay. They provide mechanisms to indicate interactable objects to the player through visuals, sound, and character attention.
For example, you can highlight an object when the player approaches, or make a character’s head turn toward an important object.
Generally, Triggers and Hotspots are placed together. The Trigger handles the actual interaction logic, while the Hotspot signals to the player that the object is interactable.
Components
The Hotspot component consists of a Target field and a Mode. Target is the object to track, and Mode determines when the Hotspot responds.
Mode (4 Types)
| Mode | Behavior |
|---|
| Radius | Responds when the Target enters a specified radius. A numeric radius field is displayed |
| On Interaction Focus | Responds when the Target’s Interaction system focuses on the Hotspot |
| On Interaction Reach | Responds when within the Target’s Interaction system reach, but focus is on another object |
| Always Active | Always responds regardless of distance from the Target |
On Interaction Focus and On Interaction Reach require the Target to have a Character component.
Gizmos and Debug
- Editor: Selecting a Radius mode Hotspot displays a red gizmo in the scene showing the response distance
- Runtime: The gizmo is displayed in a lighter color, turning green when the Target activates the Hotspot
Distance Check Mechanism
Hotspot distance checks do not use Unity’s physics engine. It uses a simple distance calculation between the Hotspot’s center and the Target’s position, so a Collider component is not required.
How to Create
- Right-click in Hierarchy →
Game Creator > Visual Scripting > Hotspot to create as a scene object
- Or add
Add Component > Hotspot to an existing GameObject
Spots (Presentation Elements)
Spots are individual presentation units that define what happens when a Hotspot is activated/deactivated. Add them via the Add Spot button dropdown.
- Evaluated from top to bottom
- Multiple Spots of the same type can be placed, but when effects overlap, the later one overrides
Audio > Play Sound
Plays a UI sound effect when the Hotspot is activated/deactivated.
Characters > Look At
When the Hotspot is activated, the Character looks at the Hotspot’s center, and smoothly looks away when deactivated. Works with the Character’s IK (Look at Target rig) to rotate head, neck, chest, and spine.
Game Objects > Activate Object
When the Hotspot is activated, it enables an existing GameObject instance in the scene, and hides it when deactivated.
Game Objects > Instantiate Prefab
When the Hotspot is activated, it instantiates (or enables) a Prefab GameObject, and hides it when deactivated.
Materials > Change Material
Switches materials based on whether the Hotspot is active or inactive. Useful for object highlighting effects.
UI > Change Text
Overwrites the value of a specified Text component.
UI > Cursor
Changes the cursor image when hovering over the Hotspot.
UI > Show Floating Text
When the Hotspot is activated, displays text on a world-space canvas, and hides it when deactivated. Uses a default UI if no Prefab is specified.
Instruction:
- Activate Hotspots (Visual Scripting category): Toggles Hotspot activation/deactivation by type
Event:
- On Hotspot Activate (Logic category): Fires when the associated Hotspot is activated
- On Hotspot Deactivate (Logic category): Fires when the associated Hotspot is deactivated
Properties (Common Dynamic Value System)
Many instructions, conditions, and events support dynamic selection of field values via dropdowns. This is the Property feature.
- Example:
PropertyGetPosition can dynamically select from “constant Vector3”, “Player position”, “Main Camera position”, “Local Variable”, “Nested Access”, etc.
- Provided as
PropertyGetXXX classes from scripts
- This allows switching between “hardcoded coordinates” and “runtime-determined coordinates” in the UI
Debug Support Summary
| Feature | Target | Usage |
|---|
| Disable | Instruction / Branch | Right-click → Disable |
| Breakpoint | Instruction | Right-click → Breakpoint (editor only) |
| Fuzzy Search | Add Instruction / Add Condition / Event switch | Catches typos and synonyms |
| Built-in Help | Any node | Right-click → Help |
| Hub Integration | Node palette | Get additional instructions from the community |
Creating Custom Instructions / Conditions / Events with Scripts
Programmers can write custom nodes in C#. Generate templates via Project right-click → Create > Game Creator > Developer > C# Event (or Instruction / Condition).
Event Example (Custom Event)
using System;
using GameCreator.Runtime.VisualScripting;
[Serializable]
public class MyEvent : Event
{
protected override void OnStart(Trigger trigger)
{
base.OnStart(trigger);
_ = trigger.Execute(this.Self);
}
}
- The parent class
Event has many virtual methods similar to MonoBehaviour (OnAwake / OnStart / OnEnable, etc.). See Event.cs for details
- Triggers fire via
trigger.Execute(target). The return value is an async Task
- Fire-and-forget:
_ = trigger.Execute(this.Self);
- Await completion:
await trigger.Execute(this.Self);
target is the GameObject treated as the “Target” for the executed Instructions
Decoration Attributes
C# attributes to make nodes easier to work with in Visual Scripting.
| Attribute | Meaning | Example |
|---|
[Title("Name")] | Node title (auto-generated from class name if unspecified) | [Title("Hello World")] |
[Description("...")] | Description (used in Hub overview) | |
[Image(typeof(IconCubeSolid), Color.red)] | Icon and color | |
[Category("Cat/Sub/Name")] | Submenu hierarchy | |
[Version(major, minor, patch)] | Semantic version (must increment for Hub updates) | [Version(1, 5, 3)] |
[Parameter("Name", "Description")] | Public field description (can be applied multiple times) | |
[Keywords("hide")] | Additional keywords for Fuzzy Search | |
[Example("...")] / [Example(@"multiline")] | Usage examples. Markdown syntax recommended | |
[Dependency("gamecreator.inventory", 1, 5, 2)] | Required module specification (blocked in Hub if not owned) | |
Prerequisites for Sharing Custom Events on the Hub
When publishing to the Hub, properly setting Title / Version / Description / Keywords / Dependency is essential to avoid searchability and compatibility issues for users.
Instructions — Full List: 312 Core Types
Categories match the Visual Scripting dropdown hierarchy as-is. Module-specific instructions (Inventory, Dialogue, Stats, Quests, Behavior, Perception, Shooter, Melee) are covered in their respective asset articles — only core instructions are listed here.
Animations (8)
| Instruction | Description | Main Parameters |
|---|
| Change Animator Float | Changes an Animator Float parameter value | Parameter Name / Value / Duration / Easing / Wait to Complete / Animator |
| Change Animator Integer | Changes an Animator Integer parameter value | Parameter Name / Value / Duration / Easing / Wait to Complete / Animator |
| Change Animator Layer | Changes an Animator layer weight | Layer Index / Weight / Duration / Easing / Wait to Complete / Animator |
| Change Blend Shape | Changes a Blend Shape parameter value | Skinned Mesh / Blend Shape / Value / Duration / Easing / Wait to Complete |
| Play Animation Clip | Plays an Animation Clip on an Animator | Animation Clip / Animator |
| Set Animation | Sets an Animation Clip value | To / Animation Clip |
| Set Animator Boolean | Sets an Animator Bool parameter | Parameter Name / Value / Animator |
| Set Animator Trigger | Sets an Animator Trigger parameter | Parameter Name / Animator |
Application (2 + Cursor 3)
| Instruction | Description | Main Parameters |
|---|
| Open Web Page | Opens a web page in the default browser | URL |
| Quit Application | Quits the application | — |
| Cursor Texture | Changes the hardware cursor image | Texture / Tip / Mode |
| Cursor Visibility | Shows/hides the hardware cursor | Is Visible |
| Lock Cursor | Sets the pointer lock mode | Lock Mode |
Audio (21)
| Instruction | Description | Main Parameters |
|---|
| Audio Mixer Parameter | Changes an exposed Audio Mixer parameter | Audio Mixer / Parameter Name / Parameter Value |
| Audio Source Pitch | Changes Audio Source pitch | Audio Source / Pitch / Transition |
| Audio Source Volume | Changes Audio Source volume | Audio Source / Volume / Transition |
| Change Ambient Volume | Changes Ambient volume | Volume |
| Change Master Volume | Changes Master volume (affects all channels) | Volume |
| Change Music Volume | Changes Music volume | Volume |
| Change Snapshot | Smoothly transitions to an Audio Snapshot | Snapshot / Transition |
| Change Sound Effects Volume | Changes Sound Effects volume | Volume |
| Change Speech Volume | Changes Speech volume | Volume |
| Change UI Volume | Changes UI volume | Volume |
| Fade All Ambient | Stops all Ambient tracks | Wait To Complete / Transition Out |
| Fade All Music | Stops all Music tracks | Wait To Complete / Transition Out |
| Play Ambient | Loop-plays an Audio Clip (for background sounds) | Audio Clip / Transition In / Spatial Blending / Target |
| Play Music | Loop-plays an Audio Clip (for BGM) | Audio Clip / Transition In / Spatial Blending / Target |
| Play Sound Effect | Plays an Audio Clip SE once | Audio Clip / Wait To Complete / Pitch / Transition In / Spatial Blending / Target |
| Play Speech | Plays an Audio Clip voice once | Audio Clip / Wait To Complete / Spatial Blending / Target |
| Play UI Sound | Plays a UI sound effect for screen presentation | Audio Clip / Wait To Complete / Pitch / Spatial Blending / Target |
| Stop Ambient | Stops a playing Ambient track | Audio Clip / Wait To Complete / Transition Out |
| Stop Music | Stops a playing Music track | Audio Clip / Wait To Complete / Transition Out |
| Stop Sound Effect | Stops a sound effect | — |
| Stop Speech On Game Object | Stops Speech on a specified GameObject | Target |
Cameras (3 + Sub 35)
Root: Change To Shot / Revert To Previous Shot / Set Main Shot. See the Camera System article for details.
Characters (Core 67)
See the Character System article for details.
Debug (8 + Console 5 + Gizmos 1)
| Instruction | Description | Main Parameters |
|---|
| Beep | Plays a beep from the PC’s internal speaker | — |
| Clear Console | Clears console messages | — |
| Comment | Displays a comment in the Instructions list (does nothing at runtime) | Text |
| Frame Step | Advances one frame while editor is paused | — |
| Log Number | Outputs a numeric message to the console | Number |
| Log Text | Outputs a text message to the console | Message |
| Pause Editor | Pauses the Unity editor (editor only) | — |
| Toggle Console | Toggles the console window display | — |
| Console Close | Closes the runtime console | — |
| Console Command | Executes a console command | Command |
| Console Open | Opens the runtime console | — |
| Console Text | Outputs text to the runtime console | Message |
| Console Toggle | Toggles the runtime console display | — |
| Gizmo Line | Draws a line gizmo in the scene view | — |
Game Objects (8 + Components 8 + Pooling 2)
| Instruction | Description | Main Parameters |
|---|
| Change Layer | Changes a GameObject’s layer | Layer / Children Too / Game Object |
| Change Name | Changes a GameObject’s name | Name / Game Object |
| Change Tag | Changes a GameObject’s Tag | Tag / Game Object |
| Destroy | Destroys a GameObject instance | Game Object |
| Instantiate | Creates a new GameObject instance | Game Object / Position / Rotation / Save |
| Set Active | Changes a GameObject’s active state | Game Object |
| Set Game Object | Sets a GameObject value to another | Set / From |
| Toggle Active | Toggles a GameObject’s active state | Game Object |
| Add Component | Adds a component | Game Object |
| Disable/Enable Collider | Enables/disables a Collider | Game Object |
| Disable/Enable Component | Enables/disables a component | Game Object |
| Disable/Enable Renderer | Enables/disables a Renderer | Game Object |
| Remove Component | Removes a component | Game Object |
| Pool Destroy | Destroys a GameObject pool | Game Object |
| Pool Prewarm | Preallocates pool instances | Game Object / Pool Size |
| Instruction | Description | Main Parameters |
|---|
| Disable Input Action | Disables an Input Action | Input Asset |
| Disable Input Map | Disables an Input Map | Input Asset |
| Display Touchstick Left | Shows/hides the left touch stick | Show |
| Display Touchstick Right | Shows/hides the right touch stick | Show |
| Enable Input Action | Enables an Input Action | Input Asset |
| Enable Input Map | Enables an Input Map | Input Asset |
Lights (2)
| Instruction | Description | Main Parameters |
|---|
| Light Color | Smoothly changes a light’s color | Color / Light / Duration / Easing / Wait to Complete |
| Light Intensity | Smoothly changes a light’s intensity | Intensity / Light / Duration / Easing / Wait to Complete |
Math > Arithmetic (13)
| Instruction | Description | Main Parameters |
|---|
| Absolute Number | Gets the absolute value | Set / Number |
| Add Numbers | Adds two values | Set / Value 1 / Value 2 |
| Clamp Number | Clamps a value within a range | Set / Value / Minimum / Maximum |
| Cosine | Sets a cosine value | Set / Cosine |
| Divide Numbers | Divides | Set / Value 1 / Value 2 |
| Increment Number | Adds a value and assigns to itself | Set / Value |
| Modulus Numbers | Modulus operation | Set / Value 1 / Value 2 |
| Multiply Numbers | Multiplies | Set / Value 1 / Value 2 |
| Set Number | Assigns a value | Set / From |
| Sign Of Number | Gets the sign (-1 or 1) | Set / Number |
| Sine | Sets a sine value | Set / Sine |
| Subtract Numbers | Subtracts | Set / Value 1 / Value 2 |
| Tangent | Sets a tangent value | Set / Tangent |
Math > Boolean (6)
| Instruction | Description | Main Parameters |
|---|
| And Bool | AND operation | Set / Value 1 / Value 2 |
| Nand Bool | NAND operation | Set / Value 1 / Value 2 |
| Nor Bool | NOR operation | Set / Value 1 / Value 2 |
| Or Bool | OR operation | Set / Value 1 / Value 2 |
| Set Bool | Assigns a Boolean value | Set / From |
| Toggle Bool | Toggles a Boolean value | Set / From |
Math > Geometry (23)
| Instruction | Description | Main Parameters |
|---|
| Add Directions | Adds direction vectors | Set / Direction 1 / Direction 2 |
| Add Points | Adds position vectors | Set / Point 1 / Point 2 |
| Clamp | Clamps each component of a Vector3 | Set / Value / Minimum / Maximum |
| Cross Product | Calculates cross product | Set / Direction 1 / Direction 2 |
| Distance | Calculates distance between two points | Set / Point 1 / Point 2 |
| Dot Product | Calculates dot product | Set / Direction 1 / Direction 2 |
| Normalize | Normalizes a direction vector | Set / From |
| Project On Plane | Projects onto a plane | Set / Direction / Plane Normal |
| Reflect On Plane | Reflects on a plane | Set / Direction / Plane Normal |
| Remap Coordinates | Remaps each component of a Vector3 | Value / X / Y / Z |
| Scale Product | Component-wise multiplication | Set / Direction 1 / Direction 2 |
| Set Direction | Sets a direction vector | Set / From |
| Set Point | Sets a position vector | Set / From |
| Set Vector X/Y/Z | Sets individual components | Set / X or Y or Z |
| Subtract Directions | Subtracts direction vectors | Set / Direction 1 / Direction 2 |
| Subtract Points | Subtracts position vectors | Set / Point 1 / Point 2 |
| Transform To Local/World Direction/Point | Local ↔ World conversion | Set / Transform / Direction or Point |
| Uniform Scale | Multiplies all components by the same value | Set / Vector / Value |
Math > Shading (4)
| Instruction | Description | Main Parameters |
|---|
| Lerp Color | Interpolates between two colors over time | Color 1 / Color 2 / Duration / Easing / Wait to Complete / Set |
| Lerp Lightness | Interpolates lightness over time | Lightness / Duration / Easing / Wait to Complete / Set |
| Lerp Saturation | Interpolates saturation over time | Saturation / Duration / Easing / Wait to Complete / Set |
| Set Color | Sets a Color value | Color / Set |
Math > Text (4)
| Instruction | Description | Main Parameters |
|---|
| Join | Concatenates two strings | Text 1 / Text 2 / Set |
| Replace | Replaces a string | Text / Old Text / New Text / Set |
| Set Text | Changes a string value | Text / Set |
| Substring | Extracts a substring | Text / Index / Length / Set |
Physics 2D (6)
| Instruction | Description | Main Parameters |
|---|
| Add Explosion Force 2D | Applies explosion simulation force | Rigidbody / Origin / Radius / Force / Force Mode |
| Add Force 2D | Applies force to a Rigidbody2D | Rigidbody / Direction / Force / Force Mode |
| Change Mass 2D | Changes Rigidbody2D mass | Rigidbody / Mass |
| Change Velocity 2D | Changes Rigidbody2D velocity | Rigidbody / Velocity |
| Gravity Scale 2D | Changes gravity scale | Rigidbody / Gravity Scale |
| Is Kinematic 2D | Changes Kinematic state | Rigidbody / Is Kinematic |
Physics 3D (11)
| Instruction | Description | Main Parameters |
|---|
| Add Explosion Force 3D | Applies explosion simulation force | Rigidbody / Origin / Radius / Force / Force Mode |
| Add Force 3D | Applies force to a Rigidbody | Rigidbody / Direction / Force / Force Mode / Space Mode |
| Change Mass 3D | Changes Rigidbody mass | Rigidbody / Mass |
| Change Velocity 3D | Changes Rigidbody velocity | Rigidbody / Velocity |
| Is Kinematic 3D | Changes Kinematic state | Rigidbody / Is Kinematic |
| Overlap Box/Circle/Sphere | Gets colliders within a specified shape | Center / Size or Radius / Store In / Layer Mask |
| Trace Line 3D | Gets colliders along a line segment | Point A / Point B / Store In / Layer Mask |
| Use Gravity 3D | Enables/disables gravity | Rigidbody / Use Gravity |
Renderer (5)
| Instruction | Description | Main Parameters |
|---|
| Change Material Color | Changes a material’s Color property over time | Property / Color / Duration / Easing / Wait to Complete / Renderer |
| Change Material Float | Changes a material’s Float property over time | Property / Float / Duration / Easing / Wait to Complete / Renderer |
| Change Material Texture | Changes a material’s main texture | Texture / Renderer |
| Change Material | Changes the material itself | Material / Renderer |
| Change Sprite | Sets a Sprite value | To / Sprite |
Scenes (2)
| Instruction | Description | Main Parameters |
|---|
| Load Scene | Loads a new scene | Scene / Mode / Async / Scene Entries |
| Unload Scene | Unloads the active scene | Scene |
Storage (5)
| Instruction | Description | Main Parameters |
|---|
| Delete Game | Deletes saved game data | Save Slot |
| Load Game | Loads a saved game state | Save Slot |
| Load Latest Game | Loads the most recent save data | — |
| Reset Game | Resets the game to default values | Scene |
| Save Game | Saves the current game state | Save Slot |
Time (3)
| Instruction | Description | Main Parameters |
|---|
| Time Scale | Changes the game’s TimeScale | Time Scale / Blend Time / Layer |
| Wait Frames | Waits for a specified number of frames | Frames |
| Wait Seconds | Waits for a specified number of seconds | Seconds / Mode |
| Instruction | Description | Main Parameters |
|---|
| Change Position | Changes position over time | Position / Space / Duration / Easing / Wait to Complete / Transform |
| Change Rotation | Changes rotation over time | Rotation / Space / Duration / Easing / Wait to Complete / Transform |
| Change Scale | Changes local scale over time | Scale / Duration / Easing / Wait to Complete / Transform |
| Clear Parent | Removes the parent object | Transform |
| Look At | Faces a specified target | Target / Transform |
| Set Parent | Changes the parent object | Parent / Transform |
UI (16)
| Instruction | Description | Main Parameters |
|---|
| Canvas Group Alpha | Changes Canvas Group opacity | Canvas Group / Alpha / Duration / Easing / Wait to Complete |
| Canvas Group Block Raycasts | Toggles raycast blocking | Canvas Group / Block Raycasts |
| Canvas Group Interactable | Toggles interactable state | Canvas Group / Interactable |
| Change Dropdown | Changes a Dropdown value | Text / Index |
| Change Font Size | Changes font size | Text / Size |
| Change Graphic Color | Changes Graphic Color | Graphic / Color |
| Change Height | Changes RectTransform height | Rect Transform / Height |
| Change Image | Changes an Image’s Sprite | Override Sprite / Image / Sprite |
| Change Input Field | Changes an InputField value | Input Field / Value |
| Change Slider | Changes a Slider value | Slider / Value |
| Change Text | Changes a Text value | Text / Value |
| Change Toggle | Changes a Toggle value | Toggle / Value |
| Change Width | Changes RectTransform width | Rect Transform / Width |
| Focus On | Focuses on a specific UI element | Focus On |
| Submit | Submits | — |
| Unfocus | Removes focus | — |
Variables (16)
See the Variables article for details.
Visual Scripting (12)
| Instruction | Description | Main Parameters |
|---|
| Activate Hotspots | Toggles Hotspot activation by type | Type / Active |
| Broadcast Message | Calls a method on a GameObject | Game Object / Message / Send Upwards |
| Check Conditions | Skips remaining Instructions if conditions are false | Conditions / Mode |
| Emit Signal | Emits a signal | Signal |
| Invoke Method | Calls a script method | Method |
| Restart Instructions | Re-executes Instructions from the beginning | — |
| Run Actions | Executes another Actions component | Actions / Wait Until Complete |
| Run Conditions | Executes another Conditions component | Conditions / Wait Until Complete |
| Run Trigger | Executes another Trigger component | Trigger / Wait Until Complete |
| Stop Actions | Stops running Actions | Actions |
| Stop Conditions | Stops running Conditions | Conditions |
| Stop Trigger | Stops a running Trigger | Trigger |
Module-specific additional instructions (reference): Inventory (36) / Dialogue (4) / Stats (12) / Quests (9) / Behavior (3) / Perception (13) / Shooter (17) / Melee (19). See each asset’s article for details.
Conditions — Full List: 80 Core Types
Audio (6)
| Condition | Description | Main Parameters |
|---|
| Is Ambient/Music/Sound Effect/Speech/UI Playing | True if the specified Audio Clip is playing | Audio Clip |
| Is Speech Target Playing | True if the specified GameObject is playing speech | Target |
Cameras (1)
| Condition | Description | Main Parameters |
|---|
| Is Shot Active | True if the Camera Shot is assigned to the Main Camera | Shot |
Characters (29)
See the Character System article for details.
Game Objects (7)
| Condition | Description | Main Parameters |
|---|
| Compare Game Objects | Compares if they are the same GameObject | Game Object / Compare To |
| Compare Layer | Whether it belongs to a layer mask | Game Object / Layer Mask |
| Compare Tag | Whether the specified tag is attached | Game Object / Tag |
| Does Component Exist | Whether the component exists | Game Object / Component |
| Does Game Object Exist | Whether the GameObject is not null | Game Object |
| Is Component Enabled | Whether the component is enabled | Game Object / Component |
| Is Game Object Active | Whether the GameObject is active | Game Object |
| Condition | Description | Main Parameters |
|---|
| Is Input Held Down/Pressed/Released | Checks the Input Action button state | Input |
| Is Key Held Down/Pressed/Released | Checks the keyboard key state | Key |
| Is Mouse Held Down/Pressed/Released | Checks the mouse button state | Button |
Math > Arithmetic (2)
| Condition | Description | Main Parameters |
|---|
| Compare Decimal | Compares decimal values | Value / Comparison / Compare To |
| Compare Integer | Compares integer values | Value / Comparison / Compare To |
Math > Boolean (3)
| Condition | Description | Main Parameters |
|---|
| Always False | Always false | — |
| Always True | Always true | — |
| Compare Boolean | Compares Boolean values | Value / Comparison / Compare To |
Math > Geometry (5)
| Condition | Description | Main Parameters |
|---|
| Compare Direction | Compares direction vectors | Value / Comparison / Compare To |
| Compare Distance Flat | Compares XZ plane distance | Point A / Point B / Comparison / Distance |
| Compare Distance Vertical | Compares vertical distance | Point A / Point B / Comparison / Distance |
| Compare Distance | Compares distance between two points | Point A / Point B / Comparison / Distance |
| Compare Point | Compares position vectors | Value / Comparison / Compare To |
Physics (9)
| Condition | Description | Main Parameters |
|---|
| Check Box 2D/3D | Box shape collision check | Position / Size / Layer Mask |
| Check Capsule | Capsule shape collision check | Position / Height / Radius / Layer Mask |
| Check Character 3D Fits | Whether a character fits in a new size | Character / Height / Radius / Layer Mask |
| Check Circle/Sphere | Circle/sphere shape collision check | Position / Radius / Layer Mask |
| Is Kinematic | Whether in Kinematic state | Game Object |
| Is Sleeping | Whether the Rigidbody is sleeping | Game Object |
| Raycast 2D/3D | Raycast check between two points | Source / Target / Layer Mask |
| Condition | Description |
|---|
| Check Platform | Checks the current platform |
| Is Batch Mode | Whether running in batch mode |
| Is Console | Whether it’s a console platform |
| Is Editor | Whether inside the Unity editor |
| Is Mobile | Whether it’s a mobile platform |
Scenes (1)
| Condition | Description | Main Parameters |
|---|
| Is Scene Loaded | Whether the scene is loaded | Scene |
Storage (2)
| Condition | Description | Main Parameters |
|---|
| Has Save At Slot | Whether a save exists at the specified slot | Save Slot |
| Has Save | Whether save data exists | — |
Text (2)
| Condition | Description | Main Parameters |
|---|
| Text Contains | Whether a string is contained | Text / Substring |
| Text Equals | Whether strings match | Text 1 / Text 2 |
| Condition | Description | Main Parameters |
|---|
| Child Count | Compares the number of direct child objects | Target / Comparison / Compare To |
| Is Child Of | Whether it is a child object | Child / Parent |
| Is Sibling Of | Whether they are sibling objects | Sibling A / Sibling B |
Variables (1)
| Condition | Description | Main Parameters |
|---|
| List Is Empty | Whether a List Variable is empty | List Variables |
Visual Scripting (2)
| Condition | Description | Main Parameters |
|---|
| Conditions As And | Evaluates nested Conditions with AND | Conditions |
| Run Conditions As Or | Evaluates nested Conditions with OR | Conditions |
Events — Full List: 50 Core Types
Audio (6)
| Event | Trigger Timing |
|---|
| On Change Ambient/Master/Music/Sound Effects/Speech/UI Volume | When each channel’s volume changes |
Cameras (3)
| Event | Trigger Timing |
|---|
| On Camera Change | The moment the Camera’s Shot switches |
| On Change From Shot | The moment this Shot is deactivated |
| On Change To Shot | The moment this Shot is activated |
Characters (17)
See the Character System article for details.
| Event | Trigger Timing | Main Parameters |
|---|
| On Cursor Click | When a mouse button is clicked | Button / Min Distance |
| On Input Button | When a KB/Gamepad/Mouse button is operated | Button / Min Distance |
| On Input Flick | When a Vector2 input is flicked | Value / Compare / Min Distance |
| On Touch | Touch screen finger tap | Min Distance |
Interactive (3)
| Event | Trigger Timing | Main Parameters |
|---|
| On Blur | When focus is lost | — |
| On Focus | When focused | — |
| On Interact | When interacted with | Use Raycast |
Lifecycle (13)
| Event | Trigger Timing | Main Parameters |
|---|
| On App Focus | When the application is focused | — |
| On App Pause | When the application is paused | — |
| On App Quit | When the application is about to quit | — |
| On Become Invisible | When the Renderer becomes invisible | — |
| On Become Visible | When the Renderer becomes visible | — |
| On Disable | When the GameObject is deactivated | — |
| On Enable | When the GameObject is activated | — |
| On Fixed Update | Fires every FixedUpdate | — |
| On Interval | Fires periodically at a specified interval | Time Mode / Interval |
| On Invoke | When Invoke() is called from a script | — |
| On Late Update | Fires every LateUpdate | — |
| On Start | Fires once at scene start | — |
| On Update | Fires every Update | — |
Logic (3)
| Event | Trigger Timing | Main Parameters |
|---|
| On Hotspot Activate | When the Hotspot is activated | — |
| On Hotspot Deactivate | When the Hotspot is deactivated | — |
| On Receive Signal | When a signal with the specified ID is received | Signal |
Physics (7)
| Event | Trigger Timing | Main Parameters |
|---|
| On Collide Exit | When a collision ends | — |
| On Collide | When a collision occurs | — |
| On Trigger Enter Tag | When a GameObject with a specific tag enters the trigger | Tag |
| On Trigger Enter | When a GameObject enters the trigger | — |
| On Trigger Exit Tag | When a GameObject with a specific tag exits the trigger | Tag |
| On Trigger Exit | When a GameObject exits the trigger | — |
| On Trigger Stay | Continuously fires while a GameObject is inside the trigger | — |
Storage (3)
| Event | Trigger Timing |
|---|
| On Delete | When a save is deleted |
| On Load | When a game is loaded |
| On Save | When a game is saved |
UI (4)
| Event | Trigger Timing |
|---|
| On Deselect | When a UI element is deselected |
| On Hover Enter | When hovering over a UI element |
| On Hover Exit | When hover leaves a UI element |
| On Select | When a UI element is selected |
Variables (4)
| Event | Trigger Timing |
|---|
| On Global List Variable Change | When a Global List variable changes |
| On Global Name Variable Change | When a Global Name variable changes |
| On Local List Variable Change | When a Local List variable changes |
| On Local Name Variable Change | When a Local Name variable changes |
Hotspot Spots — Full List
Presentation units that activate when a Hotspot is enabled/disabled. Add via the Add Spot button. Evaluated from top to bottom — when the same type of Spot overlaps, the later one overrides.
| Subcategory | Spot | On Activation | On Deactivation |
|---|
| Audio | Play Sound | Plays a UI sound effect | Plays a UI sound effect |
| Characters | Look At | Character looks at the Hotspot’s center | Smoothly looks away |
| Game Objects | Activate Object | Enables a GameObject instance in the scene | Disables it |
| Game Objects | Instantiate Prefab | Instantiates or enables a Prefab | Disables it |
| Materials | Change Material | Switches to the specified material | Reverts to the original material |
| UI | Change Text | Overwrites the Text component value | — |
| UI | Cursor | Changes the cursor image | Reverts to the original cursor |
| UI | Show Floating Text | Displays text on a world-space canvas | Hides the text |
Practical Usage — Configuration Guide by Use Case
Key Press → Display Message
- Create a Trigger → set Event to
On Input Button
- Set the Button to an InputAction equivalent to “Space”
- Add
Log Text or Play UI Sound to Instructions
Player Approaches → NPC Turns to Face
- Add a Hotspot (Mode=Radius) to the NPC, Target=Player
- Add
Characters > Look At as a Spot on the Hotspot
- When within radius, the character’s head turns toward the NPC
Branch by Gold (Classic RPG)
- Place a Conditions component
- Branch 1:
Compare Wealth >= 500 → Instruction: Purchase processing
- Branch 2: Empty condition →
Instruction: "You can't afford this" message
Periodic Event to Reduce Enemy HP
- Create a Trigger → Event=
On Interval, Interval=1
- Add a Stats module instruction to
Change Stat HP by -1
Loose Coupling with Signals
- Sender: Use the
Emit Signal instruction to broadcast "boss-defeated"
- Receiver: A separate Trigger with Event=
On Receive Signal, ID="boss-defeated"
- Since neither side holds a reference to the other, this design is easy to prefab and reuse
Tips and Notes
- Make use of Properties: Instead of fixed values, selecting “Player position”, “Local Variable”, etc. makes prefabbing and reuse dramatically easier
- Empty Conditions always return true: When you want a “default branch” in a Conditions component, leave the last Branch’s conditions empty
- Disable and Breakpoint are editor-only: Breakpoints are ignored in builds. Use
Log Text / Log Number for logs
- Signal vs. direct reference: Use Signals for loose coupling. Use direct references when two objects are reliably linked during their lifetime
- Run Actions / Run Conditions / Run Trigger: Since these can call other components, you can prefab common logic and call it from anywhere
Official Links
Summary
In this article, we covered Visual Scripting in Game Creator 2.
Visual Scripting is a system that lets you build game logic with 4 components — Actions, Triggers, Conditions, and Hotspots — using a task list approach different from node graph systems.
The core alone provides 312 Instructions, 80 Conditions, and 50 Events, and adding modules further expands your vocabulary. With debug support features like Fuzzy Search, built-in help, and breakpoints, efficient development is possible.
Complete Article List — Game Creator 2 Complete Guide Series Indexen.senkohome.com/gamecreator2-series-index/
We hope you’ll check out our other articles as well.