Voxel Shop beta is live. Expect occasional bugs. Learn more
The #1 RPG experience for Minecraft!
NOTES:
To get the lower Pale_Hanging_Moss XP, set 'Experience_Values.Herbalism.Pale_Hanging_Moss' to 1 in experience.yml, or delete experience.yml to generate a new one.
NOTES:
NOTES:
-- Combat abilities on Paper 26.1.2+ --
Paper 26.1.2 changed attack cooldown timing during melee hits, which silently weakened these effects to a fraction of their configured damage and activation rates. Version 2.2.053 fixed most damage bonuses; this build fixes the remaining effects. No config changes required.
The activation chance of Disarm, Critical Strikes, Armor Impact, and Greater Impact scales with the vanilla attack cooldown, but that scaling was only being applied to players with the Lucky perk. Weak attacks now lower the odds for everyone; this affects all server software, not just Paper.
(API) UnarmedManager#berserkDamage/disarmCheck, AxesManager#criticalHit/impactCheck/greaterImpact/skullSplitterCheck, SwordsManager#processRupture/serratedStrikes, MacesManager#processCripple, SpearsManager#potentiallyApplyMomentum, CombatUtils#applyAbilityAoE, and McMMOPlayer#getAttackStrength are deprecated in favor of overloads that take an attack strength scale.
-- Skill RNG --
Only affects servers running plugins that adjust mcMMO skill success chances through the API; adjusted chances were previously reduced to roughly one hundredth of their intended value, making affected skills almost never succeed.
-- Silent flag for XP commands --
/addxp, /addlevels, and /mmoedit accept -s as the last argument to run silently; the flag now also silences the confirmation echoed back to the command sender. Plugins that award XP by dispatching these commands from the console should append -s to keep the server log quiet.
-- Invalid skill name messages --
Skill name lookups that do not match any skill (usually other plugins validating names through the API, but also command typos) no longer print an 'Invalid mcMMO skill' warning to the console. The message is now debug output, visible by enabling 'General.Verbose_Logging' in config.yml.
-- Potions --
REGENERATION potion entries and their long/strong variants in potions.yml, treasures.yml, and fishing_treasures.yml could fail to load. Old names like REGEN still convert correctly, no config changes are needed.
-- Scoreboards and power level tags --
Scoreboards on Folia (and Folia forks like Canvas) now use a packet-based implementation, since the Bukkit scoreboard API is not safe to use there. Paper and Spigot servers keep the existing Bukkit scoreboard implementation and are unaffected.
If a Folia server runs a newer Minecraft version than this mcMMO build supports for packet scoreboards (currently the 26.2.x line), scoreboards are disabled with a startup warning until mcMMO updates.
(API) The packet-based implementation still fires McMMOScoreboardMakeboardEvent and McMMOScoreboardRevertEvent, but there is no Bukkit Objective on Folia so McMMOScoreboardObjectiveEvent is not fired there.
Power level tags could get stuck showing 0 for players whose data was still loading, and older builds with 'Power_Level_Tags' enabled could leave stale power level displays saved in world data; leftovers are now cleaned up automatically on startup. On Minecraft 26.1 clients the power level can still render on holograms and pets due to a client bug that Mojang fixed in 26.2.
-- Salvage and Repair --
The Salvage/Repair confirm click now has to be made with the same item that triggered the prompt; if the held item changes during the confirmation window you get a new prompt instead. While a confirmation is pending the prompted item can't be used, which stops vanilla armor quick-swap from equipping or swapping armor mid-confirmation.
-- XP and exploit fixes --
Multi-block plants (bamboo, sugar cane, kelp, cactus, chorus trees, and hanging vines) now grant XP for the rest of the plant only after those blocks have actually broken, so breaking a segment and instantly replacing it no longer pays XP for blocks that never broke. Cactus and chorus trees also now grant XP for the whole plant instead of just the block that was hit. No config changes are needed.
The mcmmo.perks.xp.25percentboost permission family now behaves like the 10, 50, and 150 percent variants; previously only mcmmo.perks.xp.25percentboost.all had any effect.
Dodge XP farming prevention now has its own 'ExploitFix.AcrobaticsDodgeXpFarming' setting in experience.yml, enabled by default; existing config files do not need updating. A single mob stops handing out Dodge XP after a handful of dodges and recovers after about a minute without being dodged. 'ExploitFix.Acrobatics' continues to control the Roll anti-exploit checks.
'ExploitFix.Combat.XPCeiling.Damage_Limit' in experience.yml now works; the combat XP damage ceiling was previously always 100 no matter what the config said. Customized values take effect after updating, no config changes are needed.
Fishing's overfishing and spam-fishing checks now run before other plugins process the catch, so fishing plugins (for example EvenMoreFish) can tell when mcMMO denies a catch instead of having their custom catches deleted after the fact. Denied catches still pay no mcMMO rewards. No config changes are needed.
-- Placed-block tracking --
If a world's build height limits were ever reduced (for example after removing a data pack that raised them), loading that world's placed-block data could fail or mark the wrong blocks as player-placed. Markers inside the new limits are kept at their correct positions; only blocks outside the new limits are forgotten.
-- Commands --
Localized skill commands (for example /faustkampf for /unarmed on a German locale) are now visible to command whitelist and command blocking plugins exactly as the player typed them. If you use such a plugin, whitelist the localized command name.
Using /inspect on offline players now requires the 'mcmmo.commands.inspect.far' permission, the same node that gates inspecting far away players. Grant that node if non-op players on your server relied on inspecting offline players.
The /mclevelupsound toggle (alias /levelupsound) only affects the level-up sound, not level-up messages, and lasts until logout like /mcnotify.
/xprate without arguments shows the current XP rate. Players get this through the new 'mcmmo.commands.xprate.show' node, granted by default since the rate is already broadcast at event start and shown on join.
-- Skill names in messages --
Messages that mention a skill name (level up broadcasts, XP command feedback, /mcrank and /mctop, ability cooldown notices, and similar) now use the nicely capitalized names from the 'Overhaul.Name' locale entries (like Mining) instead of the all-caps 'SkillName' entries (like MINING). The stylized headers keep the all-caps names: skill command screens, guide headers, and scoreboards. If your server renames skills by overriding '<Skill>.SkillName' in a locale override file, also override the matching 'Overhaul.Name.<Skill>' entry so messages pick up the rename.
New PlaceholderAPI placeholders expose both styles for every skill: %mcmmo_skillname_<skill>% returns the message name (like Mining) and %mcmmo_skillname_header_<skill>% returns the header name (like MINING). Both follow the server locale and any overrides.
-- XP rate events --
/xprate now accepts a skill name: /xprate mining 5.3 boosts only Mining, and 'all' targets the global rate like before. Child skills (Salvage, Smelting) have no XP of their own and are rejected. The true/false event argument is optional and defaults to true.
Changes made with false never start or end an event. They are still announced, but without the event banner, and if a higher global event rate keeps applying to that skill the broadcast says so.
Per-skill rates and the global /xprate rate do not stack with each other; whichever is higher applies. Multipliers from experience.yml and XP perks still apply on top as usual.
Rates below the configured rate in experience.yml are rejected to prevent accidentally lowering XP. /xprate reset restores the configured rates and clears every per-skill rate at once.
Setting a global rate also clears any per-skill rates at or below it, since the higher rate always wins; the sender is told which rates were cleared.
/xprate with no arguments (or /xprate show) reports when no XP rate event is active, and otherwise lists the global and per-skill rates with how long each has been active.
During an event, joining players are told about active per-skill rates alongside the global rate.
-- Level up commands --
Level up commands are configured in the new level_up_commands.yml file; each entry lists the commands to run plus a trigger, either skills with levels or power_levels, and an optional run_as of CONSOLE (default) or PLAYER. The shipped example entries are disabled by default.
Level up commands support placeholders: {@player}, {@skill}, {@level}, {@power_level}, and current-level placeholders like {@mining_level}. When PlaceholderAPI is installed, its placeholders are also resolved against the player who leveled up. Commands run once per milestone reached, even when several levels are gained at once.
(API) LevelUpCommandAPI registrations return an id that can be used to unregister them later; registrations made by other plugins survive mcMMO config reloads.
-- Sounds and abilities --
Skill rank unlock notifications now stream out one at a time every 0.25 seconds per player instead of batches spaced 5 seconds apart. Every unlock is still notified; a mass change like /mmoedit all delivers all of its notifications within seconds.
Cripple now plays a single sound, the mace smash ground sound by default instead of an anvil sound; adjust or disable it with the CRIPPLE entry in sounds.yml. The mace sound only exists on Minecraft 1.21 and newer, the same versions maces exist on.
Sounds that can't be resolved (for example a typo in a CustomSoundId) now log a single warning and are skipped; on Spigot 1.21.3 and newer they previously caused an error every time the sound tried to play.
Ability durability loss now always uses the item's own maximum durability, so items with a custom max_damage component (from data packs or item plugins) no longer break super abilities or appear to restore durability.
-- Event handling --
The fishing rewards handler, the interaction handler that activates abilities and consumes items, the Berserk insta-break on block damage, and the inventory click and open handlers that strip ability buffs now run at HIGHEST priority instead of MONITOR, so plugins reading these events at MONITOR reliably see mcMMO's changes. If another plugin also modifies these events at HIGHEST priority, its ordering relative to mcMMO may have changed; please report any new conflicts with other plugins after updating.
-- Config --
Skill rank unlock messages can be shown on the action bar by setting 'Feedback.ActionBarNotifications.SubSkillUnlocked.SendToActionBar' to true in advanced.yml, with 'SendCopyOfMessageToChat' deciding whether the chat still gets a copy. Nothing changes unless you enable it. The section uses 'SendToActionBar' instead of 'Enabled' because older configs already contain a leftover 'Enabled: true'; that key is ignored so updating cannot silently change behavior. advanced.yml auto-updates on startup.
'Skills.Mining.BlastMining.RemoteDetonationDistance' in advanced.yml controls how far away Blast Mining can remotely detonate TNT. The default of 100 matches the old fixed distance; advanced.yml auto-updates on startup.
The removed 'Scoreboard.Types.Skill.LevelUp_Board' and 'LevelUp_Time' settings had been broken for years and did nothing regardless of their values. Leftover keys in existing config files are ignored and can be deleted; nothing visible changes.
-- Database --
'Database_Purging.Old_User_Cutoff' now actually removes inactive users on both FlatFile and SQL databases. If you have purging enabled, expect the first purge after updating to remove old users that should have been purged before. Users whose last login can't be determined are kept.
-- PlaceholderAPI leaderboard rank-position placeholders --
New placeholders request leaderboard positions directly:
%mcmmo_mctop_<skill>:<position>% -> skill level at that rank (e.g. %mcmmo_mctop_mining:1%)
%mcmmo_mctop_name_<skill>:<position>% -> player name at that rank (e.g. %mcmmo_mctop_name_mining:34%)
For overall power level use 'overall', 'all', or 'powerlevel' as the skill name; all three map to the same data (e.g. %mcmmo_mctop_powerlevel:25%).
'General.PlaceholderAPI.Leaderboards.Max_Tracked_Rank' controls the highest supported position. Default is 100, clamped between 10 and 1000 since higher positions cost memory and database reads on every cache refresh.
Positions above that value, invalid positions (blank, non-numeric, 0, negative), and positions no player currently holds all return an empty result.
'General.Leaderboards.Refresh_Interval_Seconds.FlatFile' (default 600, matching previous behavior) controls how often FlatFile leaderboards are rebuilt and affects /mctop, /mcrank, and the placeholders.
'General.Leaderboards.Refresh_Interval_Seconds.SQL' (default 60) only governs the placeholder cache; /mctop and /mcrank on SQL always query live data.
Both intervals have a 60 second minimum. Placeholder requests are served from cache between refreshes.
Each refresh reads every leaderboard in one pass; on FlatFile that is a single scan of the user file. Refreshes pause while no leaderboard placeholder is in use and resume on the next request, so servers that never use them do no recurring cache work.
-- SQL leaderboard performance --
Leaderboard queries on SQL databases are now much faster on servers with large player tables. mcMMO automatically adds per-skill indexes to the skills table on startup when they are missing; on very large databases the first startup after updating may take longer while they build. This runs once, is safe to re-run, and mcMMO starts normally even if an index cannot be added. Fresh installs include the indexes, skill columns added by future updates get theirs automatically, and an existing idx_<skill> index that covers a different column is assumed deliberate and left alone.
Renamed players leave a database row under an internal placeholder name; on SQL these rows could appear in /mctop and the leaderboard placeholders and were counted in /mcrank positions. They are now excluded from all of them.
Players with identical levels on SQL databases are now ordered newest-registered-first in /mctop, /mcrank, and the leaderboard placeholders (previously alphabetical by name), and /mctop and /mcrank agree on tie positions. FlatFile databases still order ties alphabetically.
-- Child skill levels through the API --
Adding levels to Salvage or Smelting through the mcMMO API caused an error for online players. Child skills have no levels of their own, so added levels now split evenly across the skill's parent skills, matching how child skill XP and the offline API variants already behaved.
- Added compatibility for new blocks and items from Chaos Cubed (Minecraft 26.2) to mcMMO
- Fixed party/admin chat allowing players to use color codes without the 'mcmmo.chat.colors' permission
- Fixed reconnecting sometimes clearing a player's diminished XP returns early
- Fixed Folia thread-check errors when ranged attacks triggered Taming wolf assist targeting
- Fixed right-clicking to strip wood also readying the axe for Tree Feller
- Fixed Super Breaker not activating on deepslate bricks and deepslate tiles
- Fixed invalid or malformed treasure entries being able to disable mcMMO on startup (See notes)
- Fixed potion treasures with Extended or Upgraded potion data giving the wrong potion in treasures.yml and fishing_treasures.yml
- Fixed fishing treasures with an unrecognized Rarity being silently added to the COMMON reward pool (See notes)
- Added a Combat XP multiplier for the Sulfur Cube to experience.yml
- Added a Herbalism XP value for Golden Dandelion to experience.yml
- Added the 'Bounce' music disc as a very rare Excavation treasure to treasures.yml (See notes)
- Added Mining XP values for all new Cinnabar block variants to experience.yml (See notes)
- Added Mining XP values for all new Sulfur block variants to experience.yml (See notes)
- Added Mining XP values for Potent Sulfur and Sulfur Spike to experience.yml
- Changed treasure entries using potion types that don't exist in the server's Minecraft version to be skipped quietly like other incompatible treasures
- Improved misconfigured treasure entry logging to use warnings that name the exact problem and config key
- (Codebase) Reworked treasure config loading (TreasureConfig, FishingTreasureConfig) to classify each entry as loaded, incompatible, or invalid with a per-section load summary
- (Codebase) Consolidated duplicated treasure config loading logic from TreasureConfig and FishingTreasureConfig into a shared TreasureEntryLoader helper
- (Codebase) Added unit tests for treasure entry classification and fishing drop-rate validation
NOTES:
- experience.yml auto-updates on startup, so the new Mining, Combat, and Herbalism values are added to existing configs automatically.
- The new Mining XP values cover the full Cinnabar and Sulfur block sets: the base blocks, their polished, brick, and chiseled versions, and the stairs, slab, and wall variants of each.
- treasures.yml does not auto-update; to get the 'Bounce' Excavation treasure on an existing server, add the MUSIC_DISC_BOUNCE entry to treasures.yml manually or delete the file to regenerate it (a copy of the default is saved to defaults/treasures.yml).
- Treasure configs (treasures.yml, fishing_treasures.yml) no longer fail startup on a bad entry. Entries whose material or potion type does not exist in your Minecraft version are skipped quietly. Misconfigured entries are logged with their key so you can find and fix them, and each section reports how many treasures loaded.
- Fishing treasures with an unrecognized Rarity are now skipped with a warning naming the entry so you can fix it; previously they were silently treated as COMMON. If a custom fishing treasure stops dropping after updating, check your startup log for the warning.
NOTES:
-- Read this first if you already updated to a newer Paper 26.1.2+ build --
mcMMO stores block data as '.mcm' files in each world's 'mcmmo_regions' folder.
Paper's world migration copies world_nether and world_the_end into new directories, but did not copy over mcMMO region files for those worlds, which results in data loss.
The main risk is for 'world_nether' and 'world_the_end', because Paper migration can remove old non-overworld roots before plugins load.
The Overworld (your main 'world') is safe because Paper keeps that folder and all mcMMO data in-tact (but no longer in the "right" spot), so mcMMO can still migrate existing overworld '.mcm' data and will do so when you run this update if it finds any.
Given you are reading this if you already updated Paper and got the new world migration BEFORE updating mcMMO, then you have this option which is not perfect to recover lost mcmmo_region data.
Recovery steps:
1) Stop the server fully.
2) Find mcmmo_regions data in any manual backups you make of your server/worlds
3) Copy recovered '.mcm' files for Nether/End only into these live folders (create folders if missing):
Nether: 'world/dimensions/minecraft/the_nether/mcmmo_regions/'
The End: 'world/dimensions/minecraft/the_end/mcmmo_regions/'
Do NOT manually copy old overworld '.mcm' files into 'world/mcmmo_regions/' in this scenario, only do this for nether and the end.
For your main world, mcMMO safely merges surviving overworld data on startup, and manual overworld copy/overwrite can lose some data.
4) Start the server.
This is an imperfect solution depending on how long your server has been running post updating Paper 26.1.2 before updating mcMMO, as the data will have drifted to some degree (mostly impacts data for the end and nether as stated before).
-- Read this if you have NOT updated Paper yet, or if you use Spigot instead --
Update mcMMO first, then run the server at least once with this mcMMO build before updating server software.
On a normal shutdown, mcMMO will make backups of its region files.
After that, you are safe to update to the newest Paper builds.
-- Read this if you don't know whether you already updated to the new Paper world format --
Identify the format by checking your world folders:
Old/legacy layout looks like this:
'world/'
'world_nether/'
'world_the_end/'
New Paper 26.1+ layout looks like this:
'world/'
'world/dimensions/minecraft/the_nether/'
'world/dimensions/minecraft/the_end/'
Quick check: if you see 'world/dimensions/minecraft/the_nether/' and 'world/dimensions/minecraft/the_end/', you are already on the new Paper format.
If you already have the new layout and only updated mcMMO now, mcMMO will safely migrate any surviving overworld '.mcm' data from 'world/mcmmo_regions/'.
This operation is safe and merges with any new data mcMMO finds.
In this scenario, only restore '.mcm' files manually for Nether/End.
Do NOT manually copy old overworld '.mcm' files into 'world/mcmmo_regions/' because that can overwrite merged data and lose some entries.
In that same scenario, old nether/end '.mcm' data is already gone, so copy those '.mcm' files from any manual backups you have and place them in:
'world/dimensions/minecraft/the_nether/mcmmo_regions/'
'world/dimensions/minecraft/the_end/mcmmo_regions/'
If you are already on the new format, follow the first section above for full recovery steps.
If you still have the old layout, follow the section above for Spigot/old Paper: update mcMMO first, run once, then update Paper.
-- Read this if you use Spigot and never plan to use Paper in the future --
You can disable the shutdown migration backup behavior with 'General.RegionDataMigrationBackups' in config.yml
Default is 'true'. Set it to 'false' if you are sure you will stay on Spigot and do not need mcMMO to make backups of its region files.
In simple terms: this setting controls whether mcMMO makes extra '.mcm' safety copies during shutdown for future Paper world-layout migration.
Turning it off reduces extra backup work on shutdown, but removes that Paper-migration safety net.
OTHER NOTES:
- Fixed Mooshroom Shake drops not loading due to wrong entity ID in fishing_treasures.yml (see notes)
- Fixed Minecraft version detection failing on Spigot servers, causing Tricky Trials potions to be skipped
- Fixed Woodcutting bonus drops (Harvest Lumber, Clean Cuts) and Excavation treasure drops bypassing BlockDropItemEvent, making them invisible to Telekinesis-style enchant plugins (See notes)
- Skill info tooltip colors are now fully customizable via locale strings — all colors in JSON hover components are driven by locale keys and support & codes, hex colors (&#RRGGBB), and [[COLOR_NAME]] tokens
- Fixed incorrect effect durations for splash and lingering variants of Infestation, Weaving, Wind Charging, and Oozing potions in potions.yml (Thanks Warriorrrr) — existing servers are auto-migrated on first startup
- Fixed an exploit where arrows from multishot crossbows could be recovered in regions protected by WorldGuard
- Fixed an exploit where renamed seeds could trigger Green Thumb crop replanting without being consumed
- Fixed an exploit where renamed mushrooms could trigger Shroom Thumb without being consumed
- Fixed bug where Powered Shot (Crossbows) was reading MaxDamage from the Archery config section instead of its own
- Fixed bug where Smelting Vanilla XP multiplier was not using Skills.Smelting.VanillaXPMultiplier values from advanced.yml
- Fixed Fishing skill only working with main-hand fishing rod when fishing
- Fixed bug where Block Cracker (Unarmed/Berserk) had no effect on deepslate_bricks, deepslate_tiles, polished_blackstone_bricks, and nether_bricks
- Fixed Verdant Bounty (Herbalism) never triggering triple drops — the subskill was defined and displayed but was never checked during block break processing
- Fixed bug where mob custom names could be permanently corrupted after healthbar display (see notes)
- Fixed bug where vanilla mobs (null custom name) had their name incorrectly restored as an empty string instead of null after healthbar display
- Fixed bug where hitting a mob multiple times during the healthbar display window caused the name to restore too early (see notes)
- Changed mcMMO behavior around immature crop drops, no longer blocking drops from immature crops (See notes)
- Removed Patreon and language translation links from the skill command URL bar
- Added missing default value for 'Skills.Acrobatics.GracefulRoll.DamageThreshold' to advanced.yml
- Added 'Skills.Crossbows.PoweredShot.RankDamageMultiplier' to advanced.yml
- Added 'Skills.Crossbows.PoweredShot.MaxDamage' to advanced.yml
- Added 'Skills.Maces.Crush.Base_Damage' to advanced.yml
- Added 'Skills.Maces.Crush.Rank_Damage_Multiplier' to advanced.yml
- Added 'Skills.Tridents.Impale.Base_Damage' to advanced.yml
- Added 'Skills.Tridents.Impale.Rank_Damage_Multiplier' to advanced.yml
- Added 'Skills.Repair.ArcaneForging.MaxEnchantLevel' to advanced.yml (See notes)
- Added 'Skills.Salvage.ArcaneSalvage.MaxEnchantLevel' to advanced.yml (See notes)
- Updated Simplified Chinese (zh_CN) locale with new Spears and Maces translations, color-code spacing fixes, improved fishing messages, and corrected ability wear-off message formatting (Thanks GhostDC)
- Added & color codes to JSON hover tooltip keys and new JSON.URL.*.Detail, JSON.URL.Header, for consistency with locale_en_US.properties
- (Codebase) Updated deprecated durability API usage to ItemMeta Damageable API (see notes)
- (Codebase) Removed obsolete multishot arrow metadata marker system, modernized to native Spigot/Paper APIs
- (Codebase) Simplified crossbow arrow handling by eliminating unnecessary custom metadata tracking
- (Codebase) Replaced three separate healthbar metadata keys with a single HealthbarSnapshot record, eliminating duplicate restore logic spread across MobHealthDisplayUpdaterTask, CombatUtils, and TransientMetadataTools
- (Codebase) Rewrote MobHealthDisplayUpdaterTask as a self-managing repeating polling task using lastHitMs timestamps to extend the display window on re-hits, replacing the single-shot runAtEntityLater approach
- (Codebase) Removed unused Roll.printInfo(), Roll.getMechanics(), and Roll.getStats() overrides; deprecated SubSkill interface methods getStats() and getMechanics() for removal
- (Codebase) LocaleLoader.formatComponent() now supports [[NAME]] color tokens (e.g. [[RED]], [[DARK_AQUA]], [[BOLD]]) by translating them to & codes before Adventure serialization, so all three mcMMO color formats (&X, &#RRGGBB, [[NAME]]) work in JSON hover components
- (Codebase) Rewrote TextComponentFactory to use LocaleLoader.getTextComponent() throughout, eliminating all hard-coded NamedTextColor constants from JSON hover component construction — all colors and text are now fully configurable via locale strings
- (Codebase) Added locale keys JSON.Type.Passive, JSON.Type.Active, JSON.Type.SuperAbility, JSON.Locked, JSON.LevelRequirement, JSON.DescriptionHeader, JSON.URL.*.Detail, JSON.URL.Header, JSON.URL.Label.* with appropriate & color codes in locale_en_US.properties
- (Codebase) Modernized McMMOWebLinks enum with getDescriptionComponent(), getDetailComponent(), getLabelComponent() methods returning proper Adventure TextComponents
- (Codebase) Removed dead TextUtils.addChildWebComponent() method
- (Codebase) Bumped api-version in plugin.yml from 1.13 to 1.20.5, eliminating legacy bytecode field-rename shims applied by the server at load time
NOTES:- The Mooshroom Shake fix is auto-migrated at startup (Shake.MUSHROOM_COW → Shake.MOOSHROOM in fishing_treasures.yml).
- Regarding the telekenisis plugin compatibility fix, Tree Feller is not yet fixed, I will try to address it in the near future.
- In this update I've added two new advanced.yml settings for more granular control of the enchant level cap for both Repair and Salvage, this is an alternative to flipping on ExploitFix.UnsafeEnchantments in experience.yml which simply uncaps both skills.
- If ExploitFix.UnsafeEnchantments happens to be enabled in experience.yml, it will override both of these new settings and therefor allow basically uncapped enchant levels for Arcane Forging and Arcane Salvage.
- Allowing the old setting to override is mostly for backwards compatibility so we don't disrupt any existing server behavior.
- If you have this setting on, but you want to use the new more granular settings, simply turn off ExploitFix.UnsafeEnchantments and configure the new settings to your liking.
- Regarding immature crops, mcMMO used to block them from dropping and just replanted them instead, now they will drop and only replant if you have the relevant seed in inventory, which matches vanilla behavior better.
- The fishing hand-context changes in this update may fix reports where off-hand fishing seemed quicker than main-hand fishing.
- Durability handling now uses ItemMeta Damageable APIs instead of deprecated ItemStack durability methods.
- This may address some custom armor durability issues, but if you can still reproduce custom armor repairing when struck by axes, please report the bug with exact reproduction steps and custom-item/plugin details.
- The mob custom name corruption bug: if a mob was hit again before the healthbar display timer expired, the healthbar string was being saved as the "original" name, so the mob would permanently show healthbar text after the timer fired.
Fixed bug which caused trickshot-bounced arrows to have much longer potion durations than intended (Thanks flyncodes)
Fixed bug where using a stacked Chimaera Wing with warmup enabled would delete the entire stack instead of consuming only the use cost (Thanks UDPSendToFailed)
Fixed Daze (Archery) teleport causing players to snap back to their death/teleport location when hit simultaneously with a kill or world change
Default value for Glow_Lichen is now 1 instead of 5 (update experience.yml to get this change, or delete file and regenerate it)
NOTES:
There weren't any changes needed in mcMMO for the Tiny Takeover Minecraft update, so no issues there.
From 2.2.050 onwards, mcMMO will require Minecraft versions 1.20.5 or newer.
Every now and then I raise the minimum supported Minecraft version to reduce maintenance burden of supporting older versions.
mcMMO no longer monitors PlayerAnimationEvent, it turns out Spigot has a DamageType just for Spear damage, avoiding the need to track player arm swings.
I changed how mcMMO detects the game version slightly, now if it fails to determine the game version it will make the assumption you are on the minimum supported version and print an error, this is just a failsafe in case the version detection mechanism ever fails.
This hotfix fixes some errors that happen when running versions of Minecraft prior to Mounts of Mayhem (1.21.11) with mcMMO
Fixed copper armor and tools not working with Repair or Salvage
Notes:
The new sounds.yml config file allows you to override the sounds played by mcMMO.
Simply define the ID of the sound you want to play for each sound.
For example, add an entry for Sounds.TOOL_READY.CustomSoundId into sounds.yml to override the sound played when a tool is "readied".
If you are on older versions (1.18, 1.19, etc), instead of registering an ID, you specify the Sound enum.
Those who are on newer versions, can define the ID of any sound registered with Paper/Spigot, this allows you to even play custom sounds so long as they are loaded on the server.
Vanilla Minecraft sounds have IDs in this format "minecraft:ui.toast.challenge_complete", you can google what these keys are.
Fixed hover component and action bar messages not working for 1.21.6 and 1.21.7
Fixed bug where entries of mctop could be duplicated when using FlatFile
Fixed bug where a party leader could leave a party and the party would be left without a party leader
Fixed a bug where EcoEnchants and similar plugins could cause an infinite loop within mcMMO during TreeFeller and other abilities
Added 'Happy_Ghast' to experience.yml for combat XP
Added 'Ghastling' to experience.yml for combat XP
Updated Japanese (ja_JP) translation (Thanks ryota-abe)
Updated Simplified Chinese (zh_CN) locale (Thanks GhostDC)
Added StackOverflow safeguards for abilities dealing damage in mcMMO
Improved compatibility with MythicMobs/ModelEngine
Improved compatibility with AdvancedEnchantments
Fix potion match failing for non-english locales
FoliaLib Performance improvements (thanks SirSalad)
Fixed situations where Rupture could never end which affected server performance