TinyEssentials
Overview
TinyEssentials is the "essentials" layer of a BTC server, inspired by EssentialsX and built on TypeWriter. It brings 29 player and staff commands (homes, teleport requests, messages, fly, vanish, heal...), a chat formatter, join items, a death penalty ("scavenger"), a tablist, scoreboard and bossbar manager, a custom day length with a calendar, a fast travel menu and an in-game wiki.
Everything is configured in the web panel. Each command is its own entry, so you choose its name and its permission and you only add the commands you want. Messages are shared in one Tiny Essentials configuration entry, and the larger features (homes, chat, tab, calendar) each have their own entry.
Menus (homes, calendar, fast travel, wiki) are rendered with the GUI extension and the layout you draw on a page.
Features
- 29 command entries — fly, god, feed, heal, vanish, speed, gamemode, repair, back, TPA, messages, homes and more, each with a configurable name and permission.
- Homes — per-player homes with permission-based limits, cooldowns, a paginated menu with an editor (rename, icon, delete) and saved storage.
- Teleport requests —
/tpaand/tpaherewith timeout, toggle, and a/backhistory. - Private messages —
/msg,/reply, and/msgtogglewith colour codes neutralised. - Chat format — MiniMessage formats chosen by permission and priority, shared across servers through Redis when MySQL runs in shared mode.
- Tablist, scoreboard, bossbar — header/footer, name formatting, sorting, layout of 80 slots, conditions and animations.
- Join items — items given on join or respawn with click commands and protection flags.
- Scavenger — percent loss of items and experience on death, protected items and placeholder-based penalties.
- Custom time and calendar — day length, calendar with months, weekdays and events, calendar menu, facts, an audience filter and placeholders.
- Fast travel and wiki — region-based travel menu with lock criteria, and an in-game guide made of sections and articles.
Installation
- Install PacketEvents, required by the tablist features.
- Install the MySQL extension, which TinyEssentials declares as a dependency (Redis is used for cross-server chat and tab roster), and the GUI extension for the menus.
- Optionally install Translate to translate network chat for players on other servers.
- Put the TinyEssentials JAR in
plugins/Typewriter/extensions/and restart the server. - Give the command permissions (see the Permissions table) with your permissions plugin. Group-based tab features read permissions named
group.<name>.
Getting started
- In the TypeWriter web panel, open a static page and add one Tiny Essentials entry. Without it, every command answers that TinyEssentials is not configured. Adjust
defaultTeleportCooldown,tpaTimeoutSeconds,backBufferSizeand the messages. - Add the command entries you want, for example /fly, /tpa and /back. Keep or change
commandNameandpermission. - For homes, add an Artifact Home and a Home Manager that references it in
artifact, then add /home and the other home commands. - For a chat format, add a Chat Format with
groupssuch asowner(permissiongroup.owner,priority10,format<gold>[Owner] <player><white>: <message>) and afallbackFormat. - Publish, grant the permissions and test with a player.
Messages in Tiny Essentials and Home Manager use & colour codes and {player}-style tokens. Chat formats, the tablist and the menus use MiniMessage.
How it works
Each feature entry is read when it is needed. Use a single entry of each kind (one Tiny Essentials, one Home Manager, one Chat Format, one Join Item, one Scavenger): the extension takes the first one it finds.
Configuration
Besides entries, TinyEssentials relies on these runtime rules.
- Teleport cooldown —
/backand/tpawaitdefaultTeleportCooldownseconds, or the largestcooldownSecondsamong thecooldownRuleswhose permission the player has. UnlessallowMovementis on, moving cancels the teleport. Teleports to an Ender pearl or a chorus fruit landing are not kept in the/backhistory. - Vanish and toggles — vanish,
/msgtoggleand/tpatogglestates are stored on the player, so they survive restarts and reconnects. - Network features — chat and the tab roster use Redis when the MySQL extension runs with a shared scope; otherwise they stay local.
- Obsolete fields in Tiny Essentials — the
...Commandname fields (msgCommand,flyCommand...) andbasePermissionare not applied: command names and permissions live on the command entries. Those name fields only appear in usage messages. The tab fieldsbossbarToggleCommandandscoreboardToggleCommandare also not registered as commands.
Menus
TinyEssentials contributes button types for pages built with the GUI extension.
| Menu | Entry | Button types |
|---|---|---|
| Homes | Home Manager (menus configured in the entry itself) | None: layout is set in homesMenu and homeEditorMenu. |
| Calendar | Calendar Menu | calendar_button:DAY, WEEKDAY, EVENT, CALENDAR_SUMMARY, MONTH_NAV |
| Fast travel | Fast Travel Menu | travel_button:REGION_TAB, DESTINATION, REGION_SUMMARY |
| Wiki | Wiki Menu | wiki_button:SECTION_TAB, ARTICLE, PAGE_NAV |
The calendar, fast travel and wiki menus use the same approach: a shared open_gui chassis (baseMenuId), a pool of layouts, and views. Indexed buttons such as DAY or DESTINATION are filled in order from the data (the grid is a display ceiling, extra slots stay empty).
The homes menu is paginated with previous, next and close buttons, a filler item, an item for empty home slots, and an editor opened by clicking a home: teleport, rename in chat (type cancel to abort), set the icon from the held item, reset the icon and delete.
Commands
All commands are brigadier commands registered by entries, so clients get completion. No command has an alias. Without the right permission the command is hidden. Player-targeting commands accept a player selector; acting on someone else needs the matching .others permission, checked when the command runs.
Self and staff commands
| Command | Description | Permission |
|---|---|---|
/fly [player] | Toggles flight. | tinyessentials.fly (others: tinyessentials.fly.others) |
/god [player] | Toggles invulnerability. | tinyessentials.god (others: .god.others) |
/feed [player] | Restores hunger and saturation. | tinyessentials.feed (others: .feed.others) |
/heal [player] | Restores health, hunger, air and clears fire and freezing. | tinyessentials.heal (others: .heal.others) |
/vanish [player] | Toggles invisibility to other players; kept after reconnect. | tinyessentials.vanish (others: .vanish.others) |
/gamemode <survival|creative|adventure|spectator> [player] | Changes the game mode. | tinyessentials.gamemode (others: .gamemode.others) |
/speed <value> [walk|fly|sneak] [player] and /speed reset [walk|fly|sneak] | Sets speed from -20 to 20. Only works in creative mode. Without a type, flying players get fly speed, others walk speed. Changing another player's speed needs .speed.others. | tinyessentials.speed (others: .speed.others) |
/suicide | Kills you. | tinyessentials.suicide |
/repair | Repairs the held tool, weapon or armor (not blocks, not unbreakable items). | tinyessentials.repair |
/invsee <player> | Opens another player's inventory. Editing it needs tinyessentials.inventory.edit. | tinyessentials.inventory (target: .inventory.others) |
/pocketmenu <type> [--consume] | Opens a vanilla menu: workbench, enchanting, anvil, smithing, grindstone, cartography, stonecutter, loom or brewing. --consume makes the enchanting table consume levels. | tinyessentials.pocketmenu |
Teleport commands
| Command | Description | Permission |
|---|---|---|
/back | Returns to your previous location, with cooldown. | tinyessentials.back |
/tpa <player> | Asks to teleport to a player. | tinyessentials.tpa |
/tpahere <player> | Asks a player to teleport to you. | tinyessentials.tpahere |
/tpaccept [player] | Accepts the latest request, or the one from the named player. | tinyessentials.tpaccept |
/tpadeny [player] | Denies the latest request, or the one from the named player. | tinyessentials.tpadeny |
/tpatoggle | Stops or resumes receiving requests. | tinyessentials.tpatoggle |
/tppos <x> <y> [z] | Teleports to coordinates. | tinyessentials.tppos |
/tpall | Teleports every online player to you. | tinyessentials.tpall |
/getpos | Shows your position, rotation and world. | tinyessentials.getpos |
Messages
| Command | Description | Permission |
|---|---|---|
/msg <player> <message> | Sends a private message. | tinyessentials.msg |
/reply <message> | Replies to the last conversation. | tinyessentials.reply |
/msgtoggle | Stops or resumes receiving private messages. | tinyessentials.msgtoggle |
Homes — they also require the Home Manager's basePermission if you set one.
| Command | Description | Permission |
|---|---|---|
/home [name] | Teleports to a home; without a name, the home called home. | tinyessentials.homes.teleport |
/home list (or ls) | Opens the homes menu. | tinyessentials.homes.list |
/home set|add|create|save [name] | Saves a home at your position. | tinyessentials.homes.set |
/home delete|del|remove|rm [name] | Deletes a home. | tinyessentials.homes.delete |
/sethome [name] | Saves a home. | tinyessentials.homes.set |
/delhome [name] | Deletes a home. | tinyessentials.homes.delete |
/homes | Opens the homes menu. | tinyessentials.homes.list |
Calendar
| Command | Description | Permission |
|---|---|---|
/calendar | Opens the calendar on the current month. /calendar month <prev|next|current> <player> is used by menu buttons. | tinyessentials.calendar (leave empty for none) |
/timefact | Prints the lines of the linked Time Fact entry. | tinyessentials.timefact (leave empty for none) |
The permission field of each command entry is the permission in the tables above by default. Change the command name with commandName.
Permissions
| Permission | Grants |
|---|---|
tinyessentials.<command> | Use of the command, as listed above (defaults of the permission field). |
tinyessentials.fly.others, god.others, feed.others, heal.others, vanish.others, gamemode.others, speed.others | Apply the command to another player. |
tinyessentials.inventory.others | Open another player's inventory with /invsee. |
tinyessentials.inventory.edit | Move items in the inspected inventory. |
tinyessentials.homes.bypass (bypassPermission) | Ignore home limits and teleport cooldowns. |
tab.staff | Counted by <tab_staffonline>. |
group.<name> | Selects the tab group and sorting by group. |
Fields such as generalPermission, permission, cooldownRules, permissionLimits | Permissions you choose in the entries. |
Placeholders
TinyEssentials registers two MiniPlaceholders expansions, usable as MiniMessage tags.
| Placeholder | Returns |
|---|---|
<tab_online> | Players online. |
<tab_staffonline> | Online players with tab.staff. |
<tab_worldonline> | Players in the viewer's world. |
<tab_memory_used> / <tab_memory_max> | Used and maximum memory in MB. |
<tab_tps> | Server TPS (1 minute) with two decimals. |
<tab_date> / <tab_time> | Real machine date (dd.MM.yyyy) and time (HH:mm:ss). |
<tab_animation:name> | Current frame of a Tab Configuration animation. |
<calendar_date> | Date of the calendar, for example 3 Spring, an 12. |
<calendar_time> / <calendar_time_12h> | In-game time on 24 or 12-hour clock. |
<calendar_day>, <calendar_month>, <calendar_month_index>, <calendar_year>, <calendar_weekday> | Parts of the calendar date. |
<calendar_day_of_year>, <calendar_total_day> | Day number in the year and since the start. |
<calendar_event> | Title of today's first event, empty if none. |
<calendar_next_event>, <calendar_next_event_days> | Next event title and days until it. |
Every calendar placeholder accepts the id of a Minecraft Time entry as argument, for example <calendar_date:my_calendar_id>; without it the first calendar is used. They return an empty text when no Minecraft Time entry exists.
Text fields of the Home Manager use {home}, {limit}, {cooldown}, {count}, {world} and similar tokens given in each field help; TPA and message texts use {player}, {time}, {sender}, {receiver} and {message}.
Entries
50 entries, generated from the extension source.
Actions3
- BTC Calendar MenuBTC Calendar Menu
- BTC Fast Travel MenuBTC Fast Travel Menu
- BTC Wiki MenuBTC Wiki Menu
Facts3
- Calendar Event FactCheck calendar events
- Is Day FactCheck calendar day/night phases
- Time Period FactCheck if the time is inside a range
Audiences1
- Time Window AudienceFilter players using the TinyEssentials calendar
Commands29
- Tinyessentials Back CommandCommande /back
- Tinyessentials Calendar CommandCommande d'ouverture du calendrier
- Tinyessentials Delhome CommandCommande /delhome
- Tinyessentials Feed CommandCommande /feed
- Tinyessentials Fly CommandCommande /fly
- Tinyessentials Gamemode CommandCommande /gamemode
- Tinyessentials Getpos CommandCommande /getpos
- Tinyessentials God CommandCommande /god
- Tinyessentials Heal CommandCommande /heal
- Tinyessentials Home CommandCommande /home
- Tinyessentials Homes CommandCommande /homes
- Tinyessentials Invsee CommandCommande /invsee
- Tinyessentials Msg CommandCommande /msg
- Tinyessentials Msgtoggle CommandCommande /msgtoggle
- Tinyessentials Pocketmenu CommandCommande /pocketmenu
- Tinyessentials Repair CommandCommande /repair
- Tinyessentials Reply CommandCommande /reply
- Tinyessentials Sethome CommandCommande /sethome
- Tinyessentials Speed CommandCommande /speed
- Tinyessentials Suicide CommandCommande /suicide
- Tinyessentials Timefact CommandCommande d'affichage de la date
- Tinyessentials Tpa CommandCommande /tpa
- Tinyessentials Tpaccept CommandCommande /tpaccept
- Tinyessentials Tpadeny CommandCommande /tpadeny
- Tinyessentials Tpahere CommandCommande /tpahere
- Tinyessentials Tpall CommandCommande /tpall
- Tinyessentials Tpatoggle CommandCommande /tpatoggle
- Tinyessentials Tppos CommandCommande /tppos
- Tinyessentials Vanish CommandCommande /vanish
Placeholders1
- Minecraft TimeCustomise the length of days and manage a calendar
Artifacts2
- Artifact CalendarPersistent anchor for the custom calendar
- Artifact HomePersistent storage for player homes
Manifests11
- Chat FormatFormat chat messages based on player groups
- FactProvide time related facts based on the minecraft_time entry
- Fast Travel DestinationDestination de voyage rapide
- Fast Travel RegionRegion de voyage rapide
- Home ManagerManage player homes with permissions and cooldowns
- Join ItemGive players custom items when they join
- ScavengerSave inventory and experience with penalties
- Tab ConfigurationConfigure TAB features for tablist, scoreboard, bossbar and more
- Tiny EssentialsEssential commands with configurable messages and cooldowns
- Wiki ArticleArticle du guide en jeu
- Wiki SectionSection du guide en jeu
Troubleshooting
TinyEssentials n'est pas configure : ajoutez une entree 'tiny_essentials' a une page. A command ran without a published Tiny Essentials entry. Add one to a static page and publish.
A command does not exist or is hidden. Each command is an entry: add the matching tinyessentials_..._command entry, publish, and give the player its permission. A command name changed in commandName replaces the old one.
Les maisons ne sont pas configurees. There is no Home Manager entry. For storage errors (stockage des homes est indisponible), check that the Home Manager's artifact points to an Artifact Home.
Players cannot chat at all. generalPermission of the Chat Format entry is set and the player lacks it: the chat message is cancelled. Leave it empty or grant the permission.
/back says there is no previous location. Only teleports done by commands and plugins are recorded. Ender pearls and chorus fruits are ignored, and the history keeps the last backBufferSize places.
/speed says it is only available in creative mode. The command is deliberately restricted to creative mode so it does not clash with RPG stats.
The tablist features do nothing. PacketEvents must be installed. tablistFormattingEnabled, layoutEnabled, bossbarEnabled and scoreboardEnabled are separate switches, and the last three are off by default.
The calendar placeholders are empty. No Minecraft Time entry is published, or the argument does not match an existing entry id. A calendar menu or command also needs its minecraft_time link.