StaffModeration
1.6.25A premium moderation plugin that has all of your needs on discord and in game
1.6.25latestStaffModeration 1.6.25Jul 31, 2026 Web Update
- Added license system for plugin to work its on the [UnityStudios License ](https://unitystudios.vercel.app/licenses) - Added Web Integration on the plugin just configure yout server name on theweb.ymland run/sm weband the plugin will send a web links you need to click it then go through the website1.6.22StaffModeration 1.6.22Jul 20, 2026 StaffModeration 1.6.22
GUI Changes
- Changed gui design - Clean GUI LiveNew Features
I added cores features on StaffModeration for the new features like: - Anti-Advertising ( Discord and in game chat ) - Anti-VPN ( On beta ) - Anti-OP - Prevent your server from getting raided - and more soon... For any suggestions or bug reports join on these discord server! [Discord Link](https://discord.gg/gdu6pZyxp2)1.6.21StaffModeration 1.6.21Jul 18, 2026 - Improve GUI Design - Fixed Discord CMDS1.6.20StaffModeration 1.6.20Jul 15, 2026 StaffModeration v1.6.20
This update introduces six new in-game commands and one new Discord command, focused on server transparency, player statistics, and community engagement. This release is fully backward compatible — no breaking changes, and all new permissions default to enabled. ---
Balance Leaderboard — `/baltop` Displays the server's top balances as a paginated Discord embed. - Interactive First / Previous / Next / Last navigation - Toggleable sort order (highest-to-lowest or lowest-to-highest) - Configurable page size (default: 10 players per page) - Requires Vault and a compatible economy plugin Kill & Death Statistics — `/kills`, `/death` Look up a player's combat statistics at a glance. -New Features
/kills [player]— displays total kills in a dedicated embed -/death [player]— displays total deaths in a dedicated embed - Tracked natively by StaffModeration, independent of any third-party statistics plugin Player Info Card — `/playerinfo <player>` A complete at-a-glance profile for any player. - Displays IGN, Deaths, Kills, Balance, Playtime, and current online status - Balance sourced from Vault; Playtime sourced from EssentialsX where available, with an automatic fallback to vanilla playtime tracking - Supports both/playerinfo <player>and/playerinfo ign:<player>syntax Server Information Panel — `/serverinfo` A live snapshot of the server's current status. - Displays Server Name, Server Owner, TPS, and Memory usage - Server Name and Owner are fully configurable — nothing is hardcoded - Memory usage is read directly from the JVM in real time, ensuring accuracy across Purpur, Paper, Spigot, and Folia - Optionally mirrors to a designated Discord channel Server Rating System — `/serverrate` Allows players to submit a star rating and written feedback directly from the game. - Guided flow: select a 1–5 star rating, then provide a written comment in chat - Ratings are strictly validated within the 1–5 range - Submissions are posted to Discord as a color-graded embed (red for low ratings, green for high ratings) - Players with a linked Discord account automatically receive a thank-you message via DM Community Suggestions — `!suggest <message>` (Discord) Enables server members to submit suggestions directly from Discord. - Automatically posts an embed containing the submitter's Discord identity, linked IGN, and suggestion text - Adds/
reactions to each submission for community voting ---
- Added newConfiguration Changes
config.ymlsections:serverinfo,baltop,playerinfo- Added newdiscord.ymlkeys:rating-webhook,suggest-channel-id, additional embed color options, and a configurablerating-colorsgradient (1–5 stars) - Added new permission nodes (default: enabled):staffmod.baltop,staffmod.stats,staffmod.serverinfo,staffmod.serverrate- All configuration files are automatically migrated on startup — existing installations require no manual intervention ---
- Introduced two new database tables:Under the Hood
player_stats(kill/death tracking) andplayer_ratings(rating history) - Added optional integrations with Vault (economy) and EssentialsX (playtime) — both are fully optional and gracefully degrade if unavailable - Registered Vault and EssentialsX as soft-dependencies to guarantee correct plugin load order ---
- Vault + a compatible economy plugin — required forRequirements
/baltopand the Balance field in/playerinfo- EssentialsX (optional) — enables accurate playtime tracking in/playerinfoDiscord Support
[Click Here To Join](https://discord.gg/DVKmCv55mP)1.6.19StaffModeration 1.6.19Jul 14, 2026 - Change something on the gui - optimize the plugin - Fixed some discord placeholder and in game placeholderNeed to delete messages.yml
1.6.18StaffModeration 1.6.18Jul 13, 2026 StaffModeration v1.6.18
New
- Update checker now detects Modrinth release channel (release/beta/alpha) for each new version - Discord "new update available" embed now shows a Release Type field and a Supported Versions field (Minecraft versions from Modrinth) - Embed color now changes based on release channel: green = release, orange = beta, red = alpha (both bot-posted embeds and webhook fallback) - New configurable colors indiscord.yml:embed-colors.update-release,embed-colors.update-beta,embed-colors.update-alpha- Console log and/staffmod updatemessage now show the release channel of the new versionFixes
- Fixed Discord embed fallback messages using mismatched{placeholder}syntax instead of%placeholder%, which caused literal text like{server}to show up in Discord instead of the actual server name - Tier "start testing" embed:{tester}/{server}→%tester%/%server%- Screenshare disconnect embed:{player}→%player%- Corrected an inaccurate doc comment referencing the old placeholder syntax1.6.17StaffModeration 1.6.17Jul 12, 2026 StaffModeration 1.6.17
- Fix folia bugs - Fix JDA disabling1.6.15StaffModeration 1.6.15Jul 12, 2026 StaffModeration v1.6.15 — Patch
Fixed - Fixed compile errors on JDK 21 build environments (class file has wrong version 69.0, should be 65.0) caused by thepaper-apidependency resolving to a JDK 25–only build - Pinnedpaper-apito1.21.4-R0.1-SNAPSHOT, targeting Paper 1.21.x and compiling cleanly under JDK 21 - Updatedplugin.ymlmetadata (api-version,folia-supported) to correctly reflect the 1.21.x target Notes - No gameplay, command, or feature changes in this patch — build/toolchain fix only - Folia support remains disabled (folia-supported: false)1.6.14StaffModeration 1.6.14Jul 12, 2026 Discord Update Notifications Fixed
Fixed
- Automatic Discord update notice was never firing. The background Modrinth check only ran once on server start and requiredsettings.check-updatesto be enabled manually — most servers never saw the "new update" embed post to Discord at all. - `/staffmod update` did not notify Discord. Running the command manually would confirm an update in-game, but never triggered the Discord webhook/bot embed like the automatic check did.Changed
-settings.check-updatesis now enabled by default. - Addedsettings.check-updates-interval-minutes(default:60) — the plugin now re-checks Modrinth on a recurring schedule instead of only once at startup, so new releases are caught without needing a server restart or reload. - Duplicate Discord notices for the same version are now suppressed, so you won't get spammed with the same update embed every check interval. - Redesigned the Discord update embed to use clean, structured fields instead of a paragraph: - Current Version - New Version - Changelogs (pulled directly from the Modrinth release changelog) - A "Click here to update" button linking straight to the Modrinth pageNotes
- Make sureupdate-channel-id(orannounce-channel-idas fallback) orupdate-webhookis configured indiscord.ymlfor the notice to have somewhere to post.1.6.13StaffModeration 1.6.13Jul 12, 2026 v1.6.13
Fixes - Fixed/muteand/tempmutesending duplicate messages (broadcast + "you're muted" notice were firing twice per punishment) - Fixed{staff}showing up literally in mute broadcast messages instead of the staff member's name - Converted all message placeholders from{player},{staff},{reason}, etc. to%player%,%staff%,%reason%style acrossmessages.ymland all plugin code Performance - Ban, mute, report, tier, and Discord-link actions no longer write their YAML files synchronously on the main thread — file saves now happen asynchronously, removing a lag spike on every/ban,/mute,/tier, and account-link action (worse as ban/mute lists grow) - Cleaned up a duplicate import inBanManager1.6.12StaffModeration 1.6.12Jul 12, 2026 StaffModeration v1.6.12 (Folia) — Changelog
- AddedLink Log Timezone (IP Geolocation)
GeoTimeUtil.java— resolves a player's real-world timezone from their connecting IP via ip-api.com geolocation (no API key required) - Link/unlink/daily-reward Discord log embeds now show the player's own local time instead of a fixed UTC timestamp - Falls back tosettings.link-log-timezone(defaultUTC) indiscord.ymlif lookup fails, player is offline, or IP is private/loopback - Results are cached per-IP for the server session to avoid repeated lookups
- Fixed 4 separate spots where Discord/in-game messages hardcoded "1x Crimson Key + 1x Prime Key" regardless of whatFixed Mismatched Link Reward Messages
link-reward-commandsinconfig.ymlactually ran: - In-game first-time link message - Offline-then-join delayed reward message -/linkDiscord DM embed ("Link Reward" field) - Link log embed ("Rewards Got" field) - All 4 now read from a single shared source (describeLinkRewards()), parsing the actual configured commands (key/eco style) into human-readable text — so the message always matches what was really dispatched
- Rebuilt the "Manage Player" head lore to show: -Manage Player GUI — New Lore Format
Name-Ping: %ms%ms(live, updates every tick while menu is open) -Location: %world%-Logs→Kick: <count>/Ban: <count>/Report: <pending>/<total>, last reporter- Added newtarget_punishment_historySQLite table (DatabaseManager.java) tracking lifetime kick/ban counts per player (survives unbans/expiries, unlike the old active-bans-only list) - AddedReportManagerhelpers:getReportCountAgainst(),getPendingReportCountAgainst(),getLatestReporterAgainst()- Folia-safe: live refresh task runs on the staff member's own entity scheduler, auto-cancels on menu close/logout
- Chat Code winner reward commands and win message are now fully configurable inChat Code — Configurable Rewards
discord.ymlunderchat-code.reward-commands(key/money) andchat-code.win-message- Supports%player%,%reward%,%key_type%,%amount%placeholders - Falls back to originalcrate givekey/eco givecommands if unset
- AI can now report TPS (1m/5m/15m), MSPT, online player count, server region, and per-player latency (min/avg/max) when asked about lag/performance - All numbers pulled live from Bukkit/Paper APIs — never estimated or guessed - AddedAI — Live Server Backend Awareness
buildPerformanceContext()inDiscordManager.java
- All standalone commands (kick, ban, mute, freeze, vanish, link, gmc, gms, gma, gmsp, report, invsee, chatcode, announce, and more) are now also reachable viaUniversal Command Routing
/sm <command>and/staffmod <command>- Delegates to the exact same executor instances — zero logic duplication, permissions stay identical - Fixed permission gating: delegated commands check their own permission node instead of being blocked bystaffmod.use- Tab-completion also delegates to each command's own completer (player names, durations, reasons, etc. all still work correctly through/sm)
`discord.yml` - AddedConfig Changes
settings.link-log-timezone(default"UTC") - Addedchat-code.reward-commands.key/chat-code.reward-commands.money/chat-code.win-message- Added AI system-context note documenting TPS/MSPT/latency/region lookup usage `config.yml` - Addedsettings.modrinth-slug(default""— must be set for/sm updateto work)
- New table:Database Changes
target_punishment_history(uuid, player_name, kick_count, ban_count) - Auto-created on plugin startup viacreateTables()- Populated automatically on every kick (KickManager) and ban (BanManager)
- All new code usesFolia Compatibility
plugin.getScheduler()(SchedulerAdapter) instead of rawBukkit.getScheduler()where region-thread safety matters - Manage GUI live-refresh task usesrunAtEntity/runAtEntityTimerpinned to the staff member's own thread - DB writes (incrementKickCount,incrementBanCount) userunAsync- Verified safe on both Folia and Paper/Spigot (SchedulerAdapter auto-detects and falls back correctly)1.6.11StaffModeration 1.6.11Jul 12, 2026 v1.6.11
Fixed
- Update checker Discord notice no longer fails silently —sendUpdateAvailableEmbed()previously only tried the JDA bot path. If the bot wasn't connected, no update/announce channel was set, or the channel wasn't found in cache, it silently returned with nothing sent and nothing logged. - Added a webhook fallback for the update notice, using the same approach asreport-webhook/mod-webhook/tier-webhook. New config key:update-webhookindiscord.yml. - Each failed/skipped step (JDA not connected, channel not cached, no channel configured) now logs a warning to console instead of failing silently.Changed
- AI chat replies are now sent as embeds instead of plain text — a clean color box with description only, no title and no footer. - Applies to all AI reply paths:@mention, dedicated AI channel,?quick question, ticket auto-reply, and the action-execution result message. - Added a new configurable color key:embed-colors.ai-replyindiscord.yml(default#5865F2).1.6.8StaffModeration 1.6.8Jul 11, 2026 - Fixed API1.6.7StaffModeration 1.6.7Jul 11, 2026 StaffModeration v1.6.7
Dedicated AI Channel
A channel can now be designated for fully automated AI responses. Configureai.dedicated-channel-idindiscord.yml, and every message sent in that channel will receive an automatic reply — no mention, prefix, or command required. This channel uses the same cooldown, live data lookups, and moderation action protocol as the existing mention-based AI assistant. Leave the value asYOUR_CHANNEL_ID_HEREto keep this feature disabled.New Administrative Commands
The following commands have been added, each with full tab-completion and dedicated.otherspermission nodes for use on other players: -/godmode [player] [on|off]— toggles invulnerability -/fly [player] [on|off]— toggles flight -/flyspeed <1-10> [player]— sets fly speed on a simplified 1–10 scale -/gamemode <survival|creative|adventure|spectator> [player]— also acceptss/c/a/spand0/1/2/3shorthand -/gmc,/gms,/gma,/gmsp— direct aliases for each gamemodeHelp and Setup Documentation
New in-game and Discord commands provide complete setup and usage guidance: -/staffhelp link(in-game) — explains the account linking process step by step -/staffhelp bot-setup(in-game) — a full checklist for configuring the Discord bot, including application creation, required Privileged Gateway Intents, bot token setup, invite permissions, channel/role IDs, and AI configuration -/link-help(Discord) — an embedded step-by-step linking guide -/help(Discord) — a complete overview of every bot feature Both linking guides also clarify an important requirement: the Discord role name must exactly match the corresponding LuckPerms group's displayName (for example, a displayName ofStaffModerationrequires a Discord role also namedStaffModeration). A mismatch here will prevent automatic rank and role synchronization from functioning.Improved
This command now reports a clear operational status alongside credit usage: - Usable — the assistant is fully operational - Usable, running low — remaining credit is below $0.10 - Not usable — the assistant is disabled, missing an API key, or out of credits - Status unconfirmed — quota could not be verified (non-OpenRouter provider, or the check failed)/aicreditsCommandLanguage and Tone Consistency
The AI assistant's system prompt has been revised to respond in clear, professional English. Previously, it was configured to use informal Taglish and internet slang; all in-game and Discord-facing messages have been reviewed for consistent, professional tone.1.6.6StaffModeration 1.6.6Jul 10, 2026 Big Update Out
1.5.12StaffModeration 1.5.12May 26, 2026 Changes
- Added some optimization1.5.11StaffModeration 1.5.11May 26, 2026 Changes
- Optimized the plugin - Removing some caches1.5.10StaffModeration 1.5.10May 20, 2026 Changelogs
- Added optimizer - Fixed Discord and Minecraft server messages - optimized the performance1.5.9StaffModeration 1.5.9May 17, 2026 Changes
- Added /link - Fixed announcement embed - added nyo config updater - added new settings on discord.yml - added /dailyrewards1.5.4StaffModeration 1.5.4May 14, 2026 Fixes
- Fixed Discord Commands - Fixed Discord Channel Listener - Fixed Minecraft Listener1.5.3StaffModeration 1.5.3May 12, 2026 Changes
- Improve Discord Integration design1.5.2StaffModeration 1.5.2May 7, 2026 Changes
- Fixed plugin disabling - Fixed gui1.5.1StaffModeration 1.5.1May 6, 2026 Changes
- Improve gui design - Change the embed message of the tier result - Fixed problem with /report - Reduced the plugin size to 18mb - Changed OblivionMc to Watching status1.5.0StaffModeration 1.5.0Apr 23, 2026 First Release
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta