Skip to content

Admin Guide

Wiki Generator edited this page Mar 18, 2026 · 1 revision

Admin Guide

This guide covers advanced administration tasks for OverWatch-ML.

First Time Setup

1. Install Dependencies

Ensure ProtocolLib is installed before OverWatch-ML.

2. Basic Configuration

The default config works for most servers. Key settings to review:

# Enable/disable decoy system
decoy:
  enabled: true

# Set to true for testing (only alerts, no auto-punishments)
ml:
  flag-only: true

3. Test the System

  1. Enable flag-only mode
  2. Mine some ores normally
  3. Verify alerts work
  4. Check staff receive notifications

Staff Management

Setting Up Staff Alerts

Staff with owml.staff permission will receive alerts. They can toggle alerts:

/owml alert

Accessing Staff GUI

/owml

This opens the main staff interface with:

  • Player list
  • Suspicious players
  • Configuration
  • Statistics

Configuring Detection

Adjusting Sensitivity

In config.yml:

ml:
  detectionThreshold: 0.75  # Higher = more strict
  thresholds:
    warning: 60
    auto-punish: 90

Custom Ores

Add or remove ores from detection:

ores:
  natural:
    - DIAMOND_ORE
    - DEEPSLATE_DIAMOND_ORE
    # Add more ores

World-Specific Settings

Disable in certain worlds:

disabled-worlds:
  enabled: true
  worlds:
    - creative_world
    - lobby

Punishments

Enabling Punishments

By default, all punishment levels are disabled. To enable:

punishment:
  enabled:
    1: true   # Warning
    2: true   # Mining debuff
    # ... etc

Setting Manual Punishment

/owml punish set <player> <level>

Removing Punishment

/owml punish remove <player>

Machine Learning

Training the System

For best results, train with both normal and cheating players:

  1. Spawn training bots:

    /owml ml spawn XRAY_CHEATER 5
    /owml ml spawn NORMAL_MINER 5
    
  2. Or train from real players:

    /owml ml train <player> cheater
    /owml ml train <player> normal
    

Analyzing Players

/owml ml analyze <player>
/owml ml report <player>

Bot Management

/owml ml bots status       # Check active bots
/owml ml bots remove       # Remove all bots
/owml ml bots auto on      # Enable auto-spawning

Discord Integration

Setting Up Discord Bot

  1. Create application at Discord Developer Portal
  2. Enable Message Content Intent
  3. Copy bot token
  4. Configure in config.yml
integrations:
  discord:
    enabled: true
    bot-token: "YOUR_TOKEN"
    notification-channel: "CHANNEL_ID"

Webhook Setup

For simple notifications without a bot:

webhook:
  url: "https://discord.com/api/webhooks/..."
  alerts:
    xray_detection: true
    suspicious_mining: true
    punishment_applied: true

Performance Tuning

Recommended Settings for Large Servers

ml:
  autoAnalysis:
    maxPlayers: 3  # Reduce from 5

performance:
  analysis-interval: 200  # Increase from 100
  max-queue: 10

Monitoring Performance

Check TPS impact:

  • Enable debug mode temporarily
  • Monitor server console for warnings
  • Use /owml ml status

Troubleshooting

False Positives

If legitimate players are flagged:

  1. Check their tool efficiency (Efficiency V enchanted pickaxe)
  2. Verify they're not using Haste potions
  3. Review mining patterns
  4. Lower detection threshold temporarily
  5. Enable flag-only mode for investigation

System Not Detecting

If x-rayers aren't being caught:

  1. Verify decoy system is working
  2. Increase detection threshold
  3. Train ML system with more data
  4. Check suspicious threshold

Performance Issues

If server is lagging:

  1. Reduce maxPlayers in autoAnalysis
  2. Increase analysis intervals
  3. Disable unused features
  4. Allocate more RAM

Maintenance

Regular Tasks

  • Review suspicious player list weekly
  • Train ML system monthly
  • Backup config files
  • Update plugin regularly

Data Management

Configure auto-save intervals:

stats:
  autoSave:
    enabled: true
    intervalMinutes: 10

suspicious:
  autoSave:
    enabled: true
    intervalMinutes: 10

Updates

Check for updates:

/owml update

Update plugin:

  • Download new version
  • Stop server
  • Replace JAR
  • Start server
  • Run /owml reload