Debugging
Purpose
This section explains how to debug event flow and diagnose issues in Reactive SO. You will learn to use the built-in debugging tools and troubleshoot common problems.
Available tools
Reactive SO provides the following debugging tools.
| Tool | Purpose |
|---|---|
| Event Monitor | Real-time event tracking with caller information |
| Action Monitor | Real-time tracking of action executions |
| Variable Monitor | Real-time variable state monitoring |
| Runtime Set Monitor | Real-time runtime set monitoring |
| Asset Browser | Browse, search, and manage all Reactive SO assets |
| RES Table View | View, edit, and save ReactiveEntitySet data in table format |
| Dependency Analyzer | Static analysis for scenes and prefabs |
| Manual Trigger | Test events and actions from Inspector without code |
| Subscribers List | View active subscribers during Play Mode |
Tool selection guide
graph TB
A["Diagnose an issue"] --> B{"Real-time?"}
B -->|YES| C{"What to check?"}
B -->|NO| D["Dependency Analyzer<br/>Static analysis"]
C -->|Event firing| E["Event Monitor"]
C -->|Action execution| J["Action Monitor"]
C -->|Variable value| F["Variable Monitor"]
C -->|Set contents| G["Runtime Set Monitor"]
C -->|Subscribers| H["Subscribers List"]
E --> I{"Event appears?"}
I -->|NO| K["Check publisher"]
I -->|YES| L{"#L > 0?"}
L -->|NO| M["No subscribers"]
L -->|YES| N["Check subscriber"]
| Question | Tool |
|---|---|
| Is my event firing? | Event Monitor (Monitor Window) |
| Did my action execute? | Action Monitor (Monitor Window) |
| What’s the current variable value? | Variable Monitor (Monitor Window) |
| What objects are in my runtime set? | Runtime Set Monitor (Monitor Window) |
| Who’s subscribed to this event? | Subscribers List |
| Where is this asset used? | Dependency Analyzer |
| Can I test without playing? | Manual Trigger |
| Which code raised this event? | Event Monitor (Monitor Window - Caller column) |
| Do I have memory leaks? | Subscribers List (scene transitions) |
| Are all assets assigned? | Dependency Analyzer |
| What value was passed with event? | Event Monitor (Monitor Window - Value column) |
Common debugging scenarios
Event not firing
Problem Button click does not trigger expected behavior.
Steps
- Open Event Monitor (Window > Reactive SO > Monitor)
- Ensure “Show In Event Log” is enabled on the event channel
- Click the button in your game
- Check if the event appears in the log
Diagnosis
- Event appears: Problem is in subscriber. Check Subscribers List.
- Event does not appear: Problem is in publisher. Check event channel assignment and
RaiseEvent()call.
Action not executing
Problem A quest reward or effect defined in an Action does not trigger.
Steps
- Open Action Monitor (Window > Reactive SO > Monitor)
- Ensure “Show In Monitor” is enabled on the action asset
- Trigger the logic in your game
- Check if the action execution appears in the log
Diagnosis
- Action appears: Check the action’s C# implementation for logic errors.
- Action does not appear: Check the code calling
Execute()and verify the asset is assigned.
Event fires but nothing happens
Problem Event appears in Event Monitor but expected behavior does not occur.
Steps
- Check #L column in Event Monitor (listener count)
- If #L = 0, nobody subscribed
- Select the event channel and check Subscribers List
- Verify expected MonoBehaviours are listed
Diagnosis
- Subscriber exists: Check subscriber method logic
- Subscriber missing: Check
OnEnable/OnDisablesubscription code - Wrong subscriber: Check event channel assignment
Debug settings
Each asset has debug options in the Inspector.
Show In Monitor / Event Log
When enabled, activities appear in the Monitor Window during Play Mode.
Show In Console
When enabled, activities output to Unity Console. Use for traditional Debug.Log-style debugging.
References
- Troubleshooting - Common issues