GES integration
Connect battle events to quests and achievements, or run a Behavior when a GES event fires.
Connect GCS and GES events
The diagram shows how a battle can notify a quest through GES and how a GES event can trigger a Behavior during that battle. Map a built-in event to notify listeners at a standard point, or use Raise GES Event to notify them at a specific point in a FlowGraph.
Detection and setup
- Import GES into the project if needed and wait for Unity to compile and reload. GCS detects
TinyGiants.GES.Runtimeand setsTG_GES_INSTALLEDfor Standalone, Android, iOS, WebGL, and the current build target group. - Open Game Card System and click Initialize GES Events in GES Event Bridge.
- Wait for Unity to finish compiling the generated events. Confirm 48 / 48 Events Synced. Use Repair GES Events when an existing mapping needs repair.
Once the mappings are ready, built-in GCS events notify their GES listeners as well as their internal subscribers. Internal subscribers receive events with or without a GES mapping.
Raise events from Encounter Bootstrap
Select GameCardEncounterBootstrap and expand Events. Enable Use GES Events to switch the startup callback from On Bootstrap to On Bootstrap Events. Bootstrap raises the events in list order after starting the encounter.
Raise GES events from GCS
Add Raise GES Event from Event and select an event in GES Event. The picker groups events by database and fills the argument and sender types from the selected event.
The node supports events with no parameters, one argument, or a sender and an argument. Use the picker and source fields to supply a constant, a Unity object, structured data, or a value from the current execution context. See the Raise GES Event node manual for available sources and type limits.
Start a Behavior from a GES event
Add On GES Event from Entry and select the event to listen for. GCS binds active GES events at the start of each battle, so an event you activate mid-battle takes effect in the next one. When a bound event fires, GCS runs the Behavior connected to a matching entry on any of the following objects.
-
cards currently in the draw, hand, discard, or exhaust pile
-
statuses on living units
-
Behaviors of living enemies
The entry accepts events with no parameters, one argument, or a sender and an argument. Use the current battle state for values in the FlowGraph. The entry exposes the trigger, while the event payload stays in GES. If validation reports an empty event reference, pick an event on the entry.
Behavior without GES
If you remove GES, the detector clears TG_GES_INSTALLED. GCS uses its internal channel. Cards still resolve, and Raise GES Event logs this warning for the skipped notification:
[GCSEventChannelInternal] RaiseGesEvent('...') ignored: GES integration not installed.
Connect battle events to other game systems
Use GES when something outside the battle needs to respond. For example, notify the achievement system when a boss dies or update quest progress after victory. Keep damage, healing, card movement, and other battle rules in the GCS FlowGraph.
Troubleshooting
| Symptom | Check |
|---|---|
Raise GES Event logs that the integration is not installed | Confirm GES is in the project and TinyGiants.GES.Runtime exists, then let Unity reload so TG_GES_INSTALLED updates |
Warning: GameEventManager not found in scene | Add or initialize the GES manager in the scene before the battle raises the event |
| Warning: the GES event GUID was not found | Repick the event on the node; the stored GUID no longer matches an existing GES event |
| The argument arrives as null | The 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 Argument | Check the Console for the expected types. Repick the event and assign sources that return those types |
On GES Event never fires | Pick the event on the node and activate it before starting the battle. At the time of the raise, the card must be in a battle pile, the status must be on a living unit, or the enemy must be alive |
| GCS events fire but GES listeners stay silent | Check that GES Event Bridge has all 48 mappings synchronized and the scene's GameEventManager has registered and enabled the event database |