Update Changelogs authored by Ashijin's avatar Ashijin
[[_TOC_]]
# 5.11.0
General
-------
- Added support for 1.21.10
- Dropped support for 1.19.X, 1.20.2, 1.20.6, and 1.21.3
- Kept support for 1.20.1, 1.20.4, 1.21.1, and 1.21.4+
- Rewrote `/mm i import` and improved import of NBT, display, and MiniMessage lore
- Moved most custom menu logic into the base plugin; menus now require Premium or RPG
- Moved custom command handling from RPG into Premium
Optimiations
------------
- Added `ShareComponents` option to deduplicate identical mechanics, targeters, and conditions
- Optimized placeholder and component memory usage via flyweighting
Compatibility
-------------
- Improved model application timing to further reduce flickering
- Updated Lands support to the latest version
- Updated LibsDisguises integration, disguising mobs before spawning to reduce flickering
- Removed mcstats.org reporting
- Disabled ShopGUIPlus support temporarily
Mechanics
---------
### NEW: fear
- Added `fear` aura mechanic causing targets (including players) to run around uncontrollably
### NEW: TRAIL particle
- Added `TRAIL` particle with `color`, `duration`, and `source=@targeter`
### NEW: forEachPin
- Added `forEachPin{pin=X;skill=Y}` for executing a mechanic once per pin location
- The active pin location is exposed via `@Pin`
### NEW: VariableMove
- Added `VariableMove` mechanic to move variables across names/registries, with optional `createnew`
### NEW: determineCondition
- Added `determineCondition` mechanic for dynamic condition evaluation in metaskills
### Velocity
- `velocity` mechanic no longer alters components that are not specified
- Recoil movement smoothed further
### Misc
- Stun mechanic now defaults to type `#stun`
- `blockwave` now uses the target block’s material when unspecified
- Added `inheritExpirationTime` to `VariableMove`
- Improved projectile hit detection against sub-hitboxes
Conditions
----------
### NEW: MetaskillCondition
- Added `MetaskillCondition` to let metaskills determine condition results
### NEW: isSibling
- Added `isSibling` condition to check sibling mob relationships
### Targets Condition
- `targets` condition may now specify a targeter instead of relying on inherited targets
### Enhancements
- Placeholder support added to `TargetWithin` and `TargetNotWithin`
- Metaskill conditions may now parse skill parameters
- Added error catching to `BlockType`
Targeters
---------
### NEW: @EscapeLocation
- Added targeter that finds a nearby Enderman-like escape location
### NEW: @EntitiesNearPin
- Added targeter for entities around a pin location
### Location Targeters
- Added `surface` and `surfaceTolerance`
Mobs
----
### NEW: Copper Golem (1.21.10)
- `Options.WeatheringState`
- `Options.Waxed`
### NEW: Mannequin (1.21.10)
- `MannequinOptions.Immovable`
- `MannequinOptions.Description`
- `MannequinOptions.Pose`
- `MannequinOptions.Skin`
- `MannequinOptions.Cape`
- `MannequinOptions.Elytra`
- `MannequinOptions.Model: CLASSIC/SLIM`
- `MannequinOptions.Player`
### Other Mob Additions
- Added `Options.Variant` for cow, chicken, and pig
- Added `Options.RandomizeProperties` to disable vanilla random mob variation
Triggers
--------
### NEW: onDismounted
- Added trigger for when an entity is dismounted
Placeholders
------------
### Numeric Placeholder Improvements
- Added `Long` variable type
- Added `.round` and `.precision.X` meta keywords
### Static Placeholder Optimization
- Added static placeholder pre-parsing
- Improved runtime performance and post-reload caching
### Misc
- Added experimental `<centertext>` placeholder
Items
-----
- Added `ItemVariable` drop type for item-handling mechanics
- Improved `/mm i import` handling of NBT and MiniMessage content
- Added `Options.SkinID` for head items
- Changed item version format to `major.minor.patch` (up to 255.255.255)
- Added `drop:` prefix for item variables
API
---
- Added RandomDouble bias (API-only)
- Added icon template API for custom menus
- Expanded templated menu icon functionality
- Added more placeholder/variable APIs and RandomDouble bias configuration
- Try to append Mythic Type before spawning so that it's available in CreateSpawnEvent
Bug Fixes & Optimizations
-------------------------
- Added placeholder support to projectile gravity
- Added placeholder support to bonus damage fields
- Added `bonusDamageModifiers/bdm` to damage mechanics
- Improved BlockMatcher error handling
- Fixed mob spawn reason incorrectly being `PATROL`
- Fixed vanilla overrides overwriting mob options on chunk reload
- Fixed owner and parent AI goals on newer versions
- Fixed `~onSpawnOrLoad` not firing when no `~onSpawn` triggers existed
- Fixed multiple particle issues on newer versions
- Fixed projectile inaccuracy at extreme coordinates
- Fixed projectile sub-hitbox detection
- Fixed aura attachments not being removed when expired
- Fixed aura errors and concurrency issues on Folia
- Fixed numerous Folia regressions (projectiles, auras, delays, summoning)
- Fixed item attribute stacking issues
- Fixed player heads on 1.21.10
- Fixed invalid Base64 skull textures by auto-padding
- Fixed NPEs in meta skills, drop-table-less mobs, and onKnockbackEntity
- Fixed various BlockMatcher issues and improved error logging
- Fixed import command failing on non-Paper servers
- Fixed config loading issues caused by missing newline
- Fixed placeholder spam and stat placeholder timing issues
- Fixed recoil mechanic issues
- Fixed debug spam from meleeattack goal
- Fixed damage breaking in prior build
- Fixed look mechanic on no-AI entities
- Fixed skull-texture crashes in mob types
- Fixed plugin not loading on 1.21.10
- General refactoring and internal cleanup across systems
# 5.10.0 (Release)
## General
- Added **1.21.7** and **1.21.8** support
- Added `HAPPY_GHAST` entity type
- Performance: faster second-pass processing and improved caching for entity lookups and item parsing on reload
- Default config: added several missing options
## API & Events
- New: `MythicReloadCompleteEvent`
- New (core): `ReloadEvent`
- New: `MythicPlayerVariableSetEvent`, `MythicPlayerVariableRemoveEvent`
- `MythicHealMechanicEvent` now also calls `EntityRegainHealthEvent`
- Added meta access to `DamageMetadata`
- Added old meta access in `SkillTriggerMetadata`
- Added API groundwork for RPG cross-compatibility
## Placeholders
- Added `<target.armor>`, `<&lt>`, `<&gt>`, `<^dot>`, `<^dot2>`
- Added `PlaceholderAngle`
- Placeholders now supported in more places (e.g., item browser parsing)
- Fixed generic `int`, `float`, and `double` placeholders not parsing variables
- Fixed PlaceholderVector not working under complex cases
- Fixed placeholders with Item NBT (string/int/float/double) not resolving
## Variables
- New variable types: `Set`, `List`, `Map`, `Boolean`, `Vector`, `Time`, **Item**, **MetaSkill**
- [Meta Variable Placeholders](/Skills/Placeholders/meta-placeholders): `<[scope].var.[name].keyword>` with keyword chaining
- `Variable.ofType` updated; `PolymorphicPlaceholder` added
- Mob Variables can set all registered variable types
- Internals: relocated Default Variable handler for Crucible usage
## Mechanics
- **New**: [`ForEach`](/Skills/Mechanics/ForEach) and [`ForEachValue`](/Skills/Mechanics/ForEachValue)
- **New**: `ClearTarget` mechanic
- Updated: `variableadd` / `variablesubtract` to support new variable types
- Projectile family:
- Added many missing projectile options
- Added `startYOffset`, `startForwardOffset`, `startSideOffset` to `shoot` and `volley`
- Orbital family:
- Added placeholder support to `ParticleOrbital` radius
- Added `immuneDelay`; fixed multi-hit immunity
- Removed `hs` alias for `hugSurface`
- Improved targeting logic with orbitals
- Aura: `sync=true` now forces sync scheduler
- Look mechanic: minor behavioral tweaks
- Summon: fixed `useTargetYaw`/`useTargetPitch`
- Stun: fixed `freezeFacing` inversion; fixed on newer versions
## Teleport (Paper-only)
- **Added** options to all teleport mechanics (Paper):
- Teleport cause
- Vehicle retention
- Support for Paper `TeleportFlag`s
- Fixes: addressed regressions that broke teleport mechanics; additional polish to new options
## Targeters & Triggers
- Targeters:
- Added `shape` to `@EntitiesInRadius` and `@EntitiesNearOrigin`
- Added universal `upoffset` location attribute
- Triggers:
- Shulkers now support `onShoot` and `onBowHit`
- Fixed `onDeath` for falling block mobs
## Conditions
- **New**: [`VariableContains`](/Skills/Conditions/VariableContains)
- **New**: `projectileHasEnded`
- **New**: `isSkill{name=...}`
- `mythicMobType` condition: `exactmatch=false` option
- Added `xdiff` and `zdiff` conditions
- Fixed health conditional parsing triggers
## Items & Equipment
- Item flags: allow full flags (e.g., `HIDE_ATTRIBUTES`) in `Hide` field
- Compatibility: drop unsupported `HIDE_POTION_EFFECTS` on > 1.20.5
- Item systems:
- Faster item cache on reload (also parses placeholders/variables)
- Fixed tool rules (closes #2027)
- Fixed cases where item mechanics could fail
- Attempted fix for `vanillaonly=true` in `ItemMatcher`
## Mobs & Spawning
- Options:
- `Options.Aware: false`
- `Options.PreventKnockback`
- `Hidden: true` (prevents mobs appearing in lists) and fixed inheritance making it useless
- Datapacks: proper spawn location for mobs spawned by datapacks
## Holograms & Displays
- Holograms: fixed multiple regressions in previous builds
- Text display bullets:
- Added `bulletRotation`
- Fixed rotation code on 1.20_R1
## Compatibility & Misc
## Bug Fixes & Other
- Added placeholder support to summon radius attributes
- Fixed NPEs: startup (#2029), `MythicConfig`, `ForEach`, `Summon`, vector with `DisplayItem` totems, target setting
- Fixed recoil mechanic on 1.21.4+
- Fixed errors when other plugins call certain methods before load
- Fixed auras `IllegalStateException` introduced in a dev build
- Fixed level modifier errors (rare cases)
- Fixed `Log` mechanic message parsing
- Fixed `variableequals` warnings when target variable absent
- Fixed `onShoot` aura not setting `<skill.var.bow-tension>`
- Fixed various missile `verticalOffset` issues
- Fixed immutable list errors with glow on 1.21.8
- Fixed `setOwner`/`removeOwner` for all tameable types
Older Changelogs
================
- [5.10.X Changelogs](/changelogs/5.10.x_changelogs)
- [5.9.X Changelogs](/changelogs/5.9.x_changelogs)
- [5.8.X Changelogs](/changelogs/5.8.x_changelogs)
- [5.7.X Changelogs](/changelogs/5.7.x_changelogs)
- [5.6.X Changelogs](/changelogs/5.6.x_changelogs)
- [5.5.X Changelogs](/changelogs/5.5.x_changelogs)
- [5.4.X Changelogs](/changelogs/5.4.x_changelogs)
- [5.3.X Changelogs](/changelogs/5.3.x_changelogs)
- [5.2.X Changelogs](/changelogs/5.2.x_changelogs)
- [5.1.X Changelogs](/changelogs/5.1.x_changelogs)
- [5.0.X Changelogs](/changelogs/5.0.x_changelogs)
- [4.14.X Changelogs](/changelogs/4.14.x_changelogs)
- [4.13.X Changelogs](/changelogs/4.13.x_changelogs)
- [4.12.X Changelogs](/changelogs/4.12.x_changelogs)
- [4.11.X Changelogs](/changelogs/4.11.x_changelogs)
- [4.10.X Changelogs](/changelogs/4.10.x_changelogs)
- [4.9.X Changelogs](/changelogs/4.9.x_changelogs)
- [4.8.X Changelogs](/changelogs/4.8.x_changelogs)
- [4.7.X Changelogs](/changelogs/4.7.x_changelogs)
- [4.6.X Changelogs](/changelogs/4.6.x_changelogs)
- [4.5.X Changelogs](/changelogs/4.5.x_changelogs)
- [4.4.X Changelogs](/changelogs/4.4.x_changelogs)
- [4.3.X Changelogs](/changelogs/4.3.x_changelogs)
- [4.2.X Changelogs](/changelogs/4.2.x_changelogs)
- [4.1.X Changelogs](/changelogs/4.1.x_changelogs)
- [4.0.X Changelogs](/changelogs/4.0.x_changelogs)
- [2.5.X Changelogs](/changelogs/2.5.x_changelogs)
- [2.4.X Changelogs](/changelogs/2.4.x_changelogs)
- [2.3.X Changelogs](/changelogs/2.3.x_changelogs)
- [2.2.X Changelogs](/changelogs/2.2.x_changelogs)
- [2.1.X Changelogs](/changelogs/2.1.x_changelogs)
- [2.0.X Changelogs](/changelogs/2.0.x_changelogs)
[[_TOC_]]
# 5.12.0
General
-------
- Added support for 1.21.11 and `26.1.x` (requires Java 25)
- Added automatic config updating
- Improved case-insensitive config loading
- Added new `files/` pack directory
- Added auto-generated `.internal` pack. This will contain some assets that can be auto-generated by Crucible, along with other helpful internal things that can modified.
Stats System
------------
- Updated the default `stats.yml` with better base values
- Added missing stats to the default `stats.yml`
- Added `LOOT_BIAS` stat for affecting weighted droptables
Mechanics
---------
### NEW: Aura Components
- Rewrote auras to be component-based so a single aura can combine multiple effects
- Added `targetIsCaster=true`
- Added `decayStackOnExpire=true`
- Added persistent `cancelOnQuit=false`
- Added `ChunkLoadAuraComponent`
- Added `projectilerebound`
```yaml
- aura{auraname=MultiAura;duration=200;interval=10;targetIsCaster=true;decayStackOnExpire=true;components=[ - onattack{onattack=[ - particles{p=flame;a=50;s=1} @self ]}, - stat{stat=HEALTH;type=ADDITIVE;value=20} ]} @target
```
### NEW: removeTaggedAuras
- Added `removeTaggedAuras` for clearing aura instances by tag
```yaml
- removeTaggedAuras{tags=stun;limit=2} @target
```
### NEW: Charges / CooldownMode
- Added `Charges` to skills and metaskills
- Added `CooldownMode` to skills and metaskills
```yaml
Charges: 3
CooldownMode: PARALLEL
```
### NEW: addSkillCharges
- Added `addSkillCharges` for restoring charges to tracked skills
```yaml
- addSkillCharges{skill=Dash;amount=1;order=LATEST;overflow=true} @self
```
### NEW: showDialog
- Added `showDialog` for opening custom Paper dialogs
```yaml
- showDialog{dialog=QuestOffer} @trigger
```
### NEW: closeDialog
- Added `closeDialog` for force-closing an active dialog
```yaml
- closeDialog @trigger
```
### NEW: hide
- Added `hide` / `hideFromPlayers` for hiding the caster from targeted players, with optional persistence
```yaml
- hide{permanent=true;save=true} @PlayersInRadius{r=30}
```
### NEW: enchantItem
- Added `enchantItem` for applying enchantments directly to a target slot
```yaml
- enchantItem{enchant=SHARPNESS;level=1;slot=HAND} @self
```
### NEW: SetCustomMenuTitle
- Added `SetCustomMenuTitle` / `setMenuTitle` for updating an open custom menu title
```yaml
- setMenuTitle{title="<gold>Boss Rewards"} @self
```
### Wait
- Added `onTimeoutSkill` / `ontimeout` / `ots` to `wait`
```yaml
- wait{cond=[ - onground ];tt=300;ontimeout=TimeoutSkill}
```
### Sudo
- Added `chained=true` to `sudo`
```yaml
- sudoskill{chained=true;skill=Example} @EIR{limit=3;radius=10}
```
### Heal
- Added `tags` to heal mechanics
```yaml
- heal{a=10;tags=holy,burst} @self
```
### DropItem
- Added `ForceDynamic` to `DropItem`
```yaml
- dropitem{item=MyDrop;ForceDynamic=true} @self
```
### Sound
- Added `emitter` and `seed` options to sound mechanics
```yaml
- sound{s=minecraft:entity.warden.heartbeat;emitter=caster;seed=42} @self
```
### Projectile
- Added `spread` to `volley`
- Added `bulletBrightness` to projectile mechanics
- Added `bulletALOD=false` to projectile mechanics
```yaml
- volley{spread=4} @target
```
### Throw
- Added placeholder support and `triggers=false` to `throw`
```yaml
- throw{v="<caster.var.throw_speed>";vy=1.5;triggers=false} @target
```
### Custom Menus
- Added `Shared: false` to custom menus
- Added `UIElements` to custom menus
```yaml
CustomMenu:
Shared: false
UIElements:
- myc_menu_hats{char=\ue832;path=ui/cosmetics_gui_hat;height=256;ascent=14}
```
Conditions
----------
### NEW: input
- Added `input` for checking live player movement keys
```yaml
- input{key=forward,sprint}
```
### NEW: skillIsRecharging
- Added `skillIsRecharging` for checking skill recharge state
```yaml
- skillIsRecharging{skill=Dash}
```
### NEW: statDamageModifier
- Added `statDamageModifier` for stat skill checks
```yaml
- statDamageModifier{m=1.01} castInstead PositiveEffectSkill
```
### NEW: inLiquid
- Added `inLiquid`, including waterlogged block support
```yaml
- inLiquid
```
### NEW: isFrozen
- Added `isFrozen`
- Added `freezing` / `isfreezing` aliases
```yaml
- isFrozen
```
### NEW: uuid
- Added `uuid` for comparing an entity against a specific UUID value
```yaml
- uuid{u="<trigger.uuid>"}
```
### NEW: goatHorn
- Added `goatHorn` for checking whether a goat still has a horn
```yaml
- goatHorn
```
### NEW: isSheared
- Added `isSheared` for checking sheep shearing state
```yaml
- isSheared
```
### NEW: trim
- Added `trim` / `armorTrim` for checking armor trim pattern and material
```yaml
- trim{slot=CHEST;pattern=sentry;material=gold}
```
### NEW: blockAbove
- Added `blockAbove` for checking material at an offset above the evaluated location
```yaml
- blockAbove{m=DIRT;y=2}
```
### NEW: isTarget
- Added `isTarget` / `target` for checking whether the evaluated entity is the caster mob’s current target
```yaml
- isTarget
```
### inClaim
- Extended `inClaim` support to PlotSquared
- Extended `inClaim` support to Residence
```yaml
- inClaim
```
### Composite Conditions
- Composite conditions may now contain spaces more reliably
```yaml
- ((day false || raining true) && onBlock{material=LIME_CONCRETE}) true
```
### Item Filters
- Added placeholder support to `hasitem`
- Added variable support to `hasitem`
- Added placeholder support to `haspermission`
- Added variable support to `haspermission`
- Added runtime item filter resolution to item-related conditions and mechanics
```yaml
- hasitem{i="<caster.var.required_item>"}
```
Targeters
---------
### useBoundingBox
- Added `useBoundingBox` / `bb=true` to shaped entity targeters and cone bounding-box checks for `@EIC`
```yaml
@EIC{a=45;r=12;bb=true}
```
### sort
- Added `sort=OLDEST` and `sort=NEWEST` for entity target filters
```yaml
@EIR{r=20;sort=OLDEST}
```
### EntitiesInLine
- Added placeholder + math support to `EntitiesInLine` radius
```yaml
@EntitiesInLine{r="<skill.var.beam_radius>"}
```
### RandomLocations
- Added placeholder + math support to `RandomLocations` targeters
```yaml
@RandomLocations{a=5;r="<caster.var.scatter_radius>"}
```
Mobs
----
### NEW: 1.21.11 Entity Types
- Added support for `CAMEL_HUSK`
- Added support for `NAUTILUS`
- Added support for `PARCHED`
- Added support for `ZOMBIE_NAUTLIS`
```yaml
Type: CAMEL_HUSK
```
### NEW: Axolotl Variant
- Added `Variant` support for Axolotls
```yaml
Variant: blue
```
### ThreatTable
- Added `ThreatTable.DropUnreachableSeconds`
```yaml
ThreatTable.DropUnreachableSeconds: 10
```
### Saddles
- Added newer mob support to saddle logic
- Improved `isSaddled` support for newer mobs
```yaml
- isSaddled
```
Triggers
--------
### NEW: Input Triggers
- Added `~onInputForward`
- Added `~onInputBackward`
- Added `~onInputLeft`
- Added `~onInputRight`
- Added `~onInputJump`
- Added `~onInputSneak`
- Added `~onInputSprint`
```yaml
- message{m="Jump detected"} ~onInputJump
```
### NEW: onHealed
- Added `~onHealed`
```yaml
- skill{s=AfterHeal} ~onHealed
```
### NEW: onSheared
- Added `~onSheared`
```yaml
- skill{s=AfterShear} ~onSheared
```
### NEW: onEffectApply
- Added `~onEffectApply`
```yaml
- skill{s=OnPotionGain} ~onEffectApply
```
### NEW: onThrownByMechanic
- Added `~onThrownByMechanic`, with `~onThrown` as an alias
```yaml
- skill{s=AfterThrow} ~onThrown
```
### NEW: onMount
- Enabled `~onMount`
```yaml
- skill{s=MountedSkill} ~onMount
```
Placeholders
------------
### Placeholder Engine
- Refactored placeholders onto a new parser/segment pipeline
- Added wildcard registration
- Added generic return types
- Added `MythicLineConfig` support for meta keywords
- Improved static placeholder parsing
- Added `{default=...}` support to variable placeholders
### NEW: Input Placeholder
- Added live input placeholders for player movement state
```text
<trigger.input.jump>
```
### NEW: Aura Stacks Placeholder
- Added `<caster.aura.ID.stacks>`
```text
<caster.aura.FireShield.stacks>
```
### NEW: <skill.power>
- Added `<skill.power>`
```yaml
- message{m="Power: <skill.power>"} @self
```
### NEW: Skill Charge Placeholders
- Added `<[scope].skill.SkillName.charges>`
- Added `<[scope].skill.SkillName.maxcharges>`
- Added `<[scope].skill.SkillName.overflowcharges>`
```yaml
- message{m="Dash: <caster.skill.Dash.charges>/<caster.skill.Dash.maxcharges> (+<caster.skill.Dash.overflowcharges>)"} @self
```
### NEW: damage-amount-post
- Added `damage-amount-post`
- Added `<skill.var.damage-amount-post>`
```yaml
- message{m="Final damage: <skill.var.damage-amount-post>"} @self
```
### NEW: Dialog Placeholders
- Added dialog input placeholders
```yaml
- message{m="Class: <dialog.classChoice>"} @trigger
```
### NEW: itemcount
- Added `itemcount` for counting vanilla or Mythic items in a player's inventory
```yaml
- message{m="Diamonds: <caster.itemcount.DIAMOND>"} @self
```
### NEW: <char.*>
- Added `<char.*>` for deferred Unicode character insertion
```text
<char.007B>
```
### NEW: Random UUID
- Added `<random.uuid>`
```yaml
- message{m="<random.uuid>"} @self
```
### Misc
- Added `sortByValue` map meta keyword
- Added `round` math support
- Renamed `<item.level>` to `<item.droplevel>`
Items
-----
### General
- Added `Options.Glint: false` support
### New Component Support
- Added `AttackRange`
- Added `BlocksAttacks`
- Added `Weapon`
- Added `KineticWeapon`
- Added `PiercingWeapon`
- Added `JukeboxPlayable`
- Added `NoteBlockSound`
- Added `UseRemainder`
- Added `BreakSound`
- Added `Instrument`
- Added `Enchantable`
- Added `RepairableBy`
- Added `OminousBottleAmplifier`
- Added `PotDecorations`
- Added `banner_patterns`
- Added `LodestoneTracker`
```yaml
AnItem:
Material: DIAMOND
AttackRange: 3.5
Weapon:
ItemDamagePerAttack: 2
DisableBlockingForSeconds: 0.5
JukeboxPlayable: "minecraft:thirteen"
UseRemainder: ADifferentItem
RepairableBy:
- STICK
PotDecorations:
Back: brick
Left: arms_up_pottery_sherd
Right: skull_pottery_sherd
Front: prize_pottery_sherd
```
API
---
- Added API for registering custom command functions
- Added API for custom equippables
- Added `MythicPlayerQuitEvent`
- Added `MythicAuraStartEvent`
- Added `MythicAuraStopEvent`
- Added `MythicMobPreSpawnConfigureEvent`
- Added `MythicTargetEvent`
- Added final attack meta damage interception API
- Exposed aura remaining ticks
- Added menu hooks
- Added icon hooks
- Added color-picker hooks
Compatibility
-------------
- Greatly improved Folia compatibility
- Added `inClaim` support for PlotSquared
- Added `inClaim` support for Residence
Bug Fixes & Optimizations
-------------------------
- Refactored the placeholder engine
- Improved static placeholder handling
- Reduced hot-path allocations in projectiles
- Reduced hot-path allocations in targeters
- Reduced hot-path allocations in drops
- Reduced hot-path allocations in cooldowns
- Reduced hot-path allocations in clustering
- Reduced hot-path allocations in registry lookups
- Improved menu reload performance
- Improved custom-name component caching
- Optimized case-insensitive config handling
- Fixed persistent aura save/rejoin issues
- Fixed aura termination races
- Fixed `removeAura` stat leaks
- Fixed `onDamaged` aura regressions
- Fixed random placeholder output regressions
- Fixed MiniMessage placeholder regressions
- Fixed bar placeholder regressions
- Fixed stance placeholder regressions
- Fixed threat-table placeholder regressions
- Fixed cached stat placeholder regressions
- Fixed static placeholder regressions
- Fixed non-placeholder `<` parsing issues
- Fixed recursive placeholder cache races
- Fixed placeholder concurrency issues
- Fixed negative projectile gravity
- Fixed projectile hits against owner sub-hitboxes
- Fixed text display brightness issues
- Fixed zero-velocity display bullets
- Fixed projectile bounce axis bugs
- Fixed projectile NPEs
- Fixed `doEndSkillOnHit=false` handling
- Fixed random spawning logic
- Fixed spawner stale data
- Fixed per-player random spawn cooldowns
- Fixed double spawns
- Fixed natural despawn unregistering
- Fixed persistent mob restore on chunk load
- Fixed level scaling issues
- Fixed `BaseValue` stat issues
- Fixed stat rounding issues
- Fixed heal percent issues
- Fixed additive damage modifier behavior
- Fixed `modDamage{action=ADD}` applying damage as a multiplier
- Fixed item attribute doubling and reload resets
- Fixed `OnCooldownSkill` redirects ignoring the target skill cooldown
- Fixed menu generation issues
- Fixed conditional menu issues
- Fixed menu reload performance issues
- Fixed hidden item handling
- Fixed FAWE schematic lookup outside Mythic folders
- Fixed `EntitiesInCone` targeting when looking up or down
- Fixed `haspotion` condition issues
- Fixed `inLiquid` condition issues
- Fixed summon owner/parent flags
- Fixed `runaigoal` priorities and stacking
- Fixed hologram hex colors without Nexo
- Fixed additional `26.1.x` follow-up issues
- Fixed Folia chunk races
- Fixed Folia command races
- Fixed Folia potion effect threading issues
- Fixed Folia visibility threading issues
- Fixed Folia heal event threading issues
- Fixed Folia totem handling
- Fixed Folia trading handling
# 5.11.0
General
-------
- Added support for 1.21.10
- Dropped support for 1.19.X, 1.20.2, 1.20.6, and 1.21.3
- Kept support for 1.20.1, 1.20.4, 1.21.1, and 1.21.4+
- Rewrote `/mm i import` and improved import of NBT, display, and MiniMessage lore
- Moved most custom menu logic into the base plugin; menus now require Premium or RPG
- Moved custom command handling from RPG into Premium
Optimiations
------------
- Added `ShareComponents` option to deduplicate identical mechanics, targeters, and conditions
- Optimized placeholder and component memory usage via flyweighting
Compatibility
-------------
- Improved model application timing to further reduce flickering
- Updated Lands support to the latest version
- Updated LibsDisguises integration, disguising mobs before spawning to reduce flickering
- Removed mcstats.org reporting
- Disabled ShopGUIPlus support temporarily
Mechanics
---------
### NEW: fear
- Added `fear` aura mechanic causing targets (including players) to run around uncontrollably
### NEW: TRAIL particle
- Added `TRAIL` particle with `color`, `duration`, and `source=@targeter`
### NEW: forEachPin
- Added `forEachPin{pin=X;skill=Y}` for executing a mechanic once per pin location
- The active pin location is exposed via `@Pin`
### NEW: VariableMove
- Added `VariableMove` mechanic to move variables across names/registries, with optional `createnew`
### NEW: determineCondition
- Added `determineCondition` mechanic for dynamic condition evaluation in metaskills
### Velocity
- `velocity` mechanic no longer alters components that are not specified
- Recoil movement smoothed further
### Misc
- Stun mechanic now defaults to type `#stun`
- `blockwave` now uses the target block’s material when unspecified
- Added `inheritExpirationTime` to `VariableMove`
- Improved projectile hit detection against sub-hitboxes
Conditions
----------
### NEW: MetaskillCondition
- Added `MetaskillCondition` to let metaskills determine condition results
### NEW: isSibling
- Added `isSibling` condition to check sibling mob relationships
### Targets Condition
- `targets` condition may now specify a targeter instead of relying on inherited targets
### Enhancements
- Placeholder support added to `TargetWithin` and `TargetNotWithin`
- Metaskill conditions may now parse skill parameters
- Added error catching to `BlockType`
Targeters
---------
### NEW: @EscapeLocation
- Added targeter that finds a nearby Enderman-like escape location
### NEW: @EntitiesNearPin
- Added targeter for entities around a pin location
### Location Targeters
- Added `surface` and `surfaceTolerance`
Mobs
----
### NEW: Copper Golem (1.21.10)
- `Options.WeatheringState`
- `Options.Waxed`
### NEW: Mannequin (1.21.10)
- `MannequinOptions.Immovable`
- `MannequinOptions.Description`
- `MannequinOptions.Pose`
- `MannequinOptions.Skin`
- `MannequinOptions.Cape`
- `MannequinOptions.Elytra`
- `MannequinOptions.Model: CLASSIC/SLIM`
- `MannequinOptions.Player`
### Other Mob Additions
- Added `Options.Variant` for cow, chicken, and pig
- Added `Options.RandomizeProperties` to disable vanilla random mob variation
Triggers
--------
### NEW: onDismounted
- Added trigger for when an entity is dismounted
Placeholders
------------
### Numeric Placeholder Improvements
- Added `Long` variable type
- Added `.round` and `.precision.X` meta keywords
### Static Placeholder Optimization
- Added static placeholder pre-parsing
- Improved runtime performance and post-reload caching
### Misc
- Added experimental `<centertext>` placeholder
Items
-----
- Added `ItemVariable` drop type for item-handling mechanics
- Improved `/mm i import` handling of NBT and MiniMessage content
- Added `Options.SkinID` for head items
- Changed item version format to `major.minor.patch` (up to 255.255.255)
- Added `drop:` prefix for item variables
API
---
- Added RandomDouble bias (API-only)
- Added icon template API for custom menus
- Expanded templated menu icon functionality
- Added more placeholder/variable APIs and RandomDouble bias configuration
- Try to append Mythic Type before spawning so that it's available in CreateSpawnEvent
Bug Fixes & Optimizations
-------------------------
- Added placeholder support to projectile gravity
- Added placeholder support to bonus damage fields
- Added `bonusDamageModifiers/bdm` to damage mechanics
- Improved BlockMatcher error handling
- Fixed mob spawn reason incorrectly being `PATROL`
- Fixed vanilla overrides overwriting mob options on chunk reload
- Fixed owner and parent AI goals on newer versions
- Fixed `~onSpawnOrLoad` not firing when no `~onSpawn` triggers existed
- Fixed multiple particle issues on newer versions
- Fixed projectile inaccuracy at extreme coordinates
- Fixed projectile sub-hitbox detection
- Fixed aura attachments not being removed when expired
- Fixed aura errors and concurrency issues on Folia
- Fixed numerous Folia regressions (projectiles, auras, delays, summoning)
- Fixed item attribute stacking issues
- Fixed player heads on 1.21.10
- Fixed invalid Base64 skull textures by auto-padding
- Fixed NPEs in meta skills, drop-table-less mobs, and onKnockbackEntity
- Fixed various BlockMatcher issues and improved error logging
- Fixed import command failing on non-Paper servers
- Fixed config loading issues caused by missing newline
- Fixed placeholder spam and stat placeholder timing issues
- Fixed recoil mechanic issues
- Fixed debug spam from meleeattack goal
- Fixed damage breaking in prior build
- Fixed look mechanic on no-AI entities
- Fixed skull-texture crashes in mob types
- Fixed plugin not loading on 1.21.10
- General refactoring and internal cleanup across systems
# 5.10.0 (Release)
## General
- Added **1.21.7** and **1.21.8** support
- Added `HAPPY_GHAST` entity type
- Performance: faster second-pass processing and improved caching for entity lookups and item parsing on reload
- Default config: added several missing options
## API & Events
- New: `MythicReloadCompleteEvent`
- New (core): `ReloadEvent`
- New: `MythicPlayerVariableSetEvent`, `MythicPlayerVariableRemoveEvent`
- `MythicHealMechanicEvent` now also calls `EntityRegainHealthEvent`
- Added meta access to `DamageMetadata`
- Added old meta access in `SkillTriggerMetadata`
- Added API groundwork for RPG cross-compatibility
## Placeholders
- Added `<target.armor>`, `<&lt>`, `<&gt>`, `<^dot>`, `<^dot2>`
- Added `PlaceholderAngle`
- Placeholders now supported in more places (e.g., item browser parsing)
- Fixed generic `int`, `float`, and `double` placeholders not parsing variables
- Fixed PlaceholderVector not working under complex cases
- Fixed placeholders with Item NBT (string/int/float/double) not resolving
## Variables
- New variable types: `Set`, `List`, `Map`, `Boolean`, `Vector`, `Time`, **Item**, **MetaSkill**
- [Meta Variable Placeholders](/Skills/Placeholders/meta-placeholders): `<[scope].var.[name].keyword>` with keyword chaining
- `Variable.ofType` updated; `PolymorphicPlaceholder` added
- Mob Variables can set all registered variable types
- Internals: relocated Default Variable handler for Crucible usage
## Mechanics
- **New**: [`ForEach`](/Skills/Mechanics/ForEach) and [`ForEachValue`](/Skills/Mechanics/ForEachValue)
- **New**: `ClearTarget` mechanic
- Updated: `variableadd` / `variablesubtract` to support new variable types
- Projectile family:
- Added many missing projectile options
- Added `startYOffset`, `startForwardOffset`, `startSideOffset` to `shoot` and `volley`
- Orbital family:
- Added placeholder support to `ParticleOrbital` radius
- Added `immuneDelay`; fixed multi-hit immunity
- Removed `hs` alias for `hugSurface`
- Improved targeting logic with orbitals
- Aura: `sync=true` now forces sync scheduler
- Look mechanic: minor behavioral tweaks
- Summon: fixed `useTargetYaw`/`useTargetPitch`
- Stun: fixed `freezeFacing` inversion; fixed on newer versions
## Teleport (Paper-only)
- **Added** options to all teleport mechanics (Paper):
- Teleport cause
- Vehicle retention
- Support for Paper `TeleportFlag`s
- Fixes: addressed regressions that broke teleport mechanics; additional polish to new options
## Targeters & Triggers
- Targeters:
- Added `shape` to `@EntitiesInRadius` and `@EntitiesNearOrigin`
- Added universal `upoffset` location attribute
- Triggers:
- Shulkers now support `onShoot` and `onBowHit`
- Fixed `onDeath` for falling block mobs
## Conditions
- **New**: [`VariableContains`](/Skills/Conditions/VariableContains)
- **New**: `projectileHasEnded`
- **New**: `isSkill{name=...}`
- `mythicMobType` condition: `exactmatch=false` option
- Added `xdiff` and `zdiff` conditions
- Fixed health conditional parsing triggers
## Items & Equipment
- Item flags: allow full flags (e.g., `HIDE_ATTRIBUTES`) in `Hide` field
- Compatibility: drop unsupported `HIDE_POTION_EFFECTS` on > 1.20.5
- Item systems:
- Faster item cache on reload (also parses placeholders/variables)
- Fixed tool rules (closes #2027)
- Fixed cases where item mechanics could fail
- Attempted fix for `vanillaonly=true` in `ItemMatcher`
## Mobs & Spawning
- Options:
- `Options.Aware: false`
- `Options.PreventKnockback`
- `Hidden: true` (prevents mobs appearing in lists) and fixed inheritance making it useless
- Datapacks: proper spawn location for mobs spawned by datapacks
## Holograms & Displays
- Holograms: fixed multiple regressions in previous builds
- Text display bullets:
- Added `bulletRotation`
- Fixed rotation code on 1.20_R1
## Compatibility & Misc
## Bug Fixes & Other
- Added placeholder support to summon radius attributes
- Fixed NPEs: startup (#2029), `MythicConfig`, `ForEach`, `Summon`, vector with `DisplayItem` totems, target setting
- Fixed recoil mechanic on 1.21.4+
- Fixed errors when other plugins call certain methods before load
- Fixed auras `IllegalStateException` introduced in a dev build
- Fixed level modifier errors (rare cases)
- Fixed `Log` mechanic message parsing
- Fixed `variableequals` warnings when target variable absent
- Fixed `onShoot` aura not setting `<skill.var.bow-tension>`
- Fixed various missile `verticalOffset` issues
- Fixed immutable list errors with glow on 1.21.8
- Fixed `setOwner`/`removeOwner` for all tameable types
Older Changelogs
================
- [5.10.X Changelogs](/changelogs/5.10.x_changelogs)
- [5.9.X Changelogs](/changelogs/5.9.x_changelogs)
- [5.8.X Changelogs](/changelogs/5.8.x_changelogs)
- [5.7.X Changelogs](/changelogs/5.7.x_changelogs)
- [5.6.X Changelogs](/changelogs/5.6.x_changelogs)
- [5.5.X Changelogs](/changelogs/5.5.x_changelogs)
- [5.4.X Changelogs](/changelogs/5.4.x_changelogs)
- [5.3.X Changelogs](/changelogs/5.3.x_changelogs)
- [5.2.X Changelogs](/changelogs/5.2.x_changelogs)
- [5.1.X Changelogs](/changelogs/5.1.x_changelogs)
- [5.0.X Changelogs](/changelogs/5.0.x_changelogs)
- [4.14.X Changelogs](/changelogs/4.14.x_changelogs)
- [4.13.X Changelogs](/changelogs/4.13.x_changelogs)
- [4.12.X Changelogs](/changelogs/4.12.x_changelogs)
- [4.11.X Changelogs](/changelogs/4.11.x_changelogs)
- [4.10.X Changelogs](/changelogs/4.10.x_changelogs)
- [4.9.X Changelogs](/changelogs/4.9.x_changelogs)
- [4.8.X Changelogs](/changelogs/4.8.x_changelogs)
- [4.7.X Changelogs](/changelogs/4.7.x_changelogs)
- [4.6.X Changelogs](/changelogs/4.6.x_changelogs)
- [4.5.X Changelogs](/changelogs/4.5.x_changelogs)
- [4.4.X Changelogs](/changelogs/4.4.x_changelogs)
- [4.3.X Changelogs](/changelogs/4.3.x_changelogs)
- [4.2.X Changelogs](/changelogs/4.2.x_changelogs)
- [4.1.X Changelogs](/changelogs/4.1.x_changelogs)
- [4.0.X Changelogs](/changelogs/4.0.x_changelogs)
- [2.5.X Changelogs](/changelogs/2.5.x_changelogs)
- [2.4.X Changelogs](/changelogs/2.4.x_changelogs)
- [2.3.X Changelogs](/changelogs/2.3.x_changelogs)
- [2.2.X Changelogs](/changelogs/2.2.x_changelogs)
- [2.1.X Changelogs](/changelogs/2.1.x_changelogs)
- [2.0.X Changelogs](/changelogs/2.0.x_changelogs)
- [Pre-2.0 Changelogs](/changelogs/pre-2.0_changelogs)
\ No newline at end of file