Skip to main content

GES integration

Guide

Send GCS battle events to GES or trigger Behavior from GES events while retaining internal GCS subscriptions

Integration boundary and directions​

The diagram above shows both directions between GCS and GES, mapped GCS events, Raise GES Event, and Encounter Bootstrap send notifications to GES, while On GES Event starts Behavior from GES events, use a built-in event or configure a node for the timing you need

tip

After event synchronization, all 47 built-in GCS events notify both internal subscribers and their mapped GES events, internal subscriptions still work without a mapping

Detection and setup​

Install Game Event System in the same Unity project, GCS detects the TinyGiants.GES.Runtime Assembly Definition and synchronizes TG_GES_INSTALLED across Standalone, Android, iOS, WebGL, and the current Build Target Group

Install GES and synchronize its events

  1. Import GES, or leave the existing installation unchanged
  2. Wait for Unity to compile and complete a Domain Reload
  3. The detector finds TinyGiants.GES.Runtime and adds TG_GES_INSTALLED
  4. The Raise GES Event and On GES Event nodes are fully wired, and Encounter Bootstrap shows Use GES Events
  5. Open Game Card System and click Initialize GES Events in GES Event Bridge
  6. Wait for event generation and Unity compilation, then check 47 / 47 Events Synced, use Repair GES Events if existing mappings need repair
tip

After GES is removed, the detector clears the Define and GCS falls back to its internal event channel

Raise events from Encounter Bootstrap​

Select the scene's GameCardEncounterBootstrap and expand Events, the default mode uses On Bootstrap UnityEvent, enabling Use GES Events switches to the On Bootstrap Events list

tip

Bootstrap raises the GES list in order after the encounter starts, the modes are exclusive, GES mode does not invoke UnityEvent and UnityEvent mode does not raise the GES list

Raise GES events from GCS​

Add Raise GES Event from the Event category and choose an event in its GES Event field, the picker groups events by database and fills the Argument and Sender types automatically

tip

The node supports parameterless, single Argument, and Sender Argument events, use Picker and Source fields to select constants, Unity Objects, structured data, or the current execution context

See the Raise GES Event node manual for fields, dynamic options, context sources, and Primitive type limits

Start a Behavior from a GES event​

Add On GES Event from Entry and select an event to listen for, GCS runs the connected Behavior when it fires during battle

GCS binds active GES events when the battle starts, events activated later take effect from the next battle, raising a bound event runs matching entries on these objects

  • cards currently in the draw, hand, discard, or exhaust pile

  • statuses sitting on living units

  • Behaviors of living enemies

The entry supports parameterless, single Argument, and Sender Argument events, GES Payload is not passed to FlowGraph, Behavior reads data from the current battle state

Entry validation

FlowGraph validation reports an empty reference when On GES Event has no selected event

Behavior without GES​

Without GES, GCS compiles and runs using its internal event channel, Raise GES Event is ignored and logs this Console warning

[GCSEventChannelInternal] RaiseGesEvent('...') ignored: GES integration not installed.

Cards containing this node remain usable without GES, the Console warning identifies the skipped cross-system notification

Keep system responsibilities separate​

  1. Use GES to notify achievements, quests, progression, analytics, or scene objects, such as unlocking an achievement after a Boss dies or updating progression after victory

  2. Handle damage, healing, statuses, card movement, energy, and targeting in GCS so battle rules remain in the card FlowGraph

Troubleshooting​

SymptomCheck
Raise GES Event logs that the integration is not installedConfirm GES is in the project and TinyGiants.GES.Runtime exists, then let Unity reload so TG_GES_INSTALLED updates
Warning: GameEventManager not found in sceneAdd or initialize the GES manager in the scene before the battle raises the event
Warning: the GES event GUID was not foundRepick the event on the node; the stored GUID no longer matches an existing GES event
The argument arrives as nullThe argument type must resolve and the selected source must produce a value of that type; repicking the event refills the type
GES rejects the Sender or ArgumentSource values must match the event parameter types, check the Console type warning and repick the event
On GES Event never firesThe event must be picked on the node and active when the battle starts, and its owner (card, status, or enemy) must be in a pile or alive when the raise happens
GCS events fire but GES listeners stay silentCheck that GES Event Bridge has all 47 mappings synchronized and the scene's GameEventManager has registered and enabled the event database