What Recording rules does
Replay categories let you start, stop, and label recordings from plain chat lines, with no integration code. You name a category (for example 'Bedwars'), give it the chat lines your game plugin already broadcasts, and the recorder does the rest: when a line matches a start pattern a categorised recording begins, and when a line matches an end pattern it stops.
Categories are created on the Recording rules page of your dashboard. Access requires the workspace owner role or the 'Manage recording rules' permission, which owners grant per admin from Settings. Matching replays are tagged with the category name, which the Replays page shows and filters on.
Who can trigger a category (the false-trigger fix)
Every category chooses which messages count. New categories default to 'server broadcasts only': only messages your server or its plugins announce to everyone can trigger them, so a player typing 'game starting in 3' in chat can never start a recording. You can switch a category to 'player chat only' or 'broadcasts and player chat' under Advanced options; categories created before this option existed behave as 'broadcasts and player chat', exactly as they always did.
Honest limitation: 'server broadcasts only' covers messages sent through the standard server broadcast system, which is how most minigame plugins announce game start and end. A plugin that messages each player individually, or vanilla /say and /tellraw output, does not pass through that system; for those, use 'broadcasts and player chat' or a proper API integration.
You can also list player names to ignore (their chat never triggers the category) and set a cooldown: after a recording for the category stops, it waits that many seconds before it can start again.
Pattern rules and match modes
Patterns are plain chat lines, never regular expressions, and matching is always case-insensitive with colour codes stripped first. Each category picks one of three modes. 'Pattern with *' (the default): the whole line must match and * stands for any run of characters; 'x*' anchors a prefix and '*x' a suffix. 'Exact message': the line must equal the text exactly, and an asterisk is just an asterisk. 'Contains text': the line just needs to include the text anywhere.
Limits keep matching fast on the chat hot path: up to 20 categories per account, up to 10 start and 10 end patterns per category, each pattern up to 128 characters, category names of 1 to 48 characters, cooldowns up to 3600 seconds, and up to 10 ignored player names. A category can apply to all servers or be limited to specific ones.
Example
A typical BedWars category uses the broadcast lines the game already sends:
start patterns:
The game has started!
end patterns:
*has won the game!How it reaches your servers
Recorders fetch your enabled categories shortly after startup and then every 60 to 75 seconds, so recording rule changes propagate within one refresh interval. A failed refresh keeps the last good configuration and retries on the next cycle.
With session rotation set to match mode, each categorised match is sealed into its own standalone archive when its end pattern fires, giving you one replay per match. The Recording rules page's 'Try it out' panel uses exactly the same matching rules as the recorder, so what you see there is what production will do.
For integrators
The recorder-facing read is GET /v1/plugin/replay-categories, authenticated with ReplayCore request signing like every other plugin endpoint. It returns only the tenant's enabled categories (id, name, start_patterns, end_patterns, server_ids, enabled, message_source, match_mode, cooldown_seconds, require_start_before_end, sender_excludes, timestamps). The v2 keys are additive: readers that do not know them can ignore them safely. If you are building your own tooling on top of categories, this is the contract to target.
Need more than chat triggers? Drive recordings directly from your own plugin with the developer API, or contact support through Discord (discord.gg/n3G52gTKHj) and we will build a custom solution into your project.