Mineuniverse
Log in Register
Plugins

F-Essentials

Punishments, IPlock, maintenance mode, and much more ..
by NightBeamStudio
Download Claim this project
22 downloads
0 likes
Updated Jun 30, 2026
0 hypes
Admin Tools

logo

Fess

Fess

logo

Discord Server Nightbeam Studio YouTube Nightbeam Studio GitHub Nightbeam Studio CurseForge Nightbeam Studio Modrinth

Fssentials is a production-ready moderation and admin utilities plugin for Paper (Folia-aware). This document enumerates every feature implemented in the current codebase so server operators can configure, use, and extend the plugin confidently.


High-level Overview

  • Folia-friendly scheduler utilities for safe async/global/entity dispatch (FoliaScheduler).
  • Full-featured punishment system with persistent YAML storage and temporary punishments.
  • IP-locking (per-account allowed IP entries + login-blocking) with admin commands and bypass permission.
  • Maintenance subsystem with whitelist, MOTD sets, scheduling/timers and join notifications.
  • Broadcast/announcement system using MiniMessage titles with optional configurable sound.
  • Vanish and admin protections for hidden staff members.
  • Inventory viewing and editing (InvSee) with Folia-safe snapshot/restore behavior.
  • Central MessageService for configurable chat messages and prefix handling.

Features (exhaustive)

Punishment System

  • Supported punishment types: KICK, BAN, MUTE, WARN, NOTE, IP_BAN.
  • Supports permanent and temporary punishments. Temporary durations parse via TimeParser and server-configurable time-layout tokens (e.g. #default).
  • Each punishment stores: id, type, target UUID/name/ip, actor, reason, createdAt, expiresAt, active flag and silent flag.
  • Storage: persisted to punishments.yml via YamlPunishmentStorage when storage.persistence-enabled is true.
  • Management: create, deactivate (unpunish), change reason, delete record, list history, view active punishments, page helper utilities (PunishmentManager).
  • Expiration: scheduled expiration runs on Folia async scheduler and notifies staff when punishments expire.

Commands (handled by CommandRouter):

  • kick <player> <reason...> — immediate kick with enforcement message.
  • ban <player> <reason...> — permanent ban (kicks online target).
  • mute <player> <reason...> — mute (blocks chat via PunishmentListener).
  • warn <player> <reason...> — adds a warn record; notifies target if online.
  • note <player> <note...> — internal note record.
  • banip <player|ip> <reason...> — IP ban (kicks matching IPs).
  • tempban/tempmute/tempwarn/tempipban <player|ip> <duration> <reason...> — temporary punishments.
  • unban/unmute/unwarn/unnote/unpunish <id|player> — remove punishments.
  • change-reason <id> <new reason> — edit a punishment's reason.
  • warns <player> / notes <player> — list warns/notes.
  • check <player> — show UUID, IP, ban/mute status, counts.
  • banlist [page] — list active bans (paginated).
  • history <player> [page] — view player's punishment history (paginated).

Notes:

  • Commands support a -s prefix to make an action silent (announce only to staff with the configured silent notify permission).
  • Reason layouts can be referenced with @layoutKey to reuse predefined layouts from config.yml (layouts.).
  • Time-layout tokens (e.g. #default) map to values in time-layouts config.

IP Locking

  • Per-account IP lock storage in ip-locks.yml (IpLockManager).
  • Admin commands to set, remove, change, and check an account's allowed IP.
  • Normalizes IPs using Java networking APIs; invalid inputs are rejected.
  • Login flow hooks: pre-login collects attempted IP and if mismatch is found the player is kicked (unless they have bypass permission).
  • Configurable: ip-lock.enabled, ip-lock.log-blocked-attempts, ip-lock.kick-message.

Maintenance Mode

  • Enable/disable maintenance mode programmatically or via commands.
  • Whitelist management (add/remove/list) for players allowed during maintenance.
  • MOTD sets: multiple message sets supported and editable using /maintenance motd and setmotd.
  • Scheduling/timers: starttimer, endtimer, schedule, aborttimer to schedule enable/disable automatically (MaintenanceTimer).
  • Join notifications: staff with notify permission receive join-attempt notifications during maintenance.
  • Configurable messages and bypass/notify permissions via MaintenanceConfig.

Maintenance commands (via maintenance command):

  • maintenance on|off|reload
  • maintenance add <player> / remove <player> / whitelist
  • maintenance starttimer <minutes> / endtimer <minutes> / schedule <startMinutes> <durationMinutes> / aborttimer
  • maintenance motd / maintenance setmotd <index> <line> <message>

Broadcast / Announcements

  • /broadcast <title> [subtitle] — sends a full-screen title to all players using MiniMessage formatting.
  • Supports splitting title/subtitle by | or heuristics; configurable sound (announcements.sound.* in config).

Vanish & Admin Tools

  • Toggle vanish with /vanish (visibility handled by VanishService).
  • AdminToolsListener protects vanished staff from being interacted with or damaged.
  • Vanish state is reapplied on join for session-owned vanished players.

InvSee (Inventory View/Edit)

  • /invsee <player> opens a 54-slot GUI snapshot of the target player's inventory (uses InvseeInventoryHolder).
  • Snapshot and restore are Folia-safe: inventory cloning happens on the target's entity scheduler and GUI open on the viewer's entity scheduler.
  • Viewer edits are written back on close (invsee allows editing of player storage, armor, off-hand slots as described in the GUI layout).

Message Service & Localization

  • MessageService loads messages.yml from the plugin folder; messages use a prefix and support placeholder replacement via MessageService.get(key, placeholders).
  • Error/usage/enforcement messages are all configurable in messages.yml and config.yml.

Folia Scheduler Compatibility

  • FoliaScheduler centralizes Folia-friendly task dispatch: runAsync, runAsyncTimer, runGlobal, runAtEntity.
  • All file I/O and long-running work is dispatched async; player-specific operations run on the player's entity scheduler.

Storage Files Created/Used

  • punishments.yml — persisted punishment records (via YamlPunishmentStorage).
  • ip-locks.yml — per-account IP lock entries.
  • messages.yml — plugin messages loaded by MessageService (copied from plugin jar to data folder on first run).

Commands (complete list registered at runtime)

  • kick, ban, mute, warn, note, banip
  • tempban, tempmute, tempwarn, tempipban
  • unban, unmute, unwarn, unnote, unpunish
  • change-reason, warns, notes, check, banlist, history
  • fssentials, systemprefs, vanish, offlinetp, playerlist, punishment, invsee
  • maintenance (separately registered with its own executor)
  • broadcast, iplock (separately registered)

Refer to plugin.yml for the exact help/usage lines; fssentials command prints configurable help-lines from config.yml.


Permissions (used in code)

  • fssentials.punish.kick — kick players
  • fssentials.punish.ban / fssentials.punish.tempban — ban players
  • fssentials.punish.mute / fssentials.punish.tempmute — mute players
  • fssentials.punish.warn / fssentials.punish.tempwarn — warn players
  • fssentials.punish.banip / fssentials.punish.tempipban — IP ban
  • fssentials.punish.unpunish — remove punishments
  • fssentials.punish.change-reason — edit punishment reason
  • fssentials.view.banlist / fssentials.view.history / fssentials.view.check / fssentials.view.playerlist — view lists/check info
  • fssentials.invsee — view and edit player inventories
  • fssentials.vanish — toggle vanish
  • fssentials.admin.reload — reload plugin
  • fssentials.admin.systemprefs — view system prefs
  • fssentials.maintenance.admin — full maintenance administration
  • maintenance bypass/notify permissions are configurable (defaults shown in MaintenanceConfig).
  • IP-locking bypass permission: plugin.iplock.bypass (constant in IpLockManager).

Note: the plugin uses permission checks liberally; ensure your server's permission system maps the nodes to the desired roles.

fssentials-1.1.0.jar
MC 1.20.6, 1.21.2, 1.21, 1.21.3, 1.20.2, 1.21.8, 1.20, 1.20.4, 1.20.3-Snapshot, 1.21.4, 1.20.5, 1.21.5, 1.20.1, 1.21.5-Snapshot, 1.20.3, 1.21.7, 1.21.1, 1.20.5-Snapshot, 1.21.6
Release 2026-03-17 Get
fssentials-1.0.0.jar
MC 1.20.6, 1.21.2, 1.21, 1.21.3, 1.20.2, 1.21.8, 1.20, 1.20.4, 1.20.3-Snapshot, 1.21.4, 1.20.5, 1.21.5, 1.20.1, 1.21.5-Snapshot, 1.20.3, 1.21.7, 1.21.1, 1.20.5-Snapshot, 1.21.6
Release 2026-03-15 Get

More from NightBeamStudio

Donut RTP & RTP Zone
909
The Witch Hut
8,943
Core Utilities
824
Fine-Tuned Weaponry
7,805
Odyssey Map
771
Donut Orders
632

You Might Also Like

AdBolt Advertising Network
Make money from your Minecraft server by running ads!
9,992
Mineload
Mineload
9,978
BeastTP
BeastTP v1.0 - Teleportation Made Easy! -[Permissions][1317]
9,966
RegionManager
generate regions with just one command!
9,950
TimeKeeper
Keep the Server-Playtime per Day
9,948
SimpleAdmin
simple way to ban/kick unwanted players from your server
9,945