Transformation System

v1.0.0

Getting Started

A character who can turn into a prop, and a hunter who can catch them — in about ten minutes.

This is the shortest path that ends in something you can play. You need Game Creator 2 Core and nothing else. The Core Concepts page explains what each step is actually building.

1. Make a prop the world can offer

Pick any GameObject in your scene that a player should be able to hide as — a barrel, a crate, a chair.

  1. Add Prop World Object to it (Add Component → Transformation System).
  2. Give it a Collider sized to its physical footprint, if it has none.
  3. Create a definition: Create → Transformation System → Prop Definition
  4. Assign the definition to the Definition slot on the Prop World Object.
The definition holds the identity — display name, a stable auto-generated ID, whether cloning is allowed. It holds no mesh and no collider: the disguise is cloned from the world object itself, so whatever that object looks like is what the player becomes. A multi-part prop works as long as the pieces share a parent — set Clone Root to that parent.

Repeat for as many props as you like. Two is enough to feel the mechanic.

2. Collect them

Create Create → Transformation System → Prop Registry and add your definitions to its list. You only need one registry per project.

The registry is what lets a prop be looked up by ID — for a saved loadout, a network message, or the Transform Into Prop (by ID) instruction. Duplicate IDs are rejected on import, so a copy-pasted definition cannot silently shadow the original.

3. Set up the hider

On the character who will hide, add Transform Controller and leave everything at its default. That is the whole component setup.

No Rigidbody is required, and none is added. Game Creator characters are motor driven; a Rigidbody beside the motor either fights it every frame or is dead weight. Your character keeps its own collider at its own size, so the motor keeps working exactly as before.

Now give them a way to transform. On the character, add a Trigger:

Event:       On Key Down (E)
Conditions:  Can Clone Prop = true
Action:      Transformation System → Transform Into Prop
               Target: Self

And a way back:

Event:       On Key Down (Q)
Conditions:  Is Disguised = true
Action:      Transformation System → Revert To Character
               Target: Self

Transform Into Prop uses whatever prop the character is looking at — no dropdown needed. Switching directly from one prop to another is supported; the player does not have to revert first. Press play. You should be a barrel.

4. Set up the hunter

  1. Add Hunter Interaction to the hunting character.
  2. Create Create → Transformation System → Hunter Settings and assign it.
  3. Set Ray Origin to the hunter's camera — or leave it empty and the main camera is used, which is what makes a crosshair honest.
Hunter Settings fieldStart withWhy
Interaction Range6Measured from the character's feet, not the camera — so it is shorter in practice than it looks
Inspect Cooldown0.5Seconds between attempts
Interaction LayerProps + PlayersThe nearest hit of anything wins, so you cannot target a prop through a wall
Aim Assist Radius0.15Sweeps a 15 cm probe instead of a line — a crosshair over a table is mostly gap
Wrong Guess Requires A PropOnOtherwise shooting the ground counts as a wrong guess and drains the hunter's health
Event:       On Key Down (Mouse 0)
Conditions:  Is Pointer Over UI = false
Action:      Transformation System → Hunter → Hunter Inspect (Raycast)
               Hunter: Self
Damage is not in the settings asset, deliberately. A correct guess fires On Correct Guess on the hunter and On Was Found on the prop player; a wrong guess fires On Wrong Guess. The asset applies no damage itself — wire those events to a Deal Damage instruction, so the number lives next to the thing that applies it. See Workflows.
Set HighlightSettings → Aim Assist Radius to the same value. The highlight is the player's read on what they are about to hit; a highlight that appears where the inspect would miss is worse than no highlight at all.

5. Add a round

  1. Put Round System on an empty GameObject.
  2. Create Create → Transformation System → Round Settings for the prep and hunt durations, and assign it. Leaving the slot empty falls back to 30 s prep and 180 s hunt.
Event:   On Start
Actions: Transformation System → Round → Register Prop Player   (Hider: Self)
         Transformation System → Round → Start Round
Registration is deliberately explicit. Nothing joins a round by existing, because a sample that hides that step teaches a setup you cannot reproduce for your own characters. A Report Prop Eliminated for an unregistered character is ignored, and says so in the console.

Start Round finds the Round System in the scene automatically — no reference to drag. Assign a different Round Settings asset to the instruction to shape one round only: a long tutorial prep, a sudden-death hunt.

6. Put it on screen

Drop Round Timer Display onto a UI text object — legacy Text or TextMeshPro, either works — and press play. It finds the round system and the label by itself.

For anything else, use a property getter rather than a script. Bind Props Alive, Round Number, Round Timer (mm:ss), Current Prop Name or Whistle Cooldown straight into a label, a variable or a dialogue line — no arithmetic in the graph. The full list of 15 getters is on the Visual Scripting page.

If something does not work

Nothing happens on the transform key

The character is not looking at a Prop World Object, or its definition has Allow Cloning switched off.

The disguise appears at the wrong height

The prop’s own pivot is unusual. Ground Snap is on by default and handles most cases — switch it off only for props that should float.

A guess is always wrong

The target has no Transform Controller, or is not currently disguised. A hunter scores a correct guess only against a visible disguise.

The hunter hits the floor and pays for it

Switch on Wrong Guess Requires A Prop in the Hunter Settings asset, so only a hit carrying a Prop World Object counts as a guess.

An inspect is rejected even though the prop looks close

Interaction Range is measured from the character’s origin, at the feet — not from the camera. Something 3 m away and 1.5 m up costs about 3.35 m. Start at 6 rather than 3.

A node does not appear in the picker

The category is Transformation System/… — search the node’s title rather than browsing the tree.