TeaCore icon

TeaCore -----

Stop reinventing arenas. Start shipping minigames.




TeaCore
The minigame engine for Spigot 1.20.5+

Stop reinventing arenas. Start shipping minigames.

THIS IS AN EARLY VERSION. PLEASE REQUEST SUPPORT IF YOU NEED HELP

TeaCore is a reusable engine for PvP minigames. It doesn't ship a game of its own — it gives you the scaffolding every minigame needs so you can focus on what makes your game unique.

TeaCore also bundles a lobby UI — connection signs, /play, lobby spawn / gamemode management — behind a single lobby.enabled config toggle. Flip it on for the server(s) you want to act as your hub. Install one of the official Tea minigames (listed at the bottom) for actual gameplay.

SUPPORT: https://discord.gg/XyP5e2de5T


⚠ Only works with Tea-based minigames
TeaCore is the engine that Tea game plugins register themselves against. It is not a drop-in engine for arbitrary Minecraft minigame plugins — game plugins must declare depend: [TeaCore] and use its API. If you install TeaCore without a Tea game on top, it does nothing player-facing.

This page is a summary, not the full reference. Setup guides, every config option, dashboard walkthroughs, and developer docs live at titivermeesch.github.io/TeaDocs.​

Requirements

  • Paper (or Spigot) 1.20.5 or newer
  • Java 21
  • Vault — hard dependency. All economy goes through Vault.
  • FastAsyncWorldEdit (or WorldEdit) — required on every server that hosts minigame arenas. Drives schematic capture and paste; without it, arenas spawn into empty void worlds and your maps will never load.

Optional:
  • A Vault-compatible economy plugin — needed only if you want paid kits (EssentialsEco, CMI, TNE, XConomy, etc.). Without one, free kits work; priced kits stay locked.
  • Redis — only for multi-server fleets. Single-server deployments work without it.
  • MySQL — for production persistence. SQLite is the default and needs no setup.

What you get

Arena lifecycle
A full state machine for every arena (waiting → countdown → starting → live → ending → reset), with configurable timings per game. Your game plugin plugs in and subscribes to the transitions it cares about.

In-game map authoring
Build maps in-game with /tea map create, place spawn points, and save. Each live arena gets a fresh copy of the schematic so every match starts clean. WorldEdit / FastAsyncWorldEdit handles region capture under the hood — full guide in TeaDocs.

Warm arena pool with three deployment shapes
Pre-warmed arenas mean players never wait on a schematic paste. Three modes via one config flag:
  • Standalone — one server hosts lobby + games.
  • Central — proxy + lobby + multiple arena servers, balanced via Redis.
  • External — one game per pod for orchestrator-driven scaling.

Kits, abilities, cooldowns
Games declare kits with starter items, abilities, and an optional unlock cost. Cooldowns are visible to the player; abilities cover the standard interaction triggers. Tuning lives in each game's config.

Vault economy + paid kits
Every kit can carry a one-time unlock cost. Players pay through whatever Vault-compatible economy plugin you have installed; TeaCore handles the withdrawal, records a permanent unlock, and shows the kit as [LOCKED] in the picker for players who can't afford it. Free kits stay free; balance management lives in whichever economy plugin you chose ( /balance, /eco, /money, whatever it ships).

Match-scoped chat
Chat is automatically scoped to the player's arena, with separate channels for match, team, spectators, staff, and global. Players switch with /chat <channel>. Concurrent matches on the same server stay isolated.

Built-in matchmaker
Players queue for a game with /play and TeaCore routes them into the next available arena, allocating new ones on demand. Works across multiple game servers when configured.

Embedded web dashboard
A management UI ships inside the plugin — no external hosting, no extra deploy. See every running arena, queue, online player, and registered game on one screen, with live updates. Force-start matches, release arenas, delete maps, reload config — all from the browser.

Theme + i18n
One theme.yml defines your server's color palette in MiniMessage. Translation bundles resolve to each player's client locale. Add new languages by dropping a YAML file; admin customisations are preserved across updates.

Stats + persistence
SQLite by default, MySQL for production — one config line to switch. Schemas migrate automatically on enable. Games register their own stats tables and expose them via /tea stats [player], and the lobby can render every game's stats even without the game plugin installed.

Proxy-ready routing
On a multi-server setup, /play <game> from the lobby finds an available arena on any backend and sends the player there. Works with both BungeeCord and Velocity — no proxy-side plugin to install.


Commands

All provided by TeaCore:
  • /tea help — top-level help
  • /tea arena list|allocate|join|spectate|observe|leave|release|start — manage arenas
  • /tea map create|edit|pos1|pos2|waiting|addspawn|clearspawns|min|max|save|discard|list|info|reload|delete|status — author maps
  • /tea game list — registered games
  • /tea stats [player] — per-player stats across all games
  • /tea reload — reload config + theme + locale bundles
  • /tea version — version info
  • /kit [game] [kitId] — kit selector / picker
  • /chat <channel> — switch chat channel

Games can register their own /tea map <subcommand> extensions for game-specific spawns. One prefix, any number of games.

Balance / give / take / set commands are intentionally not shipped by TeaCore — every Vault-compatible economy plugin already provides them. Use whatever your installed economy plugin gives you ( /balance, /eco, /money, …).


Web dashboard

Flip dashboard.enabled: true in config.yml on one server (usually your lobby), restart, and open the URL TeaCore prints in the log. An admin token is generated on first boot and written back to your config — paste it on the login screen.

From the dashboard you see every arena, queue, and player across your fleet, and you can force-start matches, allocate or release arenas, reload maps, and more. All actions are token-protected; there are no player-facing endpoints.

Full setup notes (multi-server mode, MySQL, custom port) are in TeaDocs.


Who needs TeaCore?

Everyone running a Tea-based minigame. TeaCore is a required dependency of every game in the Tea family — if you want to run Ascend (or any other Tea game) on your server, you install TeaCore first, then the game plugin on top.

Developers building new Tea minigames. TeaCore gives you the scaffolding every PvP minigame needs so you don't have to reinvent arenas, waiting rooms, kit pickers, per-arena chat, map storage, stats persistence, i18n, theming, proxy handoff, matchmaking queues, or a web dashboard. Dev docs walk you through building a game end-to-end at TeaDocs.

Server owners who only want to play: follow the Install section below, then grab one of the Tea minigame plugins (list at the bottom).


Install

  1. Install Vault. Add a Vault-compatible economy plugin too if you plan to charge for kits. On servers that host minigame arenas, also install FastAsyncWorldEdit (or WorldEdit) so maps can be pasted.
  2. Drop teacore-x.y.z-all.jar into plugins/.
  3. Restart. TeaCore extracts config.yml, theme.yml, lang/en_US.yml.
  4. For a single-server setup, the defaults already work. For a proxied / multi-server fleet, follow the per-mode setup in TeaDocs.
  5. Install one of the official Tea minigame plugins — or your own — that depends on TeaCore.
  6. (Optional) Flip dashboard.enabled: true on one server to enable the web UI.

TeaCore provides nothing player-facing on its own — it's infrastructure for Tea-based games.



License

TeaCore is open-source and released under the MIT License. Source at github.com/titivermeesch/teacore.

  • Use it on as many servers as you like.
  • Build your own Tea minigame plugins against the TeaCore API and ship them however you like — free, commercial, private, whatever fits.

If you find it useful, please link to this Spigot resource page from your own plugin's listing rather than re-uploading the jar elsewhere. A credit line ("powered by TeaCore") in your plugin's description is appreciated but not required.

Support: https://discord.gg/XyP5e2de5T. I answer config questions, bug reports, and reasonable feature requests for TeaCore itself. Debugging your unrelated plugin conflicts or writing custom code for your game is out of scope.
Resource Information
Author:
----------
Total Downloads: 7
First Release: May 5, 2026
Last Update: May 5, 2026
Category: ---------------
All-Time Rating:
0 ratings
Find more info at titivermeesch.github.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings