Changelog
Last updated Nov 2, 2026
Changelog
Version history for SoapsCommon. Written for server owners.
2.0.1
Performance
- Hot Bukkit paths (move, break, place, damage, chat, interact, and related) skip work when no enabled automation/event is indexed for that When and nothing is running
- Travel / combat extras on move and hit only run while an event instance is live
Event Engine expansion
- Spend costs:
spend_item/spend_money/spend_levels/spend_xp(and refund) for fees and join gates; failed spend can abort the rest of the chain without locking rate limits - Flow Dos: weighted pick, chance branch, repeat, sequence, foreach player
- Combat / world Dos: knockback, pull, launch toward, burn, explode, cancel pickup, durability, spectate, silence, freeze time, region message / border FX, console at location, and related helpers
- Life and world Whens: before death, resurrect, food / level / XP change, item break, trample, raid start/wave/end, crop and structure grow, lightning, TNT, bucket, bell, sign, ignite/burn, inventory click, villager trade, anvil repair
- Goals: elimination, item break count, crop grow count, raid waves, shared meter (with block / item filters)
travel_distancemodes:any,flying,gliding,groundso races only count the movement you want- Meter zones: optional WorldGuard
region,radius, and sharedcenter_idon crop / shared meters - Join prompts:
join_only_ifgates; many players can join until the window expires (one join per player); optionalsingle_use/oncefor one global claim; abort / spend / gate fail does not add the player givecan equip into armor / offhand slots (slot: chest) for race kits after stash;save_locationsupportsshared: truezone anchors- Audience targets
first_participantandholder(tagged hot-potato holder) for kits and end-round punishments clear_effectscan clear one effect type (for example haste) without wiping every potion- Broadcast / message tokens can show
{variable}and{global.variable}values - Pulse 2.0: audience, jitter, max beats, tag, while-goal; pulses clear when the step changes
- Collect goal counts items gained during the step by default (
count_existing: truefor old total-inventory behavior) - Interval / schedule slots only commit after a successful start
- Safer lethal handling (absorption, no elimination after cancelled before-death), audience-locked ambient progress, spend all-or-nothing, wait/then ordering, raid waves scoped to the event world
- Editor: human setting labels, clearer picker titles, optional-fields menu, plainer fail tips
- Showcases audited for honest rules: multi-player joins, Hot Potato one-holder loop, first-to-finish races worded correctly, Bedrock Hour / Builder Blitz reward audiences fixed, Bucket Fill Ban companion, Tool Derby golden picks, and more
- Removed impossible or incomplete showcases: Farm Rush (natural crop growth cannot drive a fair contest), Arena Call (no stock arena teleport), Storm Omen (orphan global meter with no consumer)
- Join prompts:
per_playeruses (1default,0unlimited, or N), optionalclick_cooldownfor casino-style spins; Enchant Casino allows repeat spins while the window is open - Spawn distributes full
amountacross anchors; claim skips retry nearby spots; Undead Siege / Meteor / Builder rings / Bedrock Hour showcases no longer claim-block demos - Only-if
participants_at_leastaborts empty join events; Respawn Aid waits 1s before food and regeneration (respawn clears instant effects) - More automation showcases (morning/night tips, fishing luck, phantom/creeper guards, portal tip, low food, level-up cheer, totem shout, golden meal)
- Removed advanced minigame event showcases from the seed set (Sky Dash, Freeze Frenzy, Knockback King, Hot Potato, Paid Skirmish, Hangman Rush, Tool Derby); keep building those yourself from the catalog if you want them
- Docs and marketplace listing updated for 2.0.1 (24 automations + 13 events)
- Docs restructured to SoapsUniverse wiki style (Config Reference, intent pages, Troubleshooting, Upgrading)
Library GUI / text / services APIs stay compatible with 2.0.x suite plugins. Paper / Spigot 26.1, 26.2, and 26.3.
2.0.0
Event Engine (new)
- Optional When / Only if / Do engine inside SoapsCommon (
engine.enabledinengine.yml) - Multi-step events with Goals, Next rules, central timers, tagged cleanup, budgets
- Built-in When / Only-if / Do / Goal catalog (schedule, kill, spawn, boss bar, and more)
- Commands:
/soapsdashboard, events list/start/stop/test/clone, running, pools, mute, me, reload - GUI: search, delete, step editor with catalog pickers, pools, player event browser
- Resume running events after restart (
running-state.yml); indexed trigger bus - Event pools: GUI create/edit, pick modes weight/chance/list, optional When auto-start; per-player broadcast and boss bar mute
- Suite Event Engine bridges: Floor / Admin / Quest / HungerStamina / Teleporter / Traits / Arena register When / Only-if / Do only when that plugin is present
- First-run seeded examples: 10 automations + 15 events (welcome kit, daily login, undead siege, bedrock hour, community mine, hot potato, meteor shower, sky dash, hangman rush, freeze frenzy, and more)
- Extra primitives: damage/jump/sneak/craft/fish/glide/move/region Whens; once-per-day & player cooldowns; freeze / max-health / attributes / falling blocks / named items; travel / occupy / craft / fish goals
- Fluid event Dos: remove participant, save/return location, flight / invulnerable / glow, inventory stash/restore/clear, firework
- Fluid event Goals: kill players, death count, consume count, jump count, gain levels, all reach
- Particle Do supports spread, speed, offset x/y/z, y_add, force, target, and location (
particlesalias) - Attribute editor GUI: click any When / Only-if / Do / Goal to edit every setting (add, clear, toggle)
- Duration bare numbers are ticks (
3000= 150s); suffixess/m/h/d/ms/tstill work - Attribute editor covers far more When / Only-if / Do / Goal fields; flight/invuln/glow use
on(notenabled) so they do not clash with disable toggles - Do settings editor: comma-edit for list fields (drop items, hangman words, …); type-relevant suggestions only
- Settings editor: blank defaults no longer clutter live configs; Add optional fields for chance/delay/target/failure message; duration hints show ticks
- Chat prompts cover more When / Only-if / Do / Goal types; bare durations remind ticks vs
3s/2m - Next rules editor (kind + destination step; no hardcoded cleanup presets); nested actions and failure actions editable in GUI
- Stop UX clarifies cleanup step vs always-on tear-down; list Shift-right stops with cleanup when running
- Validator flags empty pulse/around nested actions; soft tips for goals without next and missing cleanup step
- Examples: cleanup step naming, reward
targets; create/convert no longer injects preset cleanup stages - Soft depends: Vault (money), PlaceholderAPI (
%soaps_event_*%), MythicMobs spawn/kill, WorldGuard region / claim-safe spawn - Player mute and me work without an admin root command permission
- Editor: When / Only if / Do / Goal pickers, chat defaults, step editor with list order (shift move, starting step)
- List filters Automations / Events use Kind (
type:), notwhen: manual; staff-start lore and Shift-left start stay separate - Engine GUIs use black border + gray filler like SoapsAdmin (
fillBorderthenfillEmpty) - Showcase copy follows plain user-facing wording; world filters optional;
herefills the world or location you stand in - Docs and defaults trimmed of deleted showcase names (no stock coords, no fight-step preset, generic item tags)
- Removed: templates folder/GUI, themed create presets, legacy YAML aliases, pack Do
world_effect, design-plan wiki page - Polish: manual Shift-left start, permission gates, stop/cleanup copy, help/tab-complete, config docs match
engine.yml/pools.yml
Library GUI / text / services APIs are unchanged for suite plugins. Match Common 2.0.x when upgrading the suite together. Runtime support: Paper / Spigot 26.1, 26.2, and 26.3 (api-version: 26.1); compile may use a newer Paper API.
1.5.1
GUI cursor preservation
GuiScreen.openrebuilds in-place when the same menu id and size are already open (no cursor reset)PaginatedGuipage changes refresh in-place by default- Prefer
refresh()/[refresh]for in-GUI updates; full reopen only for first open or a different menu/size
1.5.0
Current release. Breaking polish for the shared library.
Removed
- Entire GUI animation stack (cycle, intro, shift, rain, roulette, click-flash, and related YAML/
animation_*actions) - Unused
ShopScreen/ShopActionshelpers (shop service interfaces remain) - Unused
SkinnableGuiScreen - Unused filler utilities:
SoapsCooldowns,SoapsDurations,SoapsNumbers,SoapsLocations,SoapsDebug
Added / improved
YamlGuiScreen.rebuildStaticItems()and built-in menurefresh:auto-refresh (no animation runtime)PaginatedGui: shared pageable GUI base for suite pluginsGuiPluginSupport: one-shotGuiManager+GuiYamlLoaderbootstrapSoapsSounds: shared sound resolve/play helpersSoapsMessages.load/fromConfigfor messages.yml prefix loadingSoapsCommon.atLeast(major, minor)for consumer version checks
Update SoapsCommon to 1.5.0 before or with suite plugins built against it. Remove any leftover animations: blocks from menu YAML (they are ignored).
1.4.2
Production readiness (2026-06-11)
- Added
SoapsCommandSandbox: shared allowlist/blocklist for YAML[command]and[console]actions with audit logging - Added
SoapsChatInput: shared timeout/cancel chat capture (replaces per-pluginAsyncPlayerChatEventhandlers) - Added
SoapsYamlFiles.atomicSave(): crash-safe YAML writes adopted across the suite - GUI:
requires-onlineclicks blocked for offline targets;open-permissiondenial message;close-actionskips offline players GuiManager.closeAllActive()and automatic GUI shutdown when a consumer plugin disablesActionRegistry:[console]routed through sandbox; bracket-aware[multi]split; handler exceptions log full stack traces- Unit tests: command sandbox, action registry, chat input, YAML atomic save, text parsing
1.4.1
- Fixed menu animation crashes on busy event boards (rain effect)
- Intro animations no longer fight with other effects on the same menu
- Roulette and refresh timing improvements on animated menus
1.4.0
- Added animated menus: cycle, intro, shift, rain, roulette, click-flash, refresh
- Menu items can trigger animations with click actions
- Menus can auto-refresh on a timer
- Simpler GUI override files (
system-gui.ymlcosmetic merge) - Removed old multi-file
gui/skins/override model - Requires Paper 1.21+
1.3.0
Breaking cleanup release.
- Cleaner startup banners across all suite plugins
- Single
gui.enabledsetting (oldsettings.gui-enabledremoved) - Update SoapsCommon and all suite plugins together on this version
1.2.1
- Fixed GUI clicks on dynamically placed items (schematic cards, room browsers, and similar menus)
- No config changes required; update the JAR alongside any plugin that uses SoapsCommon GUIs
1.2.0
Early GUI engine and shared text utilities. Plan a full upgrade to 1.5.x if you are still on older builds.
Still stuck? Ask about this page