Signal Bus Reference

Complete reference of all Events signals: who emits them, who listens, and what parameters they carry.

How to Use

# Emit from anywhere
Events.player_damaged.emit(10, "enemy.swarmer")

# Listen from anywhere
func _ready() -> void:
    Events.player_damaged.connect(_on_player_damaged)

func _on_player_damaged(amount: float, source_id: String) -> void:
    pass

Signal List

Phase 1 — Foundation

SignalParamsEmitted ByListened By
content_loaded()ContentRegistryAny system waiting for data
mod_loaded(mod_path: String)ContentRegistryDebug/logging
player_spawned(player: Node2D)LevelCamera, UI
player_moved(position: Vector2)PlayerCamera, debug
player_dashed(direction: Vector2)PlayerAudio, particles

Phase 2 — Combat & Enemies

SignalParamsEmitted ByListened By
wave_started(wave_index: int, total_enemies: int)WaveDirector, SpawnerUI, Level, Player
wave_ended(wave_index: int)WaveDirector, SpawnerUI, Level
enemy_spawned(enemy_id: String, position: Vector2)Enemy._ready()ScoreTracker, BeatClock
enemy_died(enemy_id: String, position: Vector2)Enemy._die()ScoreTracker, Spawner, FortressController
enemy_hit(enemy_node: Node, amount: float, source_id: String)WeaponScoreTracker
projectile_fired(projectile_id: String, position: Vector2, direction: Vector2)WeaponAudio, debug
player_damaged(amount: float, source_id: String)Enemy, hazardPlayer, UI, DebugOverlay
player_died(position: Vector2)PlayerLevel, GameOverOverlay, Camera
player_respawned(position: Vector2)Respawn systemUI, Camera

Phase 3 — Fortress & Building

SignalParamsEmitted ByListened By
fortress_damaged(amount: float, source_id: String)Enemy, projectileFortressController
fortress_integrity_changed(new_integrity: float, max_integrity: float)FortressControllerUI, BeatClock
module_placed(module_id: String, attachment_point_id: String)ModuleControllerUI, audio
module_destroyed(module_id: String, attachment_point_id: String)ModuleUI, FortressController
module_sold(module_id: String, attachment_point_id: String, refund_amount: int)BuildModeUIUI, FortressController
module_damaged(target_node: Node, amount: float, source_id: String)Enemy, projectileUI, FortressController
scrap_changed(new_total: int)FortressControllerUI
scrap_pickup_spawned(amount: int, position: Vector2)Enemy._die()
scrap_pickup_collected(amount: int)ScrapPickupFortressController, UI
stop_budget_changed(current: float, max: float)FortressControllerUI
fortress_halted()FortressControllerAudio, TimeController
fortress_resumed()FortressControllerAudio, TimeController
slow_walker_appeared()SlowWalkerDirectorAudio, UI
slow_walker_reached()SlowWalkerDirectorGame over
wave_loop_advanced(loop_index: int, multiplier: float)WaveDirectorFortressController, UI
game_over(reason: String, stats: Dictionary)FortressControllerGameOverOverlay, SaveSystem
game_restarted()SceneManagerAll systems reset

Phase 4+ — Modes, Scanning, Club, Persistence

SignalParamsEmitted ByListened By
mode_changed(from_mode: String, to_mode: String)ModeControllerCameraController, Player, UI
camera_zoom_changed(new_zoom: float)CameraController
time_scale_changed(new_scale: float)TimeController
player_docked(tower_position: Vector2)ModeControllerCameraController
player_undocked()ModeControllerCameraController
scan_started(scannable_id: String)ScannerControllerUI
scan_progress(scannable_id: String, percent: float)ScannerControllerUI
scan_completed(scannable_id: String, fragment_id: String, unlocked_blueprint_id: String)ScannerControllerUI, JournalPanel
scan_cancelled(scannable_id: String)ScannerControllerUI
fragment_revealed(fragment_id: String)ScannerControllerJournalPanel
blueprint_unlocked(building_id: String)ScannerController, SaveSystemBuildModeUI, UI
heartbeat_bpm_changed(new_bpm: float)BeatClockAudioController
critical_state_entered(reason: String)BeatClockCriticalVignette, UI
critical_state_exited()BeatClockCriticalVignette, UI
club_entered()ClubDoorAudio, TimeController
club_exited()ExitDoorAudio, TimeController
dialogue_started(npc_id: String, dialogue_id: String)NPCDialoguePanel
dialogue_ended(npc_id: String)NPCDialoguePanel
trade_completed(npc_id: String, items_spent: int, blueprint_unlocked_id: String)NPCUI, FortressController
save_started(reason: String)SaveSystemUI
save_completed(filepath: String)SaveSystemUI
save_failed(error: String)SaveSystemUI
world_loaded()SaveSystemAll systems
quit_requested()PauseMenuSaveSystem