【RELEASED】 GameEventSystem(GES) - Professional Visual Event Architecture for Unity

Hello Unity Community! :waving_hand:

I’m excited to share GameEventSystem with you — a production-ready visual event architecture built to solve the problem that haunts every Unity project: invisible, unmaintainable event spaghetti.

:rocket: Status: Released on Asset Store (current version v1.3.0)

:high_voltage: GES is part of the TinyGiants toolset — see the TinyGiants Hub thread for all products.

:love_letter: A Note from the Creator

As an indie developer, I learned the hard way that the Event System is the nervous system of any game — it touches everything. I spent more time debugging invisible event chains than building gameplay.

I tried existing solutions, but each had compromises: visual-only tools lacked coding flexibility, code-heavy frameworks were impossible to visualize, and performance was sacrificed for convenience.

So I built the tool I always wished existed — one that delivers visual management, code control, and zero overhead in a single package.

Happy coding,
[TinyGiants] from China

:glowing_star: What is GameEventSystem?

GameEventSystem (GES) is a production-ready visual event architecture for Unity that transforms chaotic event management into maintainable, testable workflows.

The Problem

  • Hidden Dependencies: Who’s listening? Where’s it triggered?
  • Runtime Breakage: Rename a method, break 10 scene objects silently.
  • Cross-Scene Hell: Events die when scenes unload.
  • No Visibility: Complex event chains exist only in your head.

The Solution

:white_check_mark: Events as Assets — ScriptableObject-based, GUID-protected, survives refactoring
:white_check_mark: Visual Flow Graphs — See your event chains, triggers, and conditions in one window
:white_check_mark: Zero-Reflection Runtime — Expression Tree compilation, compiled-delegate performance
:white_check_mark: Designer-Friendly — Drag-and-drop binding, no coding required for simple workflows
:white_check_mark: Production-Grade Tools — Real-time monitoring, reference finding, code generation

:bullseye: Key Features

Core Architecture

Feature Description
Asset-Based Events ScriptableObject with GUID identity — references survive renames and moves
Comprehensive Generics GameEvent, GameEvent<T>, and GameEvent<TSender, TArgs>
Multi-Database System Modular organization for large teams with dynamic loading
Category System Fuzzy-search filtering within large event libraries
Auto Static Reset Automatic clearing of static caches to prevent data pollution

Advanced Logic & Flow

Feature Description
Expression Trees Zero-reflection condition evaluation compiled to delegates
Visual Logic Builder Nested AND/OR logic without code
Hybrid Execution Mix parallel Triggers and sequential Chains in one graph
Argument Transformers Extract and pass properties between flow nodes
Granular Control Per-node delays, async waits, loops, condition gates

Listening & Binding

Feature Description
Visual Binding Drag-and-drop UnityEvent wiring with type safety
Priority Listeners Integer-based execution order control
Conditional Listeners Predicate-based filtering
Persistent Listeners Cross-scene listeners that survive transitions
Runtime API Full programmatic listener management

Tooling & Debug

Feature Description
Dashboard & Wizard Batch operations and fuzzy-matching creation
Code Automation Tri-Mode CodeGen (Basic/Custom/Sender)
Reference Finder Scene-wide dependency scanner
Runtime Monitor Real-time profiling (execution time, GC, listener counts)
Automation Tree Live Trigger/Chain hierarchy visualizer

:high_voltage: Performance

Scenario Performance Notes
Event Raise (0 listeners) ~0.001ms Virtually free
Event Raise (10 listeners) ~0.02ms No GC allocation
Condition Evaluation ~0.003ms Expression Tree compilation
Flow Node Execution ~0.05ms Includes coroutine overhead
Monitor Window (100 events) ~0.3ms Editor-only, no runtime cost

Tested with 500+ events and 10,000+ listeners in production.

:hammer_and_wrench: See It In Action

Flow Graph Editor — your event chains, finally visible

Design parallel Triggers and sequential Chains on one canvas, with typed ports, per-node delays, and live validation.

Game Event Editor — hundreds of events, under control

Browse, filter, and edit every event across databases and categories from a single window.

Behavior Window — designer-friendly responses

Wire conditions, UnityEvent actions, delays, and repeats onto any event — no code required.

Runtime Monitor — observability built in

Live dashboard with per-event execution timing, GC tracking, listener counts, and warnings while you play.

And more under the hood — System Dashboard, batch Event Creator, Tri-Mode Code Generator & Cleaner, scene-wide Reference Finder, and type-safe Inspector dropdowns. The full visual tour lives in the documentation.

:laptop: Code That Stays Simple

Everything you see visually is also a first-class scripting API:

public class GameEventRaiser : MonoBehaviour
{
    [GameEventDropdown] public GameEvent voidEvent;
    [GameEventDropdown] public GameEvent<DamageInfo> customEvent;
    [GameEventDropdown] public GameEvent<GameObject, DamageInfo> senderEvent;

    private void Start()
    {
        var damageInfo = new DamageInfo(100, false, DamageType.Void, Vector3.one, "sender");

        voidEvent.Raise();
        customEvent.Raise(damageInfo);
        senderEvent.Raise(gameObject, damageInfo);
    }
}

:open_book: Technical Blog Series

I’ve published a 16-part blog series covering every aspect of event-driven architecture in Unity. Each article starts with a real problem, then shows how GES solves it.

:globe_with_meridians: Available in English & 中文 on the website.

:building_construction: Foundation

# Article What You’ll Learn
1 Goodbye Invisible Spaghetti Why traditional event systems create invisible dependencies
2 Unity’s Generic Serialization Wall Type-safe events without boilerplate for every type
3 Zero Reflection, Zero GC What “high performance” actually means — with benchmarks
4 200 Events and Counting Why event organization breaks down at scale
5 5-Minute Quickstart From install to working event system in 5 minutes

:artist_palette: Visual Workflow

# Article What You’ll Learn
6 The Designer-Programmer Handoff Non-coders configuring event responses
7 Escape if-else Hell Visual conditional logic that scales
8 Invisible Event Chains You can’t debug what you can’t see
9 Parallel vs Sequential The two execution patterns every event system needs

:high_voltage: Runtime & API

# Article What You’ll Learn
10 Time-Based Events Why coroutines are wrong for delays and repeats
11 Execution Order Bugs The hidden danger of “who responds first”
12 Runtime Event Flows Building event flows at runtime

:shield: Production

# Article What You’ll Learn
13 Event System Pitfalls Memory leaks, data pollution, recursive traps
14 Debugging the Invisible Event systems need their own observability
15 Cross-Scene Persistence The persistence problem nobody talks about
16 Layering Visual & API Events When to use visual tools vs the scripting API

:light_bulb: Each article is posted as a reply below for easy reading, or visit the full blog for the best experience with code highlighting and language switching.

:books: 15 Example Scenes

ID Example Key Learning
00 Quick Start Minimal workflow: create, raise, bind
01 Void Event Parameterless signals for global triggers
02 Basic Types Passing int, float, string through events
03 Custom Type CodeGen for custom data classes
04 Sender Event Source-aware events identifying the raiser
05 Priority Controlling execution order of listeners
06 Conditional Predicates that gate callback execution
07 Delayed Timed logic with Task Handle cancellation
08 Repeating Recurring pulse signals and automated loops
09 Persistent Events surviving scene transitions
10 Trigger Parallel fan-out event flows
11 Chain Sequential logic via Flow Graph
12 Multi Database Modular event organization
13 Runtime API Dynamic listener registration via C#
14 Runtime Monitor Profiling execution timing and GC

:globe_with_meridians: Official Links

:handshake: Community & Support

:speech_balloon: Discord (Recommended)

Real-time answers, roadmap updates, beta access, 24/7 global community.

:backhand_index_pointing_right: Join Discord

:e_mail: Direct Support

support@tinygiants.tech — Response within 24-48 hours.

:gem_stone: Lifetime License

Your purchase includes lifetime updates. No subscriptions.

Professional tools for professional developers.
[TinyGiants]