Overview
rebootpy uses an event-driven architecture to notify your application about real-time changes. Events are dispatched when friends come online, messages are received, party members join, and more.Registering Event Handlers
There are three ways to register event handlers:1. Using the @event Decorator
2. Using Custom Event Names
3. Using add_event_handler()
Event Naming Convention
When using the decorator without arguments, events must follow the naming pattern:Core Events
Client Events
event_ready()
Called when the client is fully initialized and ready.
event_before_start()
Called before the client starts. Useful for setup tasks.
event_before_close()
Called before the client closes. Useful for cleanup.
event_restart()
Called when the client restarts (Client only).
event_device_auth_generate(details)
Called when device authentication is generated.
Parameters:
details(dict) - Device auth details to store
Friend Events (Client only)
event_friend_message(message)
Called when a friend message is received.
Parameters:
message(FriendMessage) - The message object
event_friend_add(friend)
Called when a friend is added.
Parameters:
friend(Friend) - The friend that was added
event_friend_remove(friend)
Called when a friend is removed.
Parameters:
friend(Friend) - The friend that was removed
event_friend_request(request)
Called when a friend request is received.
Parameters:
request(IncomingPendingFriend) - The incoming friend request
event_friend_presence(before, after)
Called when a friend’s presence changes.
Parameters:
before(Presence | None) - Previous presence (None if friend just came online)after(Presence) - New presence
Party Events (Client only)
event_party_message(message)
Called when a party message is received.
Parameters:
message(PartyMessage) - The message object
event_party_member_join(member)
Called when a member joins the party.
Parameters:
member(PartyMember) - The member who joined
event_party_member_leave(member)
Called when a member leaves the party.
Parameters:
member(PartyMember) - The member who left
event_party_member_promote(old_leader, new_leader)
Called when party leadership changes.
Parameters:
old_leader(PartyMember) - Previous party leadernew_leader(PartyMember) - New party leader
event_party_member_kick(member)
Called when a member is kicked from the party.
Parameters:
member(PartyMember) - The member who was kicked
event_party_member_disconnect(member)
Called when a member disconnects from the party.
Parameters:
member(PartyMember) - The member who disconnected
event_party_member_update(member)
Called when a party member’s meta is updated (outfit, emote, etc.).
Parameters:
member(PartyMember) - The member who was updated
event_party_update(party)
Called when party configuration is updated.
Parameters:
party(ClientParty) - The party that was updated
event_party_invitation(invitation)
Called when the client receives a party invitation.
Parameters:
invitation(ReceivedPartyInvitation) - The invitation object
Using wait_for()
You can wait for specific events to occur:
Wait for Party Promotion
Multiple Event Handlers
You can register multiple handlers for the same event:Removing Event Handlers
Event Flow Diagram
Best Practices
Use async/await
All event handlers must be async functions and use
await for async operationsHandle errors
Wrap event handler code in try-except to prevent crashes
Keep handlers fast
Don’t block the event loop with long-running operations
Use wait_for() wisely
Always set timeouts to avoid waiting forever
Common Patterns
Auto-accept Friend Requests
Command Handler Pattern
Party Auto-join
Next Steps
Friends
Learn about friend management
Parties
Understand party system mechanics
Messages
Handle friend and party messages
Presence
Track friend presence and status