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:

Stat Reset to
Boosted vanilla XP 0
Boost time (seconds) 0
Net boost XP 0
XP shared given 0
XP shared received 0

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
Type Meaning
INVITE Player was invited to the server
UNINVITE Invitation was manually removed
EXPIRED Temporary invitation expired automatically
SYNC_ADD Player 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 # one line per area
/im debug <section> # storage | sync | boost | papi | version | config | locale | tasks
  • invite.admin - Required
══════ InviteMe Debug ══════
InviteMe 26.09.30.0 | Paper 1.21.11 | Java 25 (Eclipse Adoptium)
[✓] storage: SQLite (invites.db) | 42 invite(s)
[✓] sync: next in 37 min | last 23 min ago (+0/-0)
[✓] boost: enabled | 3 player(s) boosted now
[-] papi: not installed
[!] version: update available: 26.10.01.0 (1 version(s) behind)
[✓] config: 4 key(s) changed | 0 unknown
[✓] locale: en | 0 key(s) missing
[✓] tasks: 9 task(s) scheduled
Your invites: 2/5 used ← only when run by a player
Details: /im debug <storage|sync|boost|papi|version|config|locale|tasks>
Need help? /im report builds a report for support.

[✓] works, [-] is off, [!] needs a look — open that section for the detail.

Section Shows
storage Backend, data file with its size and last change (date and time in your date-time-formatting.timezone), MySQL/PostgreSQL connection pool (active, idle, open, waiting), invites, inviters, action log size and the top 5 inviters
sync Status, interval, time left until the next sync, when the last one ran and what it changed, whitelisted players, tracked invites and whitelisted players without an invite
boost Radius per dimension, XP multiplier and its cap, max partners, cooldown, players boosted right now and your own boost
papi Whether the placeholders registered (with the error if not) and a live test of a few placeholders on you
version The update check’s result, last and next check, which version types it notifies for (`release ✓
config Keys whose value differs from the default — passwords, hosts, users and webhook URLs shown as *** — and unknown keys, which are usually typos
locale Active language, locale files patched this session and keys shown in English because the language lacks them
tasks Every repeating task InviteMe runs and how often, plus how many InviteMe tasks Bukkit’s scheduler holds

Storage is always read off the main thread, so /im debug does not freeze the server even with a remote database.

Players can’t join despite being invited:

/im debug sync
# Whitelisted without an invite > 0? Run /im sync

A setting seems to be ignored:

/im debug config
# Listed under "Unknown keys (typo?)"? Fix the key name, then /im reload

No update notice although a new version is out:

/im debug version
# "... does not list Minecraft X" means that version is not for your server

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

Section Content
Plugin & server version InviteMe version, Paper/Spigot build
Storage backend Active backend type
config.yml (sanitized) All settings — credentials replaced with ***
Active plugins Name and version of all loaded plugins
InviteMe console log Last 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.

Feature PasteFox (default) mclo.gs
Log highlighting Generic ✅ 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.


/im version # what the last update check found
/im version check # ask Modrinth now
  • Requires: invite.admin
══════ InviteMe Version ══════
Installed: 26.09.25.0 | Minecraft: 1.21.11
Update available: 26.09.29.0
You are 3 version(s) behind
→ Download: https://modrinth.com/plugin/inviteme/version/v26.09.29.0
Last checked 12 min ago
Use /im version check to check now.

The download link is clickable in-game and opens that version’s own page on Modrinth.

“Behind” counts the newer versions that list your server’s Minecraft version and are of a type you allow in version-checker.notify-for.

/im version also tells you why you were not told about an update:

Message Meaning
Up to date No newer version lists your Minecraft version
X exists but does not list Minecraft Y A newer version is out, but not for your Minecraft version, so no notice is sent
Last check failed: … Modrinth could not be reached; the last known result is still shown
Not checked yet The first check runs 5 seconds after startup
Update checks are disabled version-checker.enabled is false in config.yml

/im version check reuses an answer less than 5 minutes old instead of asking Modrinth again. A failed check is always retried.


Permission Grants Access To Default
invite.admin sync, reload, migrate, debug, boost, report, version, uninvite, stats clear op
invite.stats /im stats [N] — view only op
invite.log /im log list, /im log export op
invite.* All of the above op

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