Files
GuardDen/config/guilds/example-guild-123456789.yml
latte 97c4bfd285 Reduce strike action timeout from 1 hour to 5 minutes
- Updated strike level 3 timeout duration from 3600s (1 hour) to 300s (5 minutes)
- Changes applied across models, config defaults, templates, schemas, and tests
- Makes moderation system less harsh while maintaining discipline
2026-01-25 09:40:21 +01:00

149 lines
6.1 KiB
YAML

# Example Guild Configuration
# Copy this file to guild-{YOUR_GUILD_ID}.yml and customize
# Basic Guild Information
guild_id: 123456789012345678 # Replace with your Discord server ID
name: "Example Gaming Community" # Your server name
owner_id: 987654321098765432 # Guild owner's Discord user ID
premium: false # Set to true if you have premium features
settings:
# General Settings
general:
prefix: "!" # Command prefix (for read-only commands)
locale: "en" # Language code
# Discord Channel Configuration (use actual channel IDs or null)
channels:
log_channel_id: null # General event logging
mod_log_channel_id: 888999000111222333 # Moderation action logging
welcome_channel_id: null # New member welcome messages
# Discord Role Configuration (use actual role IDs or null)
roles:
mute_role_id: 444555666777888999 # Role for timed-out members
verified_role_id: 111222333444555666 # Role given after verification
mod_role_ids: # List of moderator role IDs
- 777888999000111222
- 333444555666777888
# Moderation System Configuration
moderation:
automod_enabled: true # Enable automatic moderation
anti_spam_enabled: true # Enable anti-spam protection
link_filter_enabled: true # Enable suspicious link detection
# Strike System - Actions at different strike thresholds
strike_actions:
"1": # At 1 strike: warn user
action: warn
"3": # At 3 strikes: 1 hour timeout
action: timeout
duration: 300
"5": # At 5 strikes: kick from server
action: kick
"7": # At 7 strikes: ban from server
action: ban
# Automatic Moderation Thresholds
automod:
# Message Rate Limiting
message_rate_limit: 5 # Max messages per time window
message_rate_window: 5 # Time window in seconds
duplicate_threshold: 3 # Duplicate messages to trigger action
# Mention Spam Protection
mention_limit: 5 # Max mentions per single message
mention_rate_limit: 10 # Max mentions per time window
mention_rate_window: 60 # Mention time window in seconds
# Scam Protection - Domains that bypass scam detection
scam_allowlist:
- "discord.com" # Official Discord
- "github.com" # Code repositories
- "youtube.com" # Video platform
- "imgur.com" # Image hosting
- "steam.com" # Gaming platform
# Add your trusted domains here
# AI-Powered Content Moderation
ai_moderation:
enabled: true # Enable AI content analysis
sensitivity: 75 # AI sensitivity (0-100, higher = stricter)
confidence_threshold: 0.7 # Minimum confidence to take action (0.0-1.0)
log_only: false # Only log violations vs take action
nsfw_detection_enabled: true # Enable NSFW image detection
# NSFW-Only Filtering Mode (NEW FEATURE!)
nsfw_only_filtering: true # true = Only block sexual content
# false = Block all inappropriate content
# Member Verification System
verification:
enabled: false # Enable verification for new members
type: "captcha" # Verification type: button, captcha, math, emoji
# Guild-Specific Banned Words (optional)
# These are in addition to patterns in config/wordlists/banned-words.yml
banned_words:
- pattern: "guild-specific-word"
action: delete
is_regex: false
reason: "Server-specific rule"
category: harassment
- pattern: "sp[a4]m.*bot"
action: timeout
is_regex: true # This is a regex pattern
reason: "Spam bot detection"
category: spam
# Configuration Notes and Examples:
#
# === NSFW-ONLY FILTERING EXPLAINED ===
# This is perfect for gaming communities that discuss violence but want to block sexual content:
#
# nsfw_only_filtering: true
# ✅ BLOCKS: Sexual content, nude images, explicit material
# ❌ ALLOWS: Violence, gore, harassment, hate speech, self-harm discussions
#
# nsfw_only_filtering: false
# ✅ BLOCKS: All inappropriate content (sexual, violence, harassment, hate speech, etc.)
#
# === AI SENSITIVITY GUIDE ===
# 0-30 = Very lenient (only extreme violations)
# 31-50 = Lenient (clear violations only)
# 51-70 = Balanced (moderate detection) - RECOMMENDED
# 71-85 = Strict (catches most potential issues)
# 86-100 = Very strict (may have false positives)
#
# === VERIFICATION TYPES ===
# button = Simple button click (easiest for users)
# captcha = Text-based captcha entry (more secure)
# math = Solve simple math problem (educational)
# emoji = Select correct emoji from options (fun)
#
# === AUTOMOD ACTIONS ===
# warn = Send warning message to user
# delete = Delete the offending message
# timeout = Temporarily mute user (requires duration)
# kick = Remove user from server (can rejoin)
# ban = Permanently ban user from server
#
# === CONFIGURATION TIPS ===
# 1. Start with balanced settings and adjust based on your community
# 2. Use nsfw_only_filtering: true for gaming/mature discussion servers
# 3. Set higher sensitivity (80+) for family-friendly servers
# 4. Test settings with !ai analyze "test message" command
# 5. Monitor mod logs to tune your settings
# 6. Back up your config: python -m guardden.cli.config guild backup {guild_id}
#
# === HOT-RELOAD TESTING ===
# Edit this file and save - changes apply within seconds!
# Watch the bot logs to see configuration reload messages.
# Use "!config" in Discord to verify your settings loaded correctly.
#
# === GETTING HELP ===
# Run: python -m guardden.cli.config --help
# Validate: python -m guardden.cli.config guild validate {guild_id}
# Check status: python -m guardden.cli.config guild list