Skip to main content
Learn from these practical plugin examples that demonstrate common use cases and implementation patterns.

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:
This plugin uses events to modify messages in real-time. Keep the logic fast to avoid UI freezing.

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
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