Skip to content

/im Command - Complete Guide

The /im command (alias: /inviteme) handles all plugin administration tasks. This command is designed for server operators and admins.

/im <subcommand> [options]

/im stats [N]
  • invite.stats - Required (default: op)
/im stats

Output:

══════ Server Invite Statistics ══════
Total invites given: 47
Total invited players: 47
─────────── Top Inviters ───────────
1. Alice — 8 invites
2. Bob — 6 invites
3. Steve — 5 invites
4. Charlie — 4 invites
5. Diana — 3 invites
════════════════════

Show more or fewer entries in the ranking:

/im stats 10
/im stats 3

Example: /im stats 10 shows top 10 inviters instead of default 5.

Reset all boost statistics for a specific player:

/im stats clear Alice

Permission: invite.admin (requires admin, not just invite.stats)

What gets reset:

StatReset to
Boosted vanilla XP0
Boost time (seconds)0
Net boost XP0
XP shared given0
XP shared received0

Use cases:

  • Fresh start after testing the boost system
  • Wipe stats at the beginning of a season or event
  • Remove erroneous or test data
  • Monitor server growth and invitation activity
  • Find the most active community members
  • Decide who deserves VIP status based on activity

/im log list [player-name] [N]
/im log export [global|player-name]
  • invite.log - Required (default: op)
/im log list

Shows the last 20 actions by default (max: 200).

Output:

══════ Invite Action Log ══════
[INVITE] Alice → Bob (2024-01-20 16:45)
[UNINVITE] Admin → Charlie (2024-01-20 15:30) — rule violation
[EXPIRED] Console → Tom (2024-01-19 12:00)
[SYNC_ADD] Console → Eve (2024-01-17 20:30)
════════════════════
/im log list 50
/im log list 100

Requests above 200 are automatically capped and a notice is shown.

Passing a player name shows their full profile instead of the global log:

/im log list Alice

Output:

══════ Invite Profile: Alice ══════
Invited by: Console (2024-01-01 10:00)
Has invited: 3 players
• Bob (2024-01-15 14:30)
• Charlie (2024-01-17 09:00)
• Diana (2024-01-19 20:15)
─── Recent Activity ────────────────
[INVITE] Alice → Bob (2024-01-15 14:30)
[INVITE] Alice → Charlie (2024-01-17 09:00)
══════════════════════════════════════

You can also limit the history shown:

/im log list Alice 10
TypeMeaning
INVITEPlayer was invited to the server
UNINVITEInvitation was manually removed
EXPIREDTemporary invitation expired automatically
SYNC_ADDPlayer added during whitelist sync
/im log export # full global log
/im log export global # explicit global export
/im log export Alice # export one player's log

Files created in plugins/InviteMe/logs/:

  • Global: global_log_YYYY-MM-DD_HHmmss.csv
  • Per player: user_log_<name>_YYYY-MM-DD_HHmmss.csv

CSV columns: timestamp, action_type, actor_name, actor_uuid, target_name, target_uuid, reason

Use cases:

  • Audit trail for rule violations
  • Report to server owner
  • Import into spreadsheet for analysis
  • Evidence when banning a player

/im sync
  • invite.admin - Required

Forces an immediate whitelist synchronisation and reports the precise delta — no snapshot comparison, the count is calculated during the operation itself.

Output:

⟳ Starting whitelist synchronization...
→ Whitelisted: 47 | Tracked: 45 | Missing: 2
✓ Synchronization completed: 2 added, 0 removed
✓ All whitelisted players are tracked!

If players still need manual attention after sync:

⚠ 1 players still need manual attention
  • After migrating from vanilla whitelist to InviteMe
  • After a server crash or plugin error
  • After manually editing whitelist.json
  • If players report they can’t join despite being “invited”

/im reload
  • invite.admin - Required

What reloads:

  • config.yml — all settings including storage type, limits, LuckPerms config
  • Language files — all locale files in plugins/InviteMe/locales/
  • Permission group mappings — LuckPerms group-limits re-read
  • Access control mode — native vs plugin mode

What does NOT reload:

  • Active database connections (requires restart)
  • Cached player heads in GUI (refreshes on next open)

After editing config.yml:

1. Edit plugins/InviteMe/config.yml
2. /im reload
3. /im debug ← verify changes applied

/im migrate <sqlite|mysql|postgresql>
  • invite.admin - Required

Before any data is touched, the command validates:

  • The target backend must be sqlite, mysql, or postgresql
  • The target must differ from the currently active backend
/im migrate badname
→ ✗ Unknown backend 'badname'. Valid options: sqlite, mysql, postgresql.
/im migrate sqlite (when already on SQLite)
→ → Already using sqlite. No migration needed.

Migration runs in 4 phases and reports progress for each:

/im migrate mysql

Output:

⟳ Connecting to MYSQL and migrating data...
This may take up to 30 seconds — please wait...
⟳ [1/4] Verifying source data...
Invitations: 47 | Logs: 120 | Stats: 35
⟳ [2/4] Migrating invitations...
✓ Invitations migrated (47 records)
⟳ [3/4] Migrating action log...
✓ Action log migrated (120 records)
⟳ [4/4] Migrating player stats...
✓ Player stats migrated (35 records)
✓ Migration complete! 202 records → mysql
→ Now change storage.type to 'mysql' in config.yml and run /im reload.

If a phase fails:

✗ Error in phase 2/4: <error message>
✗ Migration failed. Original data is intact.
config.yml
storage:
type: mysql # ← change this to the target backend

Then run /im reload to switch the active connection.

  • Original data is never modified/im migrate only copies records to the target backend
  • If migration fails at any phase, the copy is aborted and your source data is untouched
  • The .migrated suffix only appears during automatic startup migration (e.g. upgrading from the JSON backend), not when you run /im migrate manually
  • Always test migration with a backup first on large servers

/im debug
  • invite.admin - Required
══════════ InviteMe Debug ══════════
1. Plugin Info:
Version: 1.2.0
Language: en
LuckPerms: Enabled
2. Invite Statistics:
Total Invites: 47
Total Inviters: 12
Max Invites (config): 5
3. Top Inviters:
1. Alice — 8 invites
2. Bob — 6 invites
4. Your Invite Info: ← only shown when run by a player
Has Unlimited: No
Max Invites: 5
Used Invites: 3
Remaining: 2
5. PlaceholderAPI:
Status: Installed
6. Mutual Boost Manager:
Status: Enabled
Your Boost Active: No
Boost Partners: 1
7. Data File:
Location: plugins/InviteMe/invites.db
Exists: Yes
Size: 68.00 KB
Last Modified: 2024-01-20 16:45:00
(Remote storage backends show "MYSQL (remote — no local file)" instead)
8. Whitelist Sync:
Status: Enabled
Total Whitelisted: 47
Total Invites Tracked: 47
Console Invites: 2
Missing Invites: 0 (synced)
Next Sync: 60 minutes
══════════════════════════════════════
  • Section 4 only appears when executed by a player (not from console)
  • Data File section adapts to the active backend: SQLite shows invites.db, remote backends show the backend type instead
  • LuckPerms Enabled: group-limits in config.yml are active
  • PlaceholderAPI Installed: placeholders like %inviteme_count% work

Players can’t join despite being invited:

/im debug
# Check: Access control mode correct?
/im sync

LuckPerms limits not working:

/im debug
# Check section 1: LuckPerms status
# If Disabled: verify LuckPerms is loaded before InviteMe
/im reload

/im boost
/im boost status [player]
/im boost check <player1> <player2>
  • invite.admin - Required

Diagnostic tool for the mutual XP boost system.

/im boost

Lists every active boost pair server-wide and shows the multiplier.

Output:

⚡ Invite Boost — Global Status
Manager: Enabled Multiplier: 2x
Alice ↔ Bob [ACTIVE]
Steve ↔ Diana [ACTIVE]
Total active pairs: 2
/im boost status
/im boost status Alice

No player argument defaults to yourself (must be a player). Shows whether the target has an active boost, their partners, effective multiplier, and XP sharing percentage.

/im boost check Alice Bob

Checks whether a direct invite link exists between two online players (in either direction) and whether they are eligible for the boost.

Output:

⚡ Invite link check:
Alice → Bob: Yes (Alice invited Bob)
Bob → Alice: No
Direct link exists: Yes (boost eligible)

Both players must be online. If either is offline the command reports “Player not found or offline.”

See the Mutual Boost Guide for the full mechanics.


/im report
  • invite.admin - Required

Generates a diagnostic snapshot of the server and uploads it to the configured paste backend, returning a clickable URL to share with support.

SectionContent
Plugin & server versionInviteMe version, Paper/Spigot build
Storage backendActive backend type
config.yml (sanitized)All settings — credentials replaced with ***
Active pluginsName and version of all loaded plugins
InviteMe console logLast 200 lines mentioning InviteMe (including stack traces)
⟳ Generating bug report...
✓ Report generated: https://pastefox.com/abc123

The URL is clickable in-game. Share it when opening a support request or bug report.

FeaturePasteFox (default)mclo.gs
Log highlightingGeneric✅ Minecraft-specific
Expiry control✅ Configurable (default 24 h)❌ No control
Visibility✅ PUBLIC / UNLISTED / PRIVATE❌ Always public
Password protection✅ Optional❌ Not supported

Configure the backend and options under report: in config.yml. See Config Reference.


PermissionGrants Access ToDefault
invite.adminsync, reload, migrate, debug, boost, report, uninvite, stats clearop
invite.stats/im stats [N] — view onlyop
invite.log/im log list, /im log exportop
invite.*All of the aboveop

1. /im log list SuspiciousPlayer
→ See who invited them, when, and full action history
2. /invite remove SuspiciousPlayer Rule violation
→ Remove if needed, with reason logged
3. /im log list
→ Confirm the action was logged
1. /im stats
→ Weekly check of server activity
2. /im log export
→ Export logs for archiving
3. /im debug
→ Verify everything is healthy
4. /im sync
→ Fix any whitelist discrepancies (after updates)
5. /im report
→ Generate a shareable diagnostic snapshot for support

“You don’t have permission for /im”

  • ✅ You need invite.admin or op status
  • ✅ Check: /im debug (if you can run this, you have admin)

“Migration failed”

  • ✅ Check database credentials in config.yml
  • ✅ Verify the target database exists and is reachable
  • ✅ Check firewall rules for the database port
  • ✅ Original data is safe — check invites.db.migrated

“Reload didn’t apply my changes”

  • ✅ Check for YAML syntax errors in config.yml
  • ✅ Use a YAML validator online if unsure
  • ✅ Run /im debug to confirm current values