Getting Started
Installation
Install from Precompiled Version (Recommended)
- Download the precompiled version for your platform from the Releases page
- Extract to your Godot project's
bin/directory - Enable the plugin in project settings
Verify Installation
Create a simple test script to verify installation:
gdscript
# Test.gd
extends Node
func _ready():
# Check if SignalBus is available
var bus = SignalBus.get_singleton()
if bus:
print("GDSignalBus installed successfully!")
# Test basic functionality
var subscription_id = bus.subscribe("test_signal", _on_test_signal)
bus.emit("test_signal", ["Hello from SignalBus!"])
else:
print("GDSignalBus not properly installed")
func _on_test_signal(message):
print("Received signal: ", message)Basic Usage
Get SignalBus Instance
gdscript
# Get singleton
var bus = SignalBus.get_singleton()Send Signals
gdscript
# Send simple signal
bus.emit("player_died", [])
# Send signal with parameters
bus.emit("item_collected", ["coin", 100])
# Send to specific channel
bus.emit_on_channel("ui", "button_clicked", ["start_button", "main"])Listen to Signals
gdscript
# Subscribe to signals in _ready or appropriate place
func _ready():
bus.subscribe("player_died", _on_player_died)
bus.subscribe("item_collected", _on_item_collected)
bus.subscribe_on_channel("ui", "button_clicked", _on_ui_event)
# Signal handler functions
func _on_player_died():
print("Player died")
get_tree().reload_current_scene()
func _on_item_collected(args):
var item_type = args[0]
var value = args[1]
print("Collected item: ", item_type, " value: ", value)
score += value
func _on_ui_event(args):
var source = args[0]
var context = args[1]
print("Button clicked: ", source, " in ", context)Disconnect
gdscript
# Save subscription ID for later cancellation
var subscription_id = bus.subscribe("player_died", _on_player_died)
# Disconnect specific signal
bus.unsubscribe(subscription_id)
# Auto cleanup when node is removed (recommended)
func _exit_tree():
bus.unsubscribe_all(self)Debug Features
gdscript
# Enable debug mode
bus.set_debug_enabled(true)
# Get system information
print("All signals: ", bus.get_signal_list())
print("All channels: ", bus.get_channel_list())
print("Subscriber count: ", bus.get_subscriber_count("player_died"))Next Steps
- Learn about Core Concepts
- Explore Async Signals
- Study Signal Bridging
- View API Reference
- Browse Examples