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_distance modes: any, flying, gliding, ground so races only count the movement you want
  • Meter zones: optional WorldGuard region, radius, and shared center_id on crop / shared meters
  • Join prompts: join_only_if gates; many players can join until the window expires (one join per player); optional single_use / once for one global claim; abort / spend / gate fail does not add the player
  • give can equip into armor / offhand slots (slot: chest) for race kits after stash; save_location supports shared: true zone anchors
  • Audience targets first_participant and holder (tagged hot-potato holder) for kits and end-round punishments
  • clear_effects can 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: true for 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_player uses (1 default, 0 unlimited, or N), optional click_cooldown for casino-style spins; Enchant Casino allows repeat spins while the window is open
  • Spawn distributes full amount across anchors; claim skips retry nearby spots; Undead Siege / Meteor / Builder rings / Bedrock Hour showcases no longer claim-block demos
  • Only-if participants_at_least aborts 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.enabled in engine.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: /soaps dashboard, 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 (particles alias)
  • Attribute editor GUI: click any When / Only-if / Do / Goal to edit every setting (add, clear, toggle)
  • Duration bare numbers are ticks (3000 = 150s); suffixes s / m / h / d / ms / t still work
  • Attribute editor covers far more When / Only-if / Do / Goal fields; flight/invuln/glow use on (not enabled) 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:), not when: manual; staff-start lore and Shift-left start stay separate
  • Engine GUIs use black border + gray filler like SoapsAdmin (fillBorder then fillEmpty)
  • Showcase copy follows plain user-facing wording; world filters optional; here fills 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.open rebuilds in-place when the same menu id and size are already open (no cursor reset)
  • PaginatedGui page 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 / ShopActions helpers (shop service interfaces remain)
  • Unused SkinnableGuiScreen
  • Unused filler utilities: SoapsCooldowns, SoapsDurations, SoapsNumbers, SoapsLocations, SoapsDebug

Added / improved

  • YamlGuiScreen.rebuildStaticItems() and built-in menu refresh: auto-refresh (no animation runtime)
  • PaginatedGui: shared pageable GUI base for suite plugins
  • GuiPluginSupport: one-shot GuiManager + GuiYamlLoader bootstrap
  • SoapsSounds: shared sound resolve/play helpers
  • SoapsMessages.load / fromConfig for messages.yml prefix loading
  • SoapsCommon.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-plugin AsyncPlayerChatEvent handlers)
  • Added SoapsYamlFiles.atomicSave(): crash-safe YAML writes adopted across the suite
  • GUI: requires-online clicks blocked for offline targets; open-permission denial message; close-action skips offline players
  • GuiManager.closeAllActive() and automatic GUI shutdown when a consumer plugin disables
  • ActionRegistry: [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.yml cosmetic 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.enabled setting (old settings.gui-enabled removed)
  • 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