
Henny Essentials
A server utility / community administration tool
Server-side Only: This mod is only required on the server side. Clients can connect without having the mod installed.
📌 Join the Discord for support
🔔 As of Version 1.0.1, Henny Essentials no longer requires Architecury API to be installed.
✨ Features
🧠 Conditions (New)
- Define conditions in
config/HennyEssentials/Conditions.json
to run commands based on player actions. - Currently supports
playtime
type conditions — more types to come in future versions. - Useful for automating rewards like auto-ranking players after X minutes of play.
triggerValue
is in seconds (e.g., 300 for 5 minutes).- Commands support
%p
placeholder for the player name. - Example:
{ "type": "playtime", "triggerValue": 300.0, "commands": [ "say hi %p!", "give %p minecraft:diamond" ], "conditionID": "admin-rank" }
- Commands:
/he condition reloadconfig
– Reloads the Conditions config file./he condition manualredeem <player> <conditionID>
– Manually trigger a condition reward./he condition unredeem <player> <conditionID>
– Reset a condition so a player can earn it again.
📄 Pages (New)
- Define custom pages in
config/HennyEssentials/Pages.json
. - Pages display in-game readable content.
- Use
/he page
to access custom pages. - Permissions for page access coming soon.
{ "pages": [ { "linesPerPage": 5, "content": [ "§aA line on a page.", "§bAnother line!", "§aThis is the third line!", "§bLine number 4!", "§aTHE LAST LINE OF THE PAGE!", "§bTHE FIRST LINE OF A NEW PAGE!", "§aHello <3" ], "header": "§bDefault §aPage", "pageID": "default", "padding": "§8~" } ] }
🎨 Chat Colors (New Enhancements)
- If chat formatting and colors are enabled in config, players can use Minecraft-style chat colors using a configurable symbol (default:
&
). - Permissions can restrict access to specific colors using:
he.chat.format.COLORNAME
- Example:
he.chat.format.dark_gray
for dark gray text. - Use
he.format.*
to allow all formats.
- When using LP integration, check permissions using
lp verbose on
. - Without LP, use
/he permission verbose
.
🍀 LuckPerms Integration
- Henny Essentials now supports LP integration in config.
- All HE permission checks will be performed by LP instead.
- If chat formatting enabled in config, HE will read LuckPerms meta for prefix/suffix
- Use the
lp verbose
command to check permission nodes for commands - Recommended LP version: 5.4.150
🔨 Moderation
Provides various utilities to moderate a server:
- Commands to mute / ban players (supports temporary bans and mutes).
- Scheduled server restarts with warnings broadcast to all online players.
- Auto-restart system that can be toggled via config.
- Confirmation and error messages for mute/ban actions.
- Audit log now records mutes, bans, unbans, and banned item usage attempts.
- New commands to manage offline player permissions by UUID.
🔐 Permissions
- Enable the permissions module in
config/HennyEssentials/HennyEssentials.json
. - Basic LuckPerms integration is available. Set both
permissionsEnabled
andluckPermsIntegration
totrue
in config. - Assign permissions to users and groups to control access to commands and dimensions (if enabled).
- Dimension-based permissions:
- Restrict access to dimensions or TPA access based on permission nodes like
dimension.minecraft:the_nether
. - Automatically enforced if enabled in config.
- Restrict access to dimensions or TPA access based on permission nodes like
- Supports home limits defined via permission node
home.limit.NUMBER
. - Players/groups can bypass cooldowns using nodes like
he.home.nocooldown
,he.tpa.nocooldown
, etc.
💬 Chat Formatting
- Supports prefixes and suffixes for users and groups.
- Uses the permission format
weight.number
to determine priority. - Queries LuckPerms meta if LP override is enabled in config.
- Example:
If a user hasweight.100
and their group hasweight.99
, the user's prefix will be displayed first. - Prefixes and suffixes support the TELLRAW JSON format.
🏰 Announcements
- Create announcements in
config/HennyEssentials/Announcements.json
that are broadcast at regular intervals. - Supports plain text or full TELLRAW JSON messages.
- Reloadable with
/he reloadAnnouncements
.
🏷️ Kits
- Create kits that players can redeem.
- Kits can have cooldowns.
- Kits can be organized by category.
/he kit setCategory
assigns a kit to a category.- If permissions are enabled, players require the permission
kit.kitname
to redeem. - Inventory-based kit creation UI via
/he createkit kitname cooldown
. - Kits can be edited (
/he editkit
) or deleted (/he deletekit
). - Kits display in an inventory GUI (configurable).
- Display icons can be assigned with
/he kit setDisplayIcon
.
⌘ Warps
- Warps can be organized by category.
/he warp setCategory
assigns a warp to a category.- Warp list (
/he warps
) adapts to whether categories exist. - Interactive GUI or text-based fallback listing.
- Permission-based warp access via
warp.warpname
(optional, from config). - You can set access to a whole category of warps with permission:
warpcategory.category
- Warp display icons configurable with
/he warp setDisplayIcon
.
🔢 Homes
- Players can set, delete, and list homes.
- Cooldowns and limits defined in config.
- Limits can also be defined via
home.limit.NUMBER
permission nodes. - Permissions can allow skipping cooldowns (
he.home.nocooldown
).
🚪 Back Command
/he back
teleports players to their last death location.- Death location persists across restarts.
- Configurable cooldowns.
🌚 AFK System
- Tracks AFK status of players.
- Can automatically kick AFK players after configurable time.
- Configurable messages and timeouts.
- Permission
he.afk.nokick
exempts players from being kicked.
🛈 Teleport System
- Reliable teleportation for
/warp
,/home
,/back
,/tpa
, etc. - Warmups and cooldowns configurable in TeleportConfigs.
- Permissions available to bypass cooldowns:
he.warp.nocooldown
he.tpa.nocooldown
he.home.nocooldown
he.back.nocooldown
🔀 Item Banning
- Ban specific items via
/he banItem itemID reason
or/he banHeldItem reason
. - Prevents pickup, crafting, and use of banned items.
- Players are notified with ban reason.
- Audit log entries record banned item use.
- Background task can remove banned items from inventories on interval.
⌘ Command Aliases
- Define aliases in config.
- Example:
A config entry of"he warps": "warps"
creates/warps
command that mirrors/he warps
. - Aliases retain all functionality and get their own permission nodes.
🎫 Command Tokens
- Configure tokens in
config/HennyEssentials/CommandTokens.json
. - Tokens run commands when right-clicked.
- Tokens can be locked to a player.
- Reload with
/he token reloadConfig
.
📚 Commands
🔨 Moderation Commands
/he tempmute <player> <duration> <reason>
/he tempban <player> <duration> <reason>
/he mute <player> <reason>
/he ban <player> <reason>
/he banuuid <uuid> <reason>
/he unban <player>
/he unbanUUID <uuid>
/he unmute <player>
/he viewechest <player> ~ view player ender chest contents
/he invsee <player> ~ view player inventory
Duration format:
1M1w6d5m10s
= 1 month, 1 week, 6 days, 5 minutes, 10 seconds
🏷️ Kit Commands
/he createkit kitname cooldown
/he editkit kitname
/he deletekit kitname
/he kits
/he kit <kitname>
🔐 Permission Commands
/he permission
/he permission verbose
/he permission user add/remove "command.permission.node"
/he permission group add/remove "command.permission.node
/he permission user addByUUID playerUUID permission.node
/he permission user removeByUUID playerUUID permission.node"
🎫 CommandToken Commands
/he token give <player> <tokenname> [true/false]
/he token reloadConfig
👤 Player Commands
/he heal
/he vanish
/he feed
/he fly
/he repair
/he tpa <player>
/he tpahere <player>
/he home homename
/he sethome homename
/he delhome homename
/he homes
/he back
/he spawn
/he echest ~ ender chest menu
/he ctable ~ crafting table menu
/he stonecutter ~ stonecutter menu
/he anvil ~ anvil menu
⚙️ Config Reload Commands
/he reloadConfig [false]
/he reloadAnnouncements
🧬 Permissions TL;DR
- Enable in
config/HennyEssentials/HennyEssentials.json
- Enable both
permissionsEnabled
andluckPermsIntegration
for LuckPerms support. - Assign groups using:
group.groupname
- Players inherit permissions from all assigned groups.
- Wildcards like
command.*
work, but can bypass cooldowns.
🛠️ Kit Creation Instructions
- Run:
/he createkit <KITNAME> <COOLDOWN_SECONDS>
- Use the inventory UI to place items in the kit.
- Close the menu to finalize kit creation.
⚙️ More on Permissions
- Enable with
permissionsEnabled: true
in config. - Use
luckPermsIntegration: true
for LuckPerms support. - Use permission nodes like
home.limit.5
to control home limits. - Nodes like
he.afk.nokick
orhe.vanishonlogin
allow for deeper control. - Vanished players no longer show in tab list or broadcast advancements.
💚 Support the dev
- If my mods have helped you at all, please consider throwing a tip my way at my KoFi 💚