⚙️

EventEngine

A general-purpose event framework for Spigot. Manages structured event flow with phases, teams, kits, and PlaceholderAPI integration.

Private PlaceholderAPI Essentials
About

EventEngine is a Spigot plugin that provides a powerful way to manage events on a Minecraft server. The core abstractions are phases (timed segments of an event with names and durations) and teams (player groups with display names, prefixes, colours, spawns, kits, and persistent effects).

It integrates with PlaceholderAPI to expose live event data to other plugins, scoreboards, chat formatters, holograms, and anywhere else PAPI is supported can pull team counts, current phase names, and countdown timers, and with Essentials for kit definitions.

Features at a glance
  • Phases & persistent timer. A queue of named, timed phases with start/stop/skip/reset controls. The current phase index and time remaining are flushed to config every 30 seconds, so a server crash mid-event resumes from roughly where it left off rather than restarting the timeline.
  • Teams with scoreboard plumbing. Each team registers a vanilla scoreboard team, so prefixes, colours, name-tag visibility, friendly-fire, collision and "see friendly invisibles" all flow through the engine the player already understands.
  • Game rules, server-wide and per-team. Lava placement, chat mode, friendly fire, collision, name-tag visibility, death-message visibility, see-friendly-invisibles, and PvP can each be set globally or overridden on a per-team basis. Lava placement supports nuanced modes, "non-team" disallows pours within 10 blocks of a teammate, "non-combat" disallows them within 10 blocks of any player.
  • Chat modes. Switch chat between global, teams (messages only reach your own team plus staff), and disabled. Team prefixes and colours are auto-applied to the chat format.
  • Staff team. A separate, always-present team for organisers. Staff are excluded from event-participant counts, can read all team-only chat, and receive enriched player-death notifications with a click-to-teleport element pointing at the death location.
  • Permanent potion effects. Effects added to a team auto-reapply on join, on respawn, and after a player drinks milk, useful for "always-night-vision" or "always-glowing" team identities that survive normal interruptions.
  • Kits & loadouts. Hand the in-hand item or a named item to every team member at once, or distribute a named Essentials kit to the whole team in a single command.
  • Random spawn pool. Drop a set of "lobby" spawn points anywhere in the world, then teleport every participant to a random one, handy for scattering players at the start of a round. Spawns can be rendered in-world as coloured particle markers while you're laying them out.
  • Auto-balancing team fill. fillTeams distributes any unassigned participants across the listed teams, always feeding the team with the fewest currently-online members.
PlaceholderAPI
Team-related
  • %eventengine_teams_livingMembers_<teamId>% Number of living members in the specified team.
  • %eventengine_teams_displayName_<teamId>% Display name of the specified team.
  • %eventengine_teams_prefix_<teamId>% Prefix of the specified team.
Phase-related
  • %eventengine_phases_timeTillNextPhase% Time until the next phase, formatted.
  • %eventengine_phases_phaseName% Name of the current phase.
  • %eventengine_phases_nextPhaseName% Name of the next phase in queue.
Commands

All commands are also available under the alias /ee. Permission required: eventengine.admin.

General
  • /eventengine help [<page>]
    Lists all available commands, paginated.
  • /eventengine version
    Displays the plugin version.
Game rules, server-wide
  • /eventengine gameRule lavaPlacement [<allowed|non-combat|non-team|disallowed>]
    Sets, or with no argument, displays, the lava placement rule. non-team blocks pours within 10 blocks of a teammate; non-combat within 10 blocks of any player.
  • /eventengine gameRule chatMode [<global|teams|disabled>]
    Switches chat between global, team-only, and disabled.
  • /eventengine gameRule collisionRule [<allowed|allowOtherTeamsOnly|allowOwnTeamOnly|disallowed>]
    Controls player-to-player collision.
  • /eventengine gameRule deathMessageVisibility [<shown|shownToOwnTeam|hiddenForOwnTeam|hidden>]
    Controls who sees vanilla death messages.
  • /eventengine gameRule friendlyFire [<allowed|disallowed>]
    Toggles friendly fire within teams.
  • /eventengine gameRule nametagVisibility [<shown|shownToOwnTeam|hiddenForOwnTeam|hidden>]
    Controls who can see nametags.
  • /eventengine gameRule seeFriendlyInvisibles [<allowed|disallowed>]
    Whether team members can see each other through invisibility.
  • /eventengine gameRule allowPvP
    Master PvP toggle for participating teams.
Each of these can also be set per-team under /eventengine teams team <teamId> set gameRule …, with the same value sets, useful when only a specific team should have, say, friendly fire on.
Random spawn pool
  • /eventengine randomSpawn create
    Saves your current location as a new random-spawn point.
  • /eventengine randomSpawn destroy [<uuid>]
    Removes a spawn, by UUID, or the closest one to you (within 5 blocks) if no UUID is given.
  • /eventengine randomSpawn toggleVisibility
    Toggles in-world coloured particle markers at every spawn point, each spawn gets a unique colour derived from its UUID.
  • /eventengine randomSpawn list [<page>]
    Lists all defined spawns and their UUIDs.
  • /eventengine randomSpawn teleportPlayers
    Teleports every event participant to a randomly chosen spawn from the pool.
Phases
  • /eventengine phases list
    Lists all phases and their indices.
  • /eventengine phases add <name> <duration>
    Adds a phase with the specified name and duration.
  • /eventengine phases remove <index>
    Removes the phase at the specified index.
  • /eventengine phases timer start | stop | skip | reset
    Starts, stops, skips the current phase, or resets to the beginning.
Teams, top level
  • /eventengine teams list
    Lists all teams.
  • /eventengine teams create <teamId> <displayName> <prefix>
    Creates a new team with the given identifier, display name, and prefix.
  • /eventengine teams remove <teamId>
    Removes an existing team.
  • /eventengine teams getTeam <username>
    Returns the team a player is currently on.
  • /eventengine teams setTeam <username> <teamId>
    Sets a player's team.
  • /eventengine teams fillTeams <teamId> [<teamId>...]
    Distributes unassigned players across the specified teams, balancing toward lower-count teams.
  • /eventengine teams tpEveryoneToSpawn [<teamId>]
    Teleports every team member to their team's spawn, or to the optionally specified team's spawn.
Teams, per-team operations
  • /eventengine teams team <teamId> effect give <effectType> [<duration>] [<amplifier>] [<particleType>]
    Applies a temporary potion effect to all online team members.
  • /eventengine teams team <teamId> effect clear [<effectType>]
    Clears all effects, or just the specified one, from all online team members.
  • /eventengine teams team <teamId> giveItem [<itemName>] [<quantity>]
    Gives every team member the item in your hand, or a specified item.
  • /eventengine teams team <teamId> giveKit <kitName>
    Gives every team member a predefined kit.
  • /eventengine teams team <teamId> members list
    Lists all team members.
  • /eventengine teams team <teamId> members add <username>
    Adds a player to the team.
  • /eventengine teams team <teamId> members addRandom <count>
    Adds a number of random unassigned players to the team.
  • /eventengine teams team <teamId> members remove <username>
    Removes a player from the team.
  • /eventengine teams team <teamId> members removeRandom <count>
    Removes a random selection of team members.
  • /eventengine teams team <teamId> permanentEffects list
    Lists permanent effects currently applied to the team.
  • /eventengine teams team <teamId> permanentEffects add <effectType> [<amplifier>] [<particleType>]
    Adds a permanent effect that auto-applies to team members.
  • /eventengine teams team <teamId> permanentEffects remove <effectType>
    Removes a permanent effect from the team.
  • /eventengine teams team <teamId> set name <displayName>
    Sets the team's display name.
  • /eventengine teams team <teamId> set prefix <prefix>
    Sets the team's prefix.
  • /eventengine teams team <teamId> set colour <colour>
    Sets the team's name colour. Drives the chat-format colour and the scoreboard team colour.
  • /eventengine teams team <teamId> set spawn
    Sets the team spawn location to your current position.
  • /eventengine teams team <teamId> set gameRule <rule> [<value>]
    Per-team override for any of the server-wide game rules above (lavaPlacement, chatMode, collisionRule, deathMessageVisibility, friendlyFire, nametagVisibility, seeFriendlyInvisibles, allowPvP). Same value sets as the global rules.
  • /eventengine teams team <teamId> teleport spawn [<teamId>]
    Teleports the team to their spawn, or to the specified team's spawn.
  • /eventengine teams team <teamId> teleport self
    Teleports the team to your current location.
Staff team
  • /eventengine teams staff listMembers
    Lists everyone currently on the staff team.
  • /eventengine teams staff addMember <username>
    Adds a player to the staff team.
  • /eventengine teams staff removeMember <username>
    Removes a player from the staff team.
  • /eventengine teams staff set prefix <prefix>
    Sets the staff team's chat prefix.
  • /eventengine teams staff set name <displayName>
    Sets the staff team's display name.
  • /eventengine teams staff set colour <colour>
    Sets the staff name colour.
Teleporting Players
  • /eventengine teleport self [<teamId>]
    Teleports you to your team spawn, or override with another team's spawn.
  • /eventengine teleport player <username> [<teamId>]
    Teleports the named player to their team spawn, or override with another team's spawn.