Additions
- Added several new upgrades and curses.
Deeper Curses
- Deeper Curses every fifth cycle that will drastically change difficulty.
Rerolling
- Players can choose to reroll the current card choices for the initial cost of 15 and 30 Cyclathrons. The price doubles and persists.
Changes
- Reworded the tutorial to be clearer and shorter while keeping the same info.
- All damage types except for physical attacks no longer deal knockback and impact.
- Time Elapsed is now in real-time instead of game-time. Time will still tick even when the game is paused.
- An additional player now adds 6 seconds instead of 4 to the timer.
Events
- Herobrine no longer blinds
- Acid Rain does not damage for the first 2.5 seconds that the player is exposed to. Does not reset if not exposed.
LAST ONE STANDING
- Last player has all hearts healed.
Deeper Void
Deeper Void starts on Cycle 15.
- The Void changes in appearance. The sky turns black and fog heavily obscures the view.
- Overpowered upgrades are unlocked but also drastically dangerous curses.
Cards
- Cost of upgrades now scale with player count. An additional player increases the scale by +10%.
- 1 Player: 20 Cyclathrons, 10 Players: 40 Cyclathrons, 5 Players: 30 Cyclathrons
- Scaling =
Base Price + (0.5*(Players - 1))
- Changed Card Selection to be escapable
- This is so players can use the chat to make a decision.
- Cards will no longer display their cost/reward if 0 or less during selection.
- Cranked is now a Deeper Curse and
- limited maximum time to 60 seconds (1200t)
- Clocks give 10s to the collector and 7.5s to everyone else.
- Minimum time limit now 25s but extra time given per cycle is now 25t
- Iron Clock buffed to increase Cyclathron Yield by 0.65
- RF Strike Pack now has halved ammo and is slightly slower on delay.
- Slow Passing now multiplies the time by 1.33x but multiplies the current Cyclathron amount by 1.25x on cycle end.
- Buffed Healing Infused Clock to give Instant Healing II
- God's Hand now doubles the block breaking speed but now costs 145 Cyclathrons instead of 130.
- Piranha Season now deals 2.75 increased damage instead of 1.5
- Fixed Cube of Decay not punishing if left alone.
- Cube of Decay can now be seen from the inside out.
- Time till an event is refreshed when a cycle starts.
- Any cards that affect this now apply immediately instead of applying on the next event.
- Slightly saved performance on clock hitbox.
- Merged
bar_visualsandbar_visuals_queueintobarforplate_havoc:uistoragebar_visuals->bar.visualbar_visuals_queue->bar.queue
- Bar can now save colour for applying later on with
bar.colourelement_spawnpoint_status->game.spawnpoint.statusgame_end_visuals->game.end.visualgame_end_visual_queue->game.end.queueleaderboard_ui->leaderboard.visualleaderboard_visual_queue->leaderboard.queueintermission->intermission.statuspre_init->intermission.awaiting_player
- During card selection in rogue, the bar will be coloured blue instead of red. Once the cycle starts, the bar will be coloured red or the value saved in
bar.colourCard Type format introduced. id| Stringmultiple_of| List of numberscolour| SNBTname| SNBTsound_function| Stringattributes| Compoundallow_multiple_selectionis moved intoattributesasselectionselection| Compound.max_selections| Integer. How many cards can be chosen before being forced to continue. Defaults to0but can be set to-1for infinite selections.
replace_cards| Boolean. If chosen cards should be replaced with an available card. True by default.skippable| Compound.status| Boolean. If the "Continue" button should appear. False by default but will appear if choices cannot be made.minimum_selections| Integer. How many cards must be chosen before the ability to skip becomes available. Optional by default.
- Added functionality for rerolls.
- Found inside of
attributesasrerollablererollableis a compound type.- Rerolling will be disabled by default if not found.
rerollablecontains the following data:status| Boolean, if the current type has the ability to reroll. Rerolling is disabled if there is no value.cost| Compound. Required else rerolling is disabled.base| Double, the base cost of Cyclathrons. Fallbacks to 15 if there is no base cost.scale| Boolean, if rerolling should double the reroll cost. False by default.retain_costBoolean, if the cost value should be kept across multiple cycles. False by default.current_priceDouble, internal price (not meant to be set) Tracked forretain_cost
remove_cardsBoolean, if rerolling should remove the current options from the pool. False by default.
- Found inside of
player_scalingBoolean, if costs should be scaled based on player count.- Applies to cards that have a cost.
- Defaults to true.
- Active slots which are non-cards can use a command.
- Required if the slot has a special function. Not required.
voting| Compoundmode| String. What system will be used.votesis the default if nothing is present.mode:votes| Standard voting requirements.mode:timed| Legacy system before voting changes. The card with the most votes get selected. (random if multiple cards have the highest votes.)
behaviour| Compound.behaviour.votes| Compound.requirement_percentage| Integer. Ranges from 0% to 100% Defaults to 50%rounding| String. If voting requirement should be rounded up, down or not be roundedrounding:up| Rounds up the voting requirement.rounding:down| Rounds down the voting requirement.rounding:nothing| Does not round the voting requirement.
functions| Compound. Contains functions that the mode can use.behaviour.timed| Compound.time| Integer. Number of seconds that players will have to vote. Requires the mode to betimedfunctions| Compound. Contains functions that the mode can use.
- function inputs for voting.
voting_starton_voteloop-Can be ran with/function plate_havoc:game/misc/cards/vote/player/attributes/voting/run {input:<input>}slots| Compound.
base| Integer. Amount of card slots. Defaults to 3.modifiable| Boolean. Can the number of card slots be modified? Defaults totrue
- Internal cost text structure of cards has been improved.
- Added
sound_functionfor Card Types- String. Runs specified function dedicated to sounds. Optional
- Sound is called when a card is selected.
- Upgrades, Curses and Deeper Curses now have selection sounds.
after_pause| Integer. Number of ticks it takes after the final selection to continue. Defaults to 50 ticks (2.5s)bodyandactiontext data is now stored intextfor cards.- Internal vote text structure of cards has been improved.
- Scoreboard:
#Card.HideRequiredVotes plate_havoc.num| Hides requirements. - Storage:
plate_havoc:cards voting.snbtis used for the vote counter of cards- Defaults to
["(",{part:count,text:"0"},"/",{part:requirement,text:"-1"},")"] requirementis now a list instead of compound.multi_conditionhas been removed.
- Defaults to
- Improved Biome Handling
plate_havoc:custom biomes| List, holds all biomes.- Example:
[{id:"plate_havoc:void",biome:"plate_havoc:void",priority:0}]
- Example:
- Data:
id| String. Identifier of entry.biome| String. Biome namespace.priority| Integer. Priority value of entry.
- Priority will choose the biome with the highest priority.
- If the highest priority is tied, the most recent entry will be applied.
- Functions:
plate_havoc:game/misc/world/biome/run| Apply the highest priority biome. This should always be ran.plate_havoc:game/misc/world/biome/apply| Apply biome. requires macro input.
- Non card actions now have ids and no longer require a slot.
- Slot
256->plate_havoc:continue - Slot
257->plate_havoc:reroll- Slots can also be retained if chosen:
scoreboard players set #Card.RetainSlot plate_havoc.num 0/1
- Slots can also be retained if chosen:
- Slot
- Card select elements now merged into
activeplate_havoc:cards- These are now included inside of
visualvisual.bodyvisual.action
- These are now included inside of
#Card.Can_Vote plate_havoc.num| If players can vote. Defaults to 1.- Card UI ignores processing an action's votes if there is no vote data found.
- Custom Attributes
- The format of modifiers is the same as Minecraft attributes.
- To get the output of a attribute is the following:
function plate_havoc:game/misc/attributes/custom/input {id:"example"}- The output is in
plate_havoc:custom attribute.output
- To insert a attribute is the following:
data modify storage plate_havoc:custom attributes append value {id:"example",base:1,modifiers:[]}
- Modifiers can be inserted inside of an attribute with a compound entry.
id| Stringvalue| Double.operation| String. Can be one of the following values:add_valueadd_multiplied_baseadd_multiplied_total
- Players are now listed inside of leaderboard entries.
- How players are given credit is based on the storage data:
plate_havoc:data leaderboard_credit_loop|"plate_havoc:game/misc/leaderboard/credit/type/time_elasped/loop"by default.plate_havoc:data leaderboard_credit_start|"plate_havoc:game/misc/leaderboard/credit/type/time_elasped/start"by default.
- Gametypes now have
creditinside ofleaderboardwithloopandstartwhich are string data types that point to a function.
- How players are given credit is based on the storage data:
Fixes
- Fixed issue where the Card UI Selection has extra spacing at the bottom during upgrades by selecting the last card when there are no other available cards to replace.
- Fix all players dying in single tick when glacier player was in the run, not running any functions.
- Fixed spectators being able to influence the card votes
- Clock spawn timer now gets reset when a cycle starts.
- Players will always spawn facing the spawnpoint when a cycle starts.
Removed
Cards
- Faulty Spacebar
- Pumpkin Vision
- Pitch Black
- No Evidence
- Glitched Timer
- Unreliable Notifier
- Hidden Funds
General
- Bedrock Compatibility Mode
- Void Pull buffed, pulling effects are stronger.
- God's Hand now doubles the block breaking speed but now costs 145 Cyclathrons instead of 130.
- Gravity Coil buffed, effect kicks in earlier and is stronger.
- Fixed Double Clock's description.
- Cranked buffed, placed a limit on the maximum time that a player can have is now 60 seconds (1200 in ticks) Collecting clocks now give 10 seconds to the collector and 7.5 seconds to everyone else.
- All damage types no longer deal knockback and impact.
- Fixed Yourself card not appearing.
- Piranha Season now deals 2.75 increased damage instead of 1.5
- Fixed Cube of Decay not punishing if left alone.
- Cube of Decay can now be seen from the inside out.
- Fragility of the Void implemented.
Roguelike Test 2.3
on Sep 14, 2025Plate Havoc | RT 2.3 - First Modrinth Release
Additions
Modifiers
- Modifiers change the game in some way, affecting how players play. Can be customized for modes.
Format; [] List entry
ididentifier,descriptionstores SNBT text,functionfunction to run,metadataextra data.
Bedrock support
- Added support for Bedrock edition.
/trigger plate_havoc.t.bedrock_compatibility set value <n> nhas0disabled,1enabled. Fallbacks to0
Event Notifier Modes
- Change how events are notified.
/trigger plate_havoc.t.event_notifier_modeset value <n> nhas0only displays in chat,1displays both in chat and via bossbar,2only displays via bossbar, any other value will hide the notifier.
Tutorial
- Added tutorial that is prompted upon first time playing.
Cards
- Voters of a selected card is now displayed in chat.
exclusivefield that is a list, containing the cards to remove upon selection. Attached below is the format;exclusive:[{id:enraged},{id:test_card4}]metadata- Added some new Upgrades and Curses.
Events
- Added plenty of Events.
metadata
Console
- Added ways to remove cards and force an random event.
Changes
- More damage types no longer have impact and knockback.
- Some Events been balanced.
- Change Cyclathron economy.
- Players spawn, facing towards 0, 0
Fixed
- Duplication of Event Message if the chosen event ran the restart function.
- Game overflows if no events left in the pool when running an event.
- Attributes kept if player re-joined at specific moments.
- Spectators bypassed item removal on game start by dropping items.
- Inventory kept if re-joined before game start
- SOTF winner not announced
- Players with ping can select a card more than intended and skip curses
- Plate not regenerating from obstructed spawn.
- Black Holes kill spectators.
- Card Runner didn't account for types inside types.
- Running multiple card types in same function causes unintended behaviour.



