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:
json
{
"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 and luckPermsIntegration to true 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.
- 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 has weight.100 and their group has weight.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 and luckPermsIntegration 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 or he.vanishonlogin allow for deeper control.
- Vanished players no longer show in tab list or broadcast advancements.
💚 Support the dev