Essential server management commands for SocialPie chat servers.
This plugin provides the core commands that every chat server needs:
/help [command]- Display available commands or help for a specific command/list- Show all currently online users/me <action>- Send an action message (e.g.,/me waves→* username waves)/whisper <user> <message>- Send a private message to another user- Aliases:
/w,/pm
- Aliases:
/kick <user> [reason]- Kick a user from the server- Requires permission:
users.kick
- Requires permission:
/mute <user> <seconds>- Temporarily mute a user- Requires permission:
users.mute
- Requires permission:
/broadcast <message>- Send a server-wide announcement- Alias:
/announce - Requires permission:
server.broadcast
- Alias:
This plugin is included in the official SocialPie plugins directory and will be auto-discovered if you have the official plugins path configured.
- Copy the
server_commandsdirectory to your plugins folder - Restart your SocialPie server or reload plugins
- The plugin will auto-enable on startup
Edit plugin.yaml to customize behavior:
config:
# Whisper settings
whisper:
show_sender: true # Show sender's name in whispers
max_length: 500 # Max whisper length (characters)
# Kick settings
kick:
require_reason: true # Require reason when kicking
broadcast_kick: true # Announce kicks to all users# Get help
/help
# Get help for specific command
/help whisper
# List online users
/list
# Send action message
/me is excited about SocialPie!
# Output: * alice is excited about SocialPie!
# Private message
/whisper bob Hey, how are you?
/w bob This is a whisper!
/pm bob Private message here# Kick a user
/kick alice Spamming messages
/kick bob # Error: reason required (if require_reason: true)
# Mute a user for 60 seconds
/mute alice 60
# Server announcement
/broadcast Server will restart in 5 minutes
/announce Maintenance scheduled for tonightTo use admin commands, users must have the appropriate permissions. Configure permissions in your server's user management system.
users.whisper- Send private messagesusers.kick- Kick users from serverusers.mute- Temporarily mute usersserver.broadcast- Send server-wide announcements
The /help command dynamically shows available commands based on the user's permissions. Users without admin permissions will not see admin-only commands in the help output.
- Whispers are only visible to the sender and recipient
- Sender's name is included by default (configurable)
- Message length is limited to prevent abuse
- Failed whispers (user not found) notify the sender privately
- Creates narrative-style messages
- Broadcast to all users
- Commonly used for roleplay or expressing emotions
- Example:
/me laughs→* alice laughs
- Immediately disconnects the user
- Optionally requires a reason (recommended)
- Can announce kicks to all users
- Kicked user receives the disconnect reason
- Prevents a user from sending messages
- Duration specified in seconds
- Note: Current implementation is basic; mutes persist until server restart
- Sends highlighted server announcement
- Includes admin's username
- Useful for maintenance notifications, events, etc.
- Timed Unmute: Implement automatic unmute after duration expires
- Mute Persistence: Store muted users in database
- Ban Command: Permanent removal with IP blocking
- Enhanced Help: Pull command info from plugin manager
- User Blocking: Allow users to block other users
- Command Aliases: More customizable command aliases
This plugin demonstrates:
- ✅ Command decorators (
@command) - ✅ Permission decorators (
@require_permission) - ✅ Server integration (broadcasts, user management)
- ✅ Configuration-driven behavior
- ✅ Error handling and user feedback
Issue: /help or other commands don't respond
Solutions:
- Ensure the plugin is enabled: check server logs for "server_commands_enabled"
- Verify plugin loaded correctly: check for errors in startup logs
- Check permissions: admin commands require specific permissions
Issue: /whisper command says "sent" but user doesn't receive it
Solutions:
- Verify target username spelling (case-sensitive)
- Ensure target user is currently connected (
/listto check) - Check server logs for delivery errors
Issue: Want to kick silently without announcement
Solution:
Edit plugin.yaml and set broadcast_kick: false
MIT License - See main SocialPie LICENSE file
- GitHub Issues: https://github.com/socialpie/socialpie/issues
- Documentation: https://socialpie.readthedocs.io
- Discord: https://discord.gg/socialpie
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new features
- Submit a pull request
Version: 1.0.0
Author: SocialPie Team
Last Updated: 2026-01-25