Simple Chat Command
This example shows how to create custom commands using the modern command system:Commands automatically work in chat rooms, private chats, and CLI unless you use the
disable parameter.Advanced Command with Interface-Specific Behavior
This example shows interface-specific parameters and callbacks:Anti-Shout: Text Transformation Plugin
Converts ALL CAPS messages to proper capitalization:Auto-Responder with Throttling
Responds to trigger words while avoiding chat flood bans:ResponseThrottle prevents:- Same user requesting same thing too quickly (12× limit)
- Different users requesting same thing too quickly (3× limit)
- Responding in the same room too recently
- Responding in too many rooms simultaneously
Auto-Buddy Room Members
Automatically adds private room members as buddies:1
Enable the plugin
Go to Preferences → Plugins and enable “Auto-Buddy Room Members”
2
Configure settings
Choose whether to watch all rooms or specify specific rooms to monitor
3
Join private rooms
When new members are added, they’ll automatically become buddies
Dropdown/Radio Button Settings
Demonstrates different setting UI types:Search Monitoring Plugin
Log and respond to search requests:Download/Upload Tracker
Track transfer statistics:Connection Monitor
Track server connection status:Best Practices
1
Prefer Notifications Over Events
Use notifications (
_notification) unless you need to modify data. Events can freeze the UI if slow.2
Use ResponseThrottle for Auto-Responders
Always throttle automatic chat responses to avoid server bans.
3
Provide User Settings
Make plugins configurable through
settings and metasettings dictionaries.4
Clean Up Resources
Implement
disable() to clean up timers, connections, and resources.5
Log Important Actions
Use
self.log() for debugging and user feedback.Additional Resources
Getting Started
Learn the basics of plugin development
API Reference
Complete method and event reference
Official Examples
Browse example plugins in the repository
Source Code
View pluginsystem.py source code