Concierge

Quick rating

Community listing page, reviews here may not be monitored by the author.

Concierge

By SatanGamingNL

No reviews yet

Your server's concierge. Provides homes, spawn, tpa, kits and more.

Mod Loaders
Minecraft

About

Description

Concierge

Concierge logo banner

A utility mod, built server-first and most things will work for singleplayer too. Provides:

  • Join/leave tracking — logs every join/leave to console, detects first-time joins, tracks last-seen time and cumulative playtime per player (stored as JSON per player).
  • Homes — /sethome, /home, /delhome, /homes, with a configurable per-player home limit driven by a permission node (so LuckPerms groups can grant different limits).
  • Spawn — /setspawn (admin), /spawn.
  • Back — /back, returns you to your previous location (before a teleport or death).
  • TPA — /tpa, /tpahere, /tpaccept, /tpdeny, /tpcancel.
  • Utility — /feed, /heal, /repair.
  • Gamemode shortcuts — /gmc, /gms, /gmsp.
  • Virtual crafting/utility GUIs — /anvil, /craft, /stonecutter, /grindstone, /smithing, /trash — open the vanilla screen without needing the physical block.
  • Admin inspection — /invsee, /endersee to view/edit another player's inventory or ender chest, live if they're online or saved-to-disk if they're offline. /ec lets any player open their own ender chest.
  • Kits — /kit <name> to claim, plus /kit list, /kit create, /kit delete, /kit give to manage them.
  • Help — /concierge help prints every command the invoking player currently has permission to use, checked live against their actual permissions.
  • Permissions — every command is gated by a permission node, and every cooldown/warmup is also a permission node (not just a flat config value), so LuckPerms can give different ranks different cooldowns and warmup lengths. Node names are identical on all three loaders. Without a permissions mod installed, each loader falls back to sensible defaults (all players / OP-only / a config-file value, per node) — see Permissions on Fabric for the one loader that needs an extra mod for full control.
  • Extendable — a small public API (ConciergeAPI) plus loader-agnostic join/leave callbacks (ConciergeEvents) let other mods build on top without touching this mod's code, using the same code on every loader.

This mod has no client-side content (no GUI, no key-binds, no client rendering) — it only needs to be installed on the server.

Commands & permissions

Every command checks its permission node before running, through whatever permission system the active loader provides (see Multi-loader architecture). Node names are identical on all three loaders.

Homes

Command Usage Permission node Default access
/sethome [name] Save your current location as a home. Omit name for your default home. concierge.home.set all players
/home [name] Teleport to a saved home. Omit name for your default home. concierge.home.tp all players
/delhome <name> Delete a saved home. concierge.home.delete all players
/homes List all your saved home names. concierge.home.list all players

Spawn & back

Command Usage Permission node Default access
/spawn Teleport to the server spawn point. Uses the custom point set via /setspawn if there is one, otherwise falls back to the world's own spawn point. concierge.spawn.tp all players
/setspawn Set the server spawn point to your current location. Also updates the actual vanilla world spawn point (the same one /setworldspawn sets). concierge.spawn.set ops only
/back Return to your location before your last teleport or death. concierge.back all players

TPA

Command Usage Permission node Default access
/tpa <player> Request to teleport to another player. concierge.tpa.send all players
/tpahere <player> Request that another player teleport to you. concierge.tpa.send all players
/tpaccept Accept your most recent incoming teleport request. concierge.tpa.accept all players
/tpdeny Deny your most recent incoming teleport request. (none — always allowed) all players
/tpcancel Cancel a teleport request you sent. (none — always allowed) all players

Utility

Command Usage Permission node Default access
/feed Restore your hunger and saturation to full. concierge.feed all players
/heal Restore your health to full, refill hunger, put out fire. concierge.heal all players
/repair Fully repair the item in your main hand. concierge.repair all players
/ec Open your own ender chest. concierge.enderchest all players

Gamemode shortcuts

Equivalent to /gamemode <mode> but shorter to type, each with its own permission node so a rank can be granted creative without also getting spectator, etc.

Command Usage Permission node Default access
/gmc Switch yourself to creative mode. concierge.gamemode.creative ops only
/gms Switch yourself to survival mode. concierge.gamemode.survival ops only
/gmsp Switch yourself to spectator mode. concierge.gamemode.spectator ops only

Virtual crafting/utility GUIs

These open the vanilla screen without the physical block being present.

Command Usage Permission node Default access
/anvil Open a virtual anvil. concierge.anvil all players
/craft Open a virtual crafting table. concierge.craft all players
/stonecutter Open a virtual stonecutter. concierge.stonecutter all players
/grindstone Open a virtual grindstone. concierge.grindstone all players
/smithing Open a virtual smithing table. concierge.smithing all players
/trash Open a trash can — anything left inside when closed is discarded. concierge.trash all players

Admin inspection

Command Usage Permission node Default access
/invsee <player> View/edit a player's hotbar + main inventory (36 slots; armor/offhand not included). Works for offline players too. concierge.invsee ops only
/endersee <player> View/edit a player's ender chest. Works for offline players too. concierge.endersee ops only

Both accept any player name the server has ever seen, not just currently-online ones (matched the same way /ban or /whitelist match names). If the target is online, the view is live and edits apply immediately. If they're offline, Concierge reads their saved playerdata/<uuid>.dat file directly, lets you edit a snapshot of it, and writes your changes back to that file the moment you close the screen — armor and offhand items already in the file are preserved untouched even though they aren't shown. If the name has never joined the server (no saved data exists), the command tells you so instead of opening an empty screen.

Kits

Command Usage Permission node Default access
/kit <name> Claim a kit (subject to that kit's own cooldown). concierge.kit.use all players
/kit list List available kit names. (none — always allowed) all players
/kit create <name> Save your current inventory (main 36 slots) as a new/replacement kit. concierge.kit.admin ops only
/kit delete <name> Delete a kit. concierge.kit.admin ops only
/kit give <player> <name> Give a kit to a player, bypassing their cooldown. concierge.kit.admin ops only
/kit cooldown <name> <seconds> Set how long a player must wait between claims of that specific kit. concierge.kit.admin ops only

Each kit has its own cooldown (default 0 = no cooldown for newly created kits), tracked per player per kit — claiming daily doesn't put starter on cooldown too. Set it with /kit cooldown <name> <seconds> any time after creating the kit. concierge.admin.bypass.cooldown still bypasses any kit's cooldown entirely. Any items that don't fit in the player's inventory when a kit is claimed are dropped on the ground at their feet rather than lost.

Help

Command Usage Permission node Default access
/concierge or /concierge help Lists every Concierge command you currently have permission to use. (none — always allowed; filters the list itself) all players

Cooldowns & warmups (LuckPerms-controllable)

These aren't tied to a specific command — they're integer permission nodes that tune how the commands above behave, so different LuckPerms ranks can have different cooldowns/warmups (e.g. VIPs get instant teleports, default players wait 5 seconds). Each falls back to the matching value in the config file (server.toml on Forge/NeoForge, server.json on Fabric) when no permission override applies.

Node Type Default (no LuckPerms) Effect
concierge.home.warmup integer (seconds) config home.warmupSeconds (3) Delay before /home teleports you.
concierge.spawn.warmup integer (seconds) config spawn.warmupSeconds (3) Delay before /spawn teleports you.
concierge.back.warmup integer (seconds) config back.warmupSeconds (3) Delay before /back teleports you.
concierge.tpa.warmup integer (seconds) config tpa.warmupSeconds (3) Delay before an accepted /tpa//tpahere teleports you.
concierge.tpa.cooldown integer (seconds) config tpa.cooldownSeconds (10) Cooldown between sending /tpa//tpahere requests.
concierge.home.limit integer 1 (players), 999 (ops) Max homes a player may have via /sethome.
concierge.admin.bypass.cooldown boolean ops only Skips the /tpa//tpahere//kit cooldowns entirely.
concierge.admin.bypass.warmup boolean ops only Skips all "don't move!" teleport delays entirely.

Note on kits: kit cooldowns are set per-kit via /kit cooldown <name> <seconds> (see Kits above), not through a permission node — the loaders' permission systems requires nodes to be registered up front at startup, so a dynamic node like concierge.kit.<name>.cooldown isn't practical for kits created later at runtime. concierge.admin.bypass.cooldown still bypasses whatever cooldown a kit has.

All warmups are cancelled if the player moves (configurable via general.cancelWarmupOnMove in the config file).

Example LuckPerms usage:

/lp group default permission set concierge.home.limit 3
/lp group vip permission set concierge.home.limit 10
/lp group vip permission settemp concierge.tpa.warmup 0
/lp group vip permission settemp concierge.tpa.cooldown 0
/lp group default permission set concierge.spawn.set false

Data storage

Data is split across three locations depending on what it's tied to:

World-scoped (coordinates only mean something in the world they were recorded in, so this lives inside the world save and travels with backups/copies of it):

Data Location Format
Homes <world>/concierge/homes/<player-uuid>.json — one file per player JSON
Spawn point <world>/concierge/spawn.json — single shared file JSON

Server-scoped, config directory (settings an admin might hand-edit, alongside the main config file, survives a world reset):

Data Location Format
Main config (cooldowns, warmups, etc) config/concierge/server.toml (Forge/NeoForge)
config/concierge/server.json (Fabric)
TOML / JSON
Kits config/concierge/kits/<kit-name>.nbt — one file per kit, includes that kit's own cooldown NBT (vanilla item-list format)

Server-scoped, dedicated folder (constantly-changing runtime data rather than settings, so it's kept out of config/, in its own top-level folder next to world/, config/, mods/; also survives a world reset):

Data Location Format
Join tracking (first join, last seen, total playtime) concierge/players/<player-uuid>.json JSON

For a server running with the default level name, world-scoped data lands under world/concierge/.... /back locations and pending /tpa requests are not persisted at all — they're kept in memory only and reset on server restart, matching common Essentials-style behaviour.

Config

A server config file is generated on first run — config/concierge/server.toml on Forge/NeoForge (their built-in TOML config systems), or config/concierge/server.json on Fabric (which has no built-in config system, so Concierge manages a JSON file itself) — with cooldowns, warmup durations and the tpa request timeout. These are the fallback values used only when a player has no matching LuckPerms permission override — see Cooldowns & warmups above.

Extending

Other mods can depend on Concierge and reuse its managers instead of reimplementing homes/spawn/tpa/kits.