fix: read the DefaultItemOptions.PreventCrafting global from config-items.yml (cruci #327)
Development builds
Latest builds
perf: skip discarded work on trigger, targeter, and placeholder paths
View 8 more changes
- - Trigger dispatch no longer builds the mob's display name and entity name for a debug message that is discarded when debug is off
- - The pin wand no longer reads an item's full metadata twice per right click
- - Config values with no placeholder in them no longer build a lookup context they never read
- - Targeters that return a single entity use a plain list instead of a hash set
- - Damage triggers no longer look up the damaged entity's name for a discarded debug message
- - Cooldown lookups no longer read the clock before checking whether the skill has any cooldown state
- - Skills no longer fire the skill event when no plugin is listening for it
- - Setting a variable builds one placeholder context instead of two
perf: reduce per-tick work in skill dispatch, mob lookups, and damage events
View 6 more changes
- - Skill mechanics no longer do a map lookup on every execution just to build a debug message that is discarded when debug is off
- - Damage events no longer compute the final damage value and event name for that same discarded debug message
- - Mob lookups by UUID do one registry lookup instead of two or three
- - Stats with no modifiers skip the modifier sum instead of building it on every recalculation
- - Metaskills with parameters copy their data once instead of twice
- - World lookups in the adapter resolve in one step instead of two
feat: spawner editing in /mm menu, mob create/delete, and fixes for dead buttons
View 30 more changes
- Spawner Browser
- - Opens again (previously errored out if you had any spawner)
- - Shows mob type, world, coords, live mob count, cooldown/warmup
- - Left-click to teleport, right-click to edit
- - Create a spawner at your location
- Spawner Editor (was empty)
- - Edit Mob Type, Mob Level, Max Mobs, Mobs Per Spawn, Cooldown, Warmup,
- Spawn Radius, Spawn Radius Y, Activation Range, Scaling Range,
- Leash Range, Chance, Group
- - Toggle Use Timer, Check For Players, Show Flames, Breakable,
- Heal On Leash, Reset Threat On Leash, Random Rotation, Use World Scaling
- - Delete spawner (typed confirmation), reset timers
- - Saves to file immediately
- Mob Browser / Editor
- - Create Mob and Delete Mob buttons now work
- - Search / Filter now filters the option list
- - New stats: Attack Speed, Flying Speed, Knockback Resistance,
- Follow Range, Step Height, Scale
- - Get Mob Egg button is visible again; right-click it to spawn the mob
- Commands
- - /mm menu spawners (alias: /mm menu s) opens the Spawner Browser
- - /mm menu spawners <name> opens that spawner's editor
- Fixes
- - Right-clicking Set Faction deleted the whole mob from its config file
- - Right-clicking Health/Damage/Armor silently errored instead of clearing
- - Removed or wired up buttons that did nothing, fixed copy-pasted
- "Create Mob" / "Filter Mobs" labels in the spawner menus
- - Toggle View no longer cycles a "Groups" mode identical to "Show All"
- - Drop Table and Random Spawning browsers are still unbuilt, but now
- say so instead of just playing a decline sound
fix: mob lookups before registration rebuilt the mob from PDC and fired ~onLoad
feat: Hidden option for metaskills, respected by more command suggestions
View 10 more changes
- - Keep internal mobs, items and skills out of tab-completes with
- `Hidden: true`.
- - Skills support it now, and it works in more places for mobs and items. Goes at the top level, not under Options:
- ```yaml
- my_utility_skill:
- Hidden: true
- Skills:
- - message{m="Called by other skills, never typed by hand"}
- ```
- - Hidden things still work, they just stop being suggested. You can spawn, give or cast them by full name, and `/mm mobs list` still shows everything.
fix: menu icon Hide was inert and TooltipStyle unsupported (#2313)
fix: inline ? and Conditions checked the target instead of the caster
View 1 more changes
- build 6088 caused small bug, now both sides should properly be fixed.
feat: riding, passenger and passengers placeholders
feat: execution audiences
fix: threattable called getEntities async
View 1 more changes
- ps: includes small performance gains too
fix: inline mechanic conditions checked the caster instead of the actual target
fix: itemissimilar never matched an empty slot against AIR
fix: mythic eggs threw IllegalAccessError on 26.2
fix: forced-sync metaskills ran on Folia's global region thread
feat: add text display opacity mechanic
feat: damage-dealt skill variable
View 7 more changes
- ```yaml
- Skills:
- - damage{a=10} @target
- - command{c="say took <skill.var.damage-dealt>"}
- ```
- Holds what the target actually took after armor and resistance (9.84 here), not the configured 10.
- Readable on any later line and inside a then block, on every damage mechanic.
fix: PreventVanillaDamage reported damage to ~onAttack (#2294)
feat: `then` option on the damage mechanic, held on the damage landing (#2309)
View 6 more changes
- ```yaml
- Skills:
- - damage{a=2;then=RecoilScreen} @PlayersInRadius{r=5}
- ```
- Until now there was no way to tell who a damage mechanic actually hit, only who was in the targeter's range. then runs a skill per target the damage was really applied to, skipping the ones that were invulnerable, dead, in immunity frames, or resistant.
- Shield-blocked hits still count as landed.
fix: % (remainder) never enabled math mode in placeholders
hide mechanic
fix: handle null spawner map in ClusterGenerator tick (Folia race)
Fixed the Velocity Placeholders as there was a previous bug related to how Minecraft handeled player velocity for ground movement
feat: added `ThreatTable.DropUnreachableSeconds: 10` option for mobs, allows you to configure how long a mob will take to drop a target that it cannot reach
Fixed runaigoal mechanic setting everything to priority 1 and stacking multiple not really working
extended functionality for Custom Equippable slots to allow more interesting behavior:
View 7 more changes
- - Added `Overrides:` which conditionally allows for changing configured attributes of a slot, such as their Material or Display
- - Added `AllowStackedItems` Function, which allows for items put into the slot to be of a stack instead of only one
- - Added `AllowedItems` Function, which when a list is given will allow items using the ItemMatcher (mythic IDs or vanilla item IDs, tags, etc)
- - If this is just set to `true` instead, will allow any items in the slot
- - Fixed bug with player data json writing, which causes Equippables to not persist between restarts/rejoins
- - Fixed a bug where vanilla items would be able to be somewhat placeable in equipslots in general, causing voiding of the items
- This is a two parter done via MM and Cruci
refactoring
feat: initial 26.1 support, requires java 25
fix: threat not dropping even if LOS is blocked for 10 seconds
fix: #2155