Skip to content

Releases: owengregson/Mental

Mental v2.12.0-beta

Mental v2.12.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Jul 22:16
Immutable release. Only release title and notes can be modified.
6b4a873

Mental v2.12.0-beta

⌖ Paper 1.9.4 → 26.x ⌖ Folia ⌖ Java 8+ ⌖ zero dependencies

Changes

  • Damage indicators now appear for every hit, not just player-versus-player melee.
    Hitting a mob shows its damage, a mob hitting someone shows theirs, and fall
    damage, lava, fire and drowning all show a number too. Previously only one case
    in the whole game drew an indicator: a player meleeing another player.
  • Ranged hits show damage numbers again. A bow, trident or snowball hit reports the
    arrow as the attacker rather than the player who fired it, so every ranged hit
    failed the old player-attacker check and drew nothing at all — even in PvP. Shots
    are now credited to the shooter, who sees the number wherever they are standing.
  • You no longer see damage numbers for damage happening to YOU. Everyone near a
    victim sees the number except the victim themself, so your own screen stays clear
    in a fight while you still see everything you deal.
  • Mobs now show healing numbers too, on the same rule as damage. Heals are detected
    by watching health rather than by listening for a heal event, so heals applied
    directly by other plugins are caught the same way they already are for players.
  • Hit sounds stay combat-only, deliberately. Fall damage, lava, drowning and
    freezing keep vanilla's own hurt sounds, so you can still hear WHY you are taking
    damage rather than getting one combat chord for everything.
  • The low-health warning sound now plays on every damage cause, including
    environmental. It is a warning about your health rather than about the blow, so
    burning or drowning into the danger zone sounds the same alarm a hit does.
Full changelog — click to expand
  • test(feedback): gate the environmental case on a stageable damage event (723d4fc)
  • chore(release): 2.12.0-beta — feedback on every hit (04fbd29)
  • test(feedback): pin the audience rule and the two new hit classes (468dfa4)
  • feat(feedback): indicators on every hit, sounds still combat-only (4b98fdf)

MENTAL by @owengregson

Mental v2.11.0-beta

Mental v2.11.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Jul 06:58
Immutable release. Only release title and notes can be modified.
2c4f769

Mental v2.11.0-beta

⌖ Paper 1.9.4 → 26.x ⌖ Folia ⌖ Java 8+ ⌖ zero dependencies

Changes

  • Fixed: standing in lava, fire or a sweet-berry bush no longer spam-damages you.
    This affected servers running the Combat Test 8c i-frame rule, which briefly
    shrinks the invulnerability window so fast weapons re-hit sooner. That window is
    a single field every damage source shares, and the hand-back meant to restore it
    waited on the hurt counter — which a hazard re-arms every few ticks, so it never
    fired and the shortened window stayed pinned for as long as you stood in the
    hazard. The hand-back now keys off the hit that shrank the window, so a hazard
    cannot defer it and the window always returns after its own duration.
  • The same fix covers the hit-timing override API added in 2.10.0-beta. It shares
    the window mechanism and had inherited the same problem, so a plugin holding a
    live override on a player standing in a hazard could pin that player's window
    too. Both paths now restore through one guard.
  • Combat Test 8c i-frames now match 8c across the whole window. 8c makes the entire
    invulnerability window difference-damage: a stronger re-hit deals only the
    difference with no knockback, a same-or-weaker one deals nothing, and a fresh hit
    lands only once the window fully elapses. Mental previously reproduced only the
    first half, so a mid-window re-hit landed fresh — twice as permissive as 8c.
  • Shields block projectiles again on the 8c rule. Arrows and other projectiles are
    absorbed in full inside 8c's 148° block cone (piercing arrows still get through)
    instead of falling back to vanilla's wider cone, and a crouch-blocking player is
    no longer left with no projectile protection at all.
  • Getting hit no longer drops what you were holding up. The 8c hit-interrupt now
    cancels only eating and drinking, as 8c does — a raised shield, a drawn bow, a
    spyglass or a charging trident all survive the hit that most needed them.
  • Bow accuracy under sustained fire follows 8c's real curve. Fatigue ramps smoothly
    between 3 and 10 seconds of held draw rather than snapping between two values,
    and a fresh full draw carries 8c's small baseline spread.
  • Mushroom stew, rabbit stew and beetroot soup eat in one second on the 8c rule,
    matching 8c. Suspicious stew deliberately keeps its normal speed.
  • Two 8c settings that did nothing now work: the charged-attack miss recovery and
    the charged reach bonus were both editable in the GUI but never read. Defaults
    are unchanged, so only servers that retuned them will notice.
  • Known gap, unchanged this release: Mental's emulated crouch-block does not yet
    reproduce 8c's small self-knock toward the attacker. A natively raised shield
    already does. Composing that knock through the delivery core is genuine
    combat-core work, deliberately left to its own round rather than shipped
    half-applied.
Full changelog — click to expand
  • chore(release): 2.11.0-beta — ct8c decompile-verified fixes; version, highlights (389f17a)
  • test(ct8c): scope the full-window diff-damage opener to a stageable tier (b7552d7)
  • feat(ct8c): make the whole i-frame window difference-damage (8c full window) (2212a62)
  • fix(ct8c): stop the i-frame shrink leaking into environmental damage (ece3a23)
  • docs(ct8c): reflect the decompile-verified fixes in the user doc (f72463d)
  • fix(ct8c): honor the missRecoveryTicks and chargedReachBonus knobs (993f391)
  • feat(ct8c): give the bowl stews the 20-tick eat duration (891f3b2)
  • fix(ct8c): interrupt only eating/drinking on a hit, not any raised hand (c0b047d)
  • feat(ct8c): block projectiles through the 148° shield cone, in full (b289355)
  • fix(ct8c): replace the step-function bow fatigue with 8c's exact ramp (5a3a048)

MENTAL by @owengregson

Mental v2.10.0-beta

Mental v2.10.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Jul 16:08
Immutable release. Only release title and notes can be modified.
146fb51

Mental v2.10.0-beta

⌖ Paper 1.9.4 → 26.x ⌖ Folia ⌖ Java 8+ ⌖ zero dependencies

Changes

  • New developer API — temporary hit-timing overrides. A companion plugin can now
    ask Mental to briefly speed up how fast ONE attacker re-hits a victim, priced
    inside Mental's own timing instead of fought around it. This is what makes
    abilities like StarEnchants' Berry Overdrive ("your strikes land twice as fast
    for a few seconds") behave correctly on a Mental server: the speed-up is scoped
    to that one attacker — a third party still waits the normal window — it composes
    with the CT8c i-frame profile, and it never writes the vanilla invulnerability
    counter, so the old i-frame-write hacks, spawn-invulnerability traps and
    third-party fairness guards are all gone.
  • The service is published on Bukkit's ServicesManager (the registration is the
    capability a consumer probes) and ships with a live acceptance suite that runs
    on every server in the matrix: registration, per-attacker isolation, the ct8c
    min(attackDelay,10) × factor window composition, refresh-not-stack, and
    victim-death cleanup — all hard-pinned.
Full changelog — click to expand
  • chore(release): 2.10.0-beta — timing overrides; version, highlights, README, spec doc (8f51dba)
  • test(timing): live acceptance suite for HitTimingOverrides (a372d04)
  • feat(delivery): price the hurt window per (victim, attacker) at the per-hit write (0e0994e)
  • feat(api): temporary hit-timing overrides (HitTimingOverrides, gen-3) (046de44)

MENTAL by @owengregson

Mental v2.9.1-beta

Mental v2.9.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Jul 01:05
Immutable release. Only release title and notes can be modified.
e638001

Mental v2.9.1-beta

⌖ Paper 1.9.4 → 26.x ⌖ Folia ⌖ Java 8+ ⌖ zero dependencies

Changes

  • The Cleaving enchant is now REAL on every modern server: the 2.9.0 registry
    probe could never actually resolve, so mental:cleaving silently degraded to
    level 0 everywhere. The injection chain is rebuilt and pinned against the
    live 1.21.4 AND 26.x server jars — including the year-scheme Identifier
    rename, so 26.x gets the real enchant too — and the test gate now hard-fails
    if the install ever stops landing.
  • CT8c critical hits are un-inverted: the shipped guard skipped the ×1.5 on
    exactly the canonical non-sprint jump crit (only sprint crits applied). The
    flat ×1.5 now lands on every CT8c crit posture, live-pinned in the gate.
  • CT8c i-frames no longer leak: the shaped hurt window (7–10 ticks melee, 0 for
    projectiles) is a persistent entity field, and one hit used to leave it
    shrunken forever — fire, cactus and drowning then re-applied every tick. The
    vanilla window is now restored the moment the shaped window drains, and
    disabling the feature restores every touched victim immediately.
  • The /mental home is decluttered to five tiles: Combat Engine, Era Rules,
    Sustain & Potions, Effects & Loot, and Server & Diagnostics — three over two,
    flanked by just Combat Presets and Close. Each opens its category's sections,
    so every family screen is exactly two clicks away and nothing is lost.
Full changelog — click to expand
  • chore(release): 2.9.1-beta — highlights, version, README home blurb (ef2bfb4)
  • fix(damage): un-invert the ct8c crit guard; restore the i-frame window (d202607)
  • docs(config): align the combo-hold opt-in note with the signature bundle (4d481bf)
  • feat(gui): five-tile home — categories over families, two flanking buttons (c23336d)
  • fix(platform): land the Cleaving registry write — the probe could never resolve (761dff6)

MENTAL by @owengregson

Mental v2.9.0-beta

Mental v2.9.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 23:36
Immutable release. Only release title and notes can be modified.
537dab4

Mental v2.9.0-beta

⌖ Paper 1.9.4 → 26.x ⌖ Folia ⌖ Java 8+ ⌖ zero dependencies

Changes

  • Combat Test 8c is here: a faithful port of Mojang's experimental snapshot as
    thirteen opt-in modules — reworked shields (148° arc), charged attacks,
    per-weapon attack speeds, the split-vertical knockback, era i-frames, Cleaving
    and more — plus a matching ct8c knockback profile. All OFF by default and
    era-exact, decompiled from the real snapshot rather than the wiki.
  • Rules bundles apply a whole ruleset in one click: ct8c, signature and
    vanilla ship in bundles/ (drop your own in too), from the new Combat
    Presets screen or the API's RulesBundleAppliedEvent.
  • The /mental menu is redesigned end-to-end: every family gets its own colour
    identity on woven glass chrome, and every screen speaks one click grammar —
    left-click toggles, right-click configures, Q resets a knob to your file.
  • One preset gallery now holds both knockback profiles AND combat-effects
    tunes — legacy/modern is a tab, every tile previews its exact values, and
    one click applies server-wide.
  • Nearly every scalar knob is now editable in-game: hit registration, latency
    compensation, the combo solver, fast pots, rods and projectiles, loadout
    rules, indicators, death effects and drop protection — applied atomically,
    no restart.
  • On 1.9.4–1.12.2 the menus finally render in full colour: stained-pane
    backgrounds and ten previously-grey icons now resolve to their real
    pre-flattening glyphs.
  • Under the hood: every CI workflow is now SHA-pinned with a runtime-only
    dependency graph and a published security policy, and the build tooling is
    refreshed (Shadow 9.6.0, JUnit 6.1.2).
Full changelog — click to expand
  • ci(release): drive the release notes from the RELEASE-TEMPLATE tag template (ec29bde)
  • chore(repo): remove the stray .superpowers/sdd session dump (b148cff)
  • chore(repo): move non-essential files out of the root (e7bc18c)
  • chore(repo): declutter the root into modules/ + project/ (1f3a5c7)
  • fix: address adversarial-review findings on the 2.9.0-beta integration (80fbcaf)
  • chore(release): 2.9.0-beta combined highlights + api-version coherence (d6a367b)
  • docs(readme): reconcile the landing page to the shipped 2.9.0 (GUI suite + Combat Test 8c) (bda79ef)
  • mold: integrate Combat Test 8c into the redesigned GUI (bc85d2d)
  • fix(gui): review round — shadow-safe overlay routing, folia-safe caches, no-op stepper guard, one render read per repaint (8b2647f)
  • docs(security): add the security policy Scorecard asks for (19a39e7)
  • ci(security): submit a runtime-only dependency graph explicitly (b5dbd01)
  • ci(security): pin every workflow action to a full commit SHA (db6ab7b)
  • docs(release): 2.9.0-beta — customization suite (950055b)
  • test(tester): headless render lockstep for the redesigned suite (2d43ca3)
  • test(ct8c): anchor the shield strikes to the settled block posture, not a fixed tick (0da37a0)
  • feat(gui): family/dashboard/system screens and the unified preset gallery on the new chrome (514cd14)
  • test(ct8c): tick-pin the charged-attacks deny so matrix load cannot flip it (854690f)
  • fix(projectiles): resolve the throw-gate cooldown item through the material seam (72e3edf)
  • feat(gui): buttons v2, override seam, and descriptor-driven settings screens (6f7892a)
  • docs(platform): javap-pin the 26.1.2 Cleaving degrade — honest year-scheme gap (6fc937a)
  • fix(sustain): route the naturalRegeneration read through a presence-probed seam (a16fe17)
  • feat(gui): design system — palette, chrome, pane pattern, layout (0dc799c)
  • feat(platform): pane colour seam + legacy icon aliases (7d82c3b)
  • test(config): archive the four shipped signature.yml revisions behind the effects upgrade hashes (b27b3e3)
  • refactor(config): one superseded-bundle upgrade driver for both preset libraries (ce54d4d)
  • test(preset): catalog resolution, preview pins, and kind metadata (9eefad2)
  • test(tester): live CT8c + rules-bundle integration suites (8618a9a)
  • feat(preset): unified preset catalog — one read surface for both preset kinds (540deb7)
  • docs(plans): customization-suite design round — unified preset manager, GUI redesign, task partition (3aab847)
  • ci(readme): publish the live chart from a data branch, treat assets as docs (0c1d542)
  • docs: Combat Test 8c user guide — mechanics, bundles, and the honest gap list (b06be9a)
  • docs(readme): client-focused landing page redesign (68ea9c6)
  • feat(delivery): feed CT8c per-weapon reach + targeting inflation into hit validation (f35fb8c)
  • feat(damage): wire the Cleaving handle into the CT8c shield unit (d942c92)
  • style(knockback): justify-and-suppress the CT8c projectile onGround deprecation (da803f8)
  • refactor(damage): gate the CT8c Strength/Weakness ±20% fold on ct8c-potions (03ef57d)
  • feat(gui): Combat Presets screen off the dashboard (74675c7)
  • feat(api): applyBundle write-back + RulesBundleAppliedEvent (40635f2)
  • feat(config): rules bundles — the third preset mechanism (2a49fa6)
  • docs(plan): pin exact bundle module maps and the Task INT contract (9cac2b9)
  • style(damage): order CleavingUnit imports (java/me.vexmc/org.bukkit) (94faf3c)
  • feat(damage): CT8c damage/crits/cleaving unit bodies (602862b)
  • feat(knockback): CT8c projectiles unit — throw gate, momentum, fatigue, Loyalty (c483947)
  • feat(sustain): CT8c consumables — 20-tick drinks, potion/snowball stacking (cd61e38)
  • feat(damage): CT8c shields — 148° arc, 5-cap passthrough, axe disable (4489668)
  • feat(loadout): CT8c melee reach (864e36d)
  • feat(damage): CT8c i-frames unit (976a277)
  • feat(platform): CleavingRegistrar registry seam + CleavingHandle (76adaea)
  • feat(sustain): CT8c food/regen — 1.8 cadence, hunger drain, eat-interrupt (379f555)
  • feat(cadence): CT8c sweep rules (76073cf)
  • feat(knockback): CT8c projectile policy — pure fatigue/momentum/spread math (0c7cf40)
  • feat(cadence): CT8c charged attacks (da39e3b)
  • feat(damage): CT8c composition seam in DamageShaper (fadcc06)
  • feat(sustain): CT8c potion values — Instant Health substitution + Strength/Weakness factors (33bb136)
  • feat(cadence): CT8c weapon attack speeds (4c8d934)
  • feat(core): CT8c skeleton feature units + config surface (d8743ca)
  • feat(core): ct8c knockback profile (d82b9ec)
  • feat(core): CT8c feature registry — 13 constants + weapon-speed/charged-attack settings (4b2619f)
  • feat(kernel): CT8c split-vertical shape for the modern formula (8c7b934)
  • feat(kernel): CT8c pure math tables (0c7b8ad)
  • docs: CT8c implementation plan — wave/merge protocol and task contracts (d74182f)
  • docs: Combat Test 8c import design spec (12c5c0c)
  • docs(release): client-focused release notes, highlights mechanism, plugin descriptor refresh (085a141)
  • chore(deps): Bump the gradle-minor-patch group across 1 directory with 3 updates (1e4a5ec)

MENTAL by @owengregson

Mental v2.8.1

Choose a tag to compare

@github-actions github-actions released this 18 Jul 13:52
Immutable release. Only release title and notes can be modified.
882e2a9

Runs on every Paper server 1.9.4 → 26.1.2 (plus Folia) — one jar, no other plugins needed, Java 8 or newer.

The stable update — recommended for everyone

This release promotes everything since v2.6.2 to stable. Updating from 2.6.2, here's what your server gains:

  • Kill titles (optional): show the killer a configurable on-screen title, with name and PlaceholderAPI placeholders.
  • Loot protection (optional): a slain player's drops are reserved for their killer — glowing gold, killer-only pickup until the protection expires.
  • Redesigned in-game menus: Combat Effects gets a full hub with dedicated screens, and text options can be edited straight from chat.
  • Sword blocking sounds right again with hit feedback on, and the crit indicator now scales with the target's max health so it means the same thing for every player.
  • Plugin integrations: a new public API (generation 3) lets combat-adjacent plugins follow Mental's combos and query combat state cleanly — mental-api-3.0.0.jar below is for their developers. With default settings this changes no gameplay.
  • Cleaner shutdowns: integrating plugins always see combos end properly on disable or module toggle.

Everything optional above ships off by default — Mental changes nothing you didn't ask for.

Install or update

  1. Download Mental-2.8.1.jar below and drop it into your server's plugins/ folder (replacing the old jar if you're updating — your config is kept).
  2. Restart the server. That's it — the defaults are the classic combat, no setup required.

One jar, every version. Modern Java reads Mental's Java-17 build, older Java reads the Java-8 build packed in the same file — no flags, no per-version downloads, 1.14.4 included.


Published only after unit tests and live integration runs on real servers of every supported version passed.

Mental v2.8.0-beta

Mental v2.8.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 10:15
Immutable release. Only release title and notes can be modified.
0fe1519

Runs on every Paper server 1.9.4 → 26.1.2 (plus Folia) — one jar, no other plugins needed, Java 8 or newer.

What's new for your server

  • No gameplay changes with default settings — this release is about letting other plugins cooperate with Mental cleanly.
  • Public API, generation 3. Plugins can now follow Mental's combos live (every hit of a developing chain), query combat state directly instead of guessing, and control knockback outcomes explicitly. If you run combat-adjacent plugins (custom enchants, abilities, anti-abuse), this is the release their integrations build on — the mental-api-3.0.0.jar below is for their developers.
  • Cleaner shutdowns. Plugins listening to Mental's combo events now always see combos end properly when Mental is disabled or a combat module is toggled off mid-fight.

Install or update

  1. Download Mental-2.8.0-beta.jar below and drop it into your server's plugins/ folder (replacing the old jar if you're updating — your config is kept).
  2. Restart the server. That's it — the defaults are the classic combat, no setup required.

One jar, every version. Modern Java reads Mental's Java-17 build, older Java reads the Java-8 build packed in the same file — no flags, no per-version downloads, 1.14.4 included.


Published only after unit tests and live integration runs on real servers of every supported version passed.

Mental v2.7.1-beta

Mental v2.7.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Jul 00:54
Immutable release. Only release title and notes can be modified.
ca9cec6

Runs on every Paper server 1.9.4 → 26.1.2 (plus Folia) — one jar, no other plugins needed, Java 8 or newer.

What's new for your server

  • Sword blocking sounds right again. With hit feedback on, a blocking victim's hurt sound was silenced even though the flinch showed — restored.
  • The crit indicator now scales with the target. The critical flash triggers when a hit removes a share of the victim's max health (default 25%) instead of a fixed heart count, so it means the same thing for a full-health tank and a scrappy duelist.

Install or update

  1. Download Mental-2.7.1-beta.jar below and drop it into your server's plugins/ folder (replacing the old jar if you're updating — your config is kept).
  2. Restart the server. That's it — the defaults are the classic combat, no setup required.

One jar, every version. Modern Java reads Mental's Java-17 build, older Java reads the Java-8 build packed in the same file — no flags, no per-version downloads, 1.14.4 included.


Published only after unit tests and live integration runs on real servers of every supported version passed.

Mental v2.7.0-beta

Mental v2.7.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jul 22:53
Immutable release. Only release title and notes can be modified.
4c81d7c

Runs on every Paper server 1.9.4 → 26.1.2 (plus Folia) — one jar, no other plugins needed, Java 8 or newer.

What's new for your server

  • Kill titles. An optional death effect that shows the killer a configurable on-screen title ({NAME}, {KILLER} and PlaceholderAPI placeholders supported).
  • Loot protection (new, off by default): a slain player's drops are reserved for their killer — glowing gold, only the killer can pick them up until the protection expires.
  • Redesigned in-game menus. Combat Effects gets its own hub with dedicated screens for hit effects, death effects, indicators, and loot — and text options can now be edited from chat.

Install or update

  1. Download Mental-2.7.0-beta.jar below and drop it into your server's plugins/ folder (replacing the old jar if you're updating — your config is kept).
  2. Restart the server. That's it — the defaults are the classic combat, no setup required.

One jar, every version. Modern Java reads Mental's Java-17 build, older Java reads the Java-8 build packed in the same file — no flags, no per-version downloads, 1.14.4 included.


Published only after unit tests and live integration runs on real servers of every supported version passed.

Mental v2.6.2

Choose a tag to compare

@github-actions github-actions released this 13 Jul 01:26
Immutable release. Only release title and notes can be modified.
1b7b8ae

Runs on every Paper server 1.9.4 → 26.1.2 (plus Folia) — one jar, no other plugins needed, Java 8 or newer.

What's new for your server

  • Cleaner damage indicators. Rapid hits now roll into one indicator per damage window — the number bumps in place (shown in hearts) instead of stacking ghost duplicates over a target's head.
  • No more phantom "crit" flashes on ordinary in-window hits.
  • This release marks the 2.6 line stable — the recommended update for every server.

Install or update

  1. Download Mental-2.6.2.jar below and drop it into your server's plugins/ folder (replacing the old jar if you're updating — your config is kept).
  2. Restart the server. That's it — the defaults are the classic combat, no setup required.

One jar, every version. Modern Java reads Mental's Java-17 build, older Java reads the Java-8 build packed in the same file — no flags, no per-version downloads, 1.14.4 included.


Published only after unit tests and live integration runs on real servers of every supported version passed.