▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/RedLightGreenLight by Vineurodev
RedLightGreenLight by Vineurodev

RedLightGreenLight by Vineurodev

Red Light / Green Light for Paper. A server-wide mode that needs no setup, plus full arenas with lobbies, start and finish lines, play regions and spectator bounds. Build them by clicking blocks. Leaderboards, rewards, config that checks itself. No deps.

Оцените первым
42
0

Vineurodev RLGL

Red Light, Green Light — two ways to play, and not a single dependency.

Freeze the entire server with one command, or build proper race arenas with a lobby, a start line, a finish line and bounds players cannot leave. Select them by clicking two blocks. Let a wizard tell you what is still missing.

No database. No Citizens. No WorldGuard. No economy plugin. Everything is YAML you can read, and the plugin argues with you when you get it wrong instead of quietly falling back to a default.


⚠️ Requires Java 25

Paper 26.2 ships Java 25 class files, so this is a hard floor, not a preference — a Java 21 server cannot load it. Check your runtime before you download.

ServerPaper 26.2+
Java25+
OptionalPlaceholderAPI 2.11.6+

🟥 Two ways to play

Global mode needs no setup at all. One command enrols every online player, wherever they are standing. Survive to the timer without dying and you win.

/rlgl start global 2m

Arena mode is the full race. Players queue in a lobby, spawn together when the countdown ends, and run for a finish line. A start line stops anyone creeping forward early. A play region teleports anyone who wanders out back inside. Spectator bounds hold the eliminated where you want them.

Two life modes per arena: CONTINUOUS lets the dead respawn and try again, ONE_LIFE puts them straight into spectator for the rest of the round.

🏗️ Build an arena by clicking blocks

No coordinates to type. Four tools, one per thing you need to define:

/rlgl regionstick myarena

Right-click two blocks, left-click to confirm, and the tool removes itself. Wrong corner? Right-click again before confirming — nothing is written until you do. The arena name lives inside the item, so two tools for two arenas never collide, and block interaction is cancelled while you hold one.

Then let the wizard drive:

/rlgl wizard myarena

A live checklist of every requirement, ticked or crossed, each with a clickable command for the next step. It refreshes itself as you finish steps. Leave it open and work down the list.

/rlgl arena enable refuses an unfinished arena, so players can never join a course they are unable to complete.

🎯 The rules that make it a game

Two details that are easy to leave out, and change how it plays:

  • A reaction window. The light turning red does not kill you for momentum you had already committed to. Configurable, default 1.25 s.
  • A green-light idle penalty. Standing still while the light is green costs health. Without it, the optimal strategy is to never move at all, and the round is dull. Set the damage to 0 and the check stops running entirely.

Light durations are randomised between a floor and a ceiling you set. Get the range backwards and it is repaired with a warning rather than aborting the light cycle mid-round.

🧱 Config that checks itself

Every value is validated when the file is read. Anything unusable is repaired to a known default and named in the console, so a typo is visible on the first restart instead of six weeks later:

[VincergyRLGL] 2 problem(s) found in config.yml:
[VincergyRLGL]   - 'arena.default-life-mode' has invalid value 'ONELIFE', using CONTINUOUS instead
[VincergyRLGL]   - 'global.max-light-delay-seconds' value '1' is out of range, clamped to 2

Keys you leave out use their defaults, so trimming the file is safe. Values are read once into a snapshot rather than looked up during play — nothing does a string-keyed map lookup on the movement path.

A mid-match /rlgl reload cannot change the rules of a round already running.

🛡️ It will not eat your arenas

Two things this plugin refuses to do:

  • Overwrite a coordinate it could not read. If an arena's world is not loaded when the server starts — routine with world managers that load worlds after plugins — the stored coordinates are left untouched on disk and load once the world exists. /rlgl status lists which arenas are waiting. Saving never writes nothing over something.
  • Delete on one command. /rlgl arena delete myarena deletes nothing. It shows what would be lost, warns you if players are standing in it, and arms a confirmation valid for 30 seconds. The confirmation is bound to that exact arena name and to you, and is single use — so a stale "yes" can never land on a different arena than the one you were shown.

Arena names are validated before they reach storage, because a name becomes a YAML key: a dot would otherwise nest one arena inside another and quietly corrupt the file.

📊 Statistics and leaderboards

Arena wins, flawless wins, global survivals and deaths, per player.

Statistics are batched and flushed periodically instead of writing the whole file on every kill, and always saved on shutdown. Main-thread file I/O in the middle of a match is not a feature.

With PlaceholderAPI:

%rlgl_arena_wins%          %rlgl_current_arena%
%rlgl_arena_flawless_wins% %rlgl_light%
%rlgl_deaths%              %rlgl_remaining_time%

%rlgl_top_arena_wins_name_1%   %rlgl_top_arena_wins_value_1%

Leaderboards exclude players who never scored, so they are not padded with zeroes, and ties break on name so the order does not shuffle between requests.

🎁 Rewards without an economy dependency

Console commands, run on a win:

arena:
  finish:
    enabled: true
    commands:
      - 'give %player% diamond 3'
      - 'eco give %player% 500'

Commands are the escape hatch that keeps the plugin dependency-freeeco give %player% 500 works with whatever economy you already run. Separate bundles for finishing, for finishing without dying, and for surviving a global round. Every one ships disabled, so a fresh install pays out nothing until you say so.

🧩 Modular

Four modules you switch on or off: setup-tools, stats, rewards, placeholders. A disabled module registers nothing at all — no idle listener left attached. Turn setup-tools off once your arenas are built and its interact handler stops running on every block click. Turn rewards off while you are testing so test runs do not hand out prizes.

/rlgl modules tells you what is actually running.

⚙️ Built for Paper 26.2

Adventure components and boss bars throughout, attribute-based health, registry material lookups, PluginMeta instead of the deprecated description file. Bukkit API only — no NMS, no reflection, nothing version-locked.

No deprecated API anywhere, and the build finishes with zero compiler warnings under -Xlint:all. Nothing is suppressed to get there.

Ships with 119 JUnit tests over the parts that actually branch: the 120 / 90s / 2m30s duration grammar including overflow and malformed input, arena-name validation including the YAML-path and traversal cases, inclusive block containment, one-directional finish-line crossing on diagonals and around segment ends, leaderboard ordering and tie-breaking, light-delay bounds with a seeded random source, and the delete confirmation's token matching, scoping and expiry — tested against an injected clock, not a sleep.

No server-mocking framework, deliberately: logic worth testing lives in classes that never touch Bukkit.

📋 Commands and permissions

16 subcommands under /rlgl, including 15 arena operations, every one with its own permission node, usage line and tab completion. /rlgl help is generated from the command registry and lists only what the sender can actually run, so nobody is shown a command they cannot use.

23 permission nodes, each with a description, grouped under rlgl.admin and rlgl.user. Every subcommand checks its own node, so granting a parent is never required — hand out rlgl.arena.list on its own if that is all you want.

🌍 Text

Every string a player sees is in messages.yml — 124 keys, each with its placeholders documented in a comment beside it. Nothing is hardcoded in Java, so you can reword or translate the whole plugin without touching code.

The plugin ships in English. There is one message file, not a per-language loader: copy it aside, translate the values, and reload. If you need several languages switchable at runtime, this is not that plugin yet.

Good to know

Two honest limitations, so you find them here rather than after buying:

  • One arena runs at a time. Starting a different arena stops the current one. Fine for events; not a lobby server with six simultaneous games.
  • Module changes need a restart. /rlgl reload covers every other setting in all five YAML files, but enabling a module has to register listeners and commands, so it happens at startup.

Full documentation ships with the plugin: a commands reference, a permissions reference, a key-by-key configuration reference, five feature guides, an FAQ and a troubleshooting guide.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.2.x1.21.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:
Опубликован:4 месяца назад
Обновлён:3 дня назад
Главная