Repository navigation
Releases: TF-Minecraft/Magic
Releases · TF-Minecraft/Magic
Release list
v0.13.0
Changes
- Add staff commands to inspect and reset a character's Magic profile, adjust equilibrium, and manage casting mode.
- Add explicit resonance removal and consistent validation, configured bounds, immediate saving and rollback on save failure.
- Add held-artifact aura, muffling and wear controls, plus weapon Rift and remaining-durability controls.
- Include staff command documentation and Dev integration checks. Player gameplay and recipes are unchanged.
Merged PR: #70.
Downloads
v0.12.2
Changes
- Artifacts no longer muffle for time spent in a player's hands. (#69)
- A housed artifact holding aura with no lore change never saved its care clock. Placing it on a pedestal or display then charged the whole time since (for example a night in the inventory) as unhoused: 10 h gave Muffled: 41.67%.
- Housed artifacts holding aura now re-anchor their clock every scaled minute (error at most ~0.07% muffle).
- Placing an artifact on a pedestal or display from the hand counts the time before as housed.
- Breaking a pedestal or display, or punching or breaking an item frame, ticks the artifact as housed before it drops.
- Aura decay is applied whenever the care clock moves, so no elapsed time is lost.
- Artifacts left in chests or other containers still muffle as before.
- Gear station rows drop finished intents. (#69)
deposit-intentandcharge-intenthold full inventory snapshots (100–200 KB per row) and were kept for as long as the weapon stayed on the station, sogear-stations.yml(re-read on every station click) would grow again.- They are now removed once a deposit is active or a charge settles or is cancelled. Held (interrupted) rows keep them as evidence.
- Existing rows lose old intents the next time they are updated.
Upgrade notes
- No config change.
- Includes everything in v0.12.1 and earlier.
Downloads
v0.12.1
Changes
- The hourly gear-estate pass skips estates it has already settled. (#68)
- Decided estates stay decided for good, and every hour Magic settled all of them again. Each settle reads
gear-stations.ymlseveral times on the server thread. - On 2026-10-21, with a 5.4 MB file and 13 estates decided at once, that froze Main for 20–30 s every hour.
- A revision Magic has already reported DONE is now skipped until the next restart. RETRY and BLOCKED answers and new revisions are still settled every hour.
- The first pass after a restart still settles every decided estate once.
- Decided estates stay decided for good, and every hour Magic settled all of them again. Each settle reads
- Gear that reaches an already-settled estate later (for example a station recovered by staff) moves at the first pass after the next restart, not within the hour.
Upgrade notes
- No config change.
- Includes everything in v0.12.0 and earlier.
Downloads
v0.12.0
Changes
- Spell casts wear mage weapons. Every spent cast (a success, or an overload or rift fumble) now takes 1 durability from the held staff, wand or blade. Refused casts are still free. (#67)
- The amount is
cast.wear_per_castinconfig.yml(default 1; 0 turns it off). A missing key means 1. - Before this, cast wear only looked at MMOItems custom durability, which mage weapons don't use, so casts never cost anything.
- The amount is
- Worn-out weapons refuse instead of breaking. The last point of durability is never spent. A weapon on its last point refuses spells and wand shots with a "Worn out" title (and a throttled chat line for spells) until it is repaired, for example with a Magical Repair Kit. MMOItems would otherwise delete a mage weapon whose durability runs out.
- Skins no longer wear weapons in melee. ArmourShop skins tag weapons as ItemsAdder items, and ItemsAdder wore them on every melee hit. That wear is now cancelled on staffs and wands. Unskinned iron mage blades keep their normal melee wear, but wear that would reach the last point is cancelled.
- Wand left-click shots still cost 1 durability each, as before.
Upgrade notes
- No config edit is needed. The new
messages.ymlkeys (cast.worn_title,cast.worn_sub,cast.worn_chat) have built-in defaults. - Includes everything in v0.11.0 (sealed artifacts, #65) and v0.10.1 (gear-station archive, #66); their upgrade notes still apply if you skip those versions.
Downloads
v0.11.0
Changes
- Sealed artifacts. The Rune Crafting Station can now craft Sealed Artifacts (LOOT items, set up in ServerAssets). Right-clicking one breaks the seal and gives an artifact rolled the same way as a Dowsing Artifact Mine drop. (#65)
- The new
artifacts/sealed.ymllists each sealed item, its school (randomor a fixed one) and the rarity weights. The defaults are 65/25/7/3, the same as the Artifact Mine. - A school-locked seal still rolls secondary schools. A random seal picks from
random_pool. Caps, wear and Recycler value match node artifacts. - The seal is only used up when the artifact is made. If anything fails, the player keeps the seal and the console logs a warning.
- Chests, doors and other usable blocks still open normally; sneak-click to break a seal on them. One click breaks exactly one seal.
- Each opened seal is logged to the console (
Sealed artifact opened: player=… seal=… element=… rarity=…), so craft supply can be counted. - No odds are shown to players.
- The new
- Includes v0.10.1's gear-station archive (#66).
Upgrade notes
- Magic creates
artifacts/sealed.ymlon the first start, and the start log showssealed=5. A missing or invalid file only disables sealed artifacts, with a warning; the other artifact configs still load. - The two new
messages.ymlkeys (artifact.sealed.openedandartifact.sealed.failed) have built-in defaults. - The recipes and items need ServerAssets #71:
MMOItems/item/loot.ymlandMMOItems/crafting-stations/rune-station.yml.
Downloads
v0.10.1
Changes
- Gear-station clicks no longer freeze the server. Every deposit, charge, eject or "is this station occupied?" check used to re-read and parse the whole
gear-stations.ymlon the main thread, often several times per click. On Main that file had grown to 5.4 MB, and almost all of it was released stations, so each click froze the server for 0.5–2 s. (#66)- Released stations are now moved out of the live file into
data/gear-stations-archive/<occupancy-id>.yml. This happens once at startup and after each release. - The archive copy is written safely to disk before the row leaves the live file. A row that can't be archived stays in the live file, with a log warning.
- The live file stays small, so it can't reach the 16M-character read limit that would have stopped every gear station.
- Lookups no longer make an extra YAML copy of every row. Writes and change checks work exactly as before.
- Released stations are now moved out of the live file into
- Shrine sacrifice and meditation scans skip unloaded chunks instead of loading them. Both scan only the chunks around a player, so nothing changes in play. (#66)
Upgrade notes
- On the first start, Magic logs
Archived N released gear station rows to data/gear-stations-archive.Open, held and charging stations are untouched. - After a release, staff looking for an old station's record will find it in
gear-stations-archive/, not ingear-stations.yml.
Downloads
v0.10.0
Changes
- Attuned mage weapons can be re-attuned from scratch. A recharge only ever raises a weapon's attunement. Now sneak and right-click an empty Magic station while holding an attuned weapon to see a fee, then sneak and right-click again to pay it. The weapon rests on the station as a pending reset. (#64)
- The next charge that catches something replaces the weapon's elements, and its Rift becomes that run's bad hits. Sockets and runes stay as they are.
- A run that catches nothing leaves the old attunement untouched, and the reset stays paid for another try.
- Fee: half the weapon's current part costs, rounded up per material, and at least 1 of each material. Example: an iron wand with an oak handle costs 2 iron, 1 stick and 3 enchanted dust.
magic.bypass_crafting_costskips it. (#64) - While a reset is pending: (#64)
- Only its owner or staff can charge it.
- An empty hand can't pick it up.
- Between runs, the owner's shift-left-click returns the unchanged weapon and the whole fee. A running charge can't be called off.
- A station that loses its furniture drops the fee with the weapon.
- A fee that can't be returned stays on the station for staff, with a log warning.
Config changes
- New key.
gear.reattune.cost_fractionsets the fee as a share of the part costs:0.5is half,0makes it free. Aconfig.ymlwithout it uses 0.5. - New messages.
gear.reattune.*(warn, free, confirm, lacking, placed, locked, kept, done, returned, not_yours, held) fall back to the bundled text.
Downloads
v0.9.0
Changes
- Artifacts now wear out. Every point of resonance an artifact gives in meditation wears it, whoever gets it. An artifact can give its highest aura cap in total (
artifacts.wear.budget_multiplier, default 1.0), then it crumbles in place into a spent husk.- Example: a 20-cap common can take one character from 0 to 20 once, or two sharers to 10 each.
- After its first use, an artifact's lore shows
Integrity: N%. - A husk is renamed "Spent ...", has no aura and no artifact id, and is never used by meditation, shrines or care again. The Recycler still takes it (Recycler 0.7.0).
- Shrines, sacrifice, care and charges do not wear artifacts. (#63)
- During a sit:
- A hit never gives more than the artifact has left.
- A crumble tells the meditator, saves the pedestal at once and closes that artifact for the rest of the sit.
- Anyone else at the ring sees it as spent, so their sit still completes.
- Wear is saved on the first hit, then at most every 5 seconds and when the sit ends. (#63)
- The Epic artifact rarity is gone. Rare takes the low part of Epic's old range and Legendary the high part: 46-75 and 76-150 for Cerrith, Seithr, Oseni and Mitlan. Epic's weight was split between them, its adjectives moved to Legendary, and its models became Legendary-only. Existing Epic artifacts keep working. (#63)
Config changes
- Wear is on by default. A
config.ymlwithoutartifacts.wear.budget_multiplieruses 1.0. Set it to0to turn wear off. - Epic removal needs hand edits. Plugin updates don't overwrite existing files, so remove Epic from the live
artifacts/generator.yml,adjectives.ymlandmodel-schemes.ymltogether. Editing onlygenerator.ymlwould leave theepic-legendarymodels matching nothing. - New messages.
artifact.husk.name,artifact.husk.loreandmeditation.crumbledfall back to the bundled text.
Downloads
v0.8.0
Changes
- Resonance and equilibrium drift now work. Each per-second step was too small to survive rounding, so resonance never fell and tranquility never decayed. Drift is now carried and applied in whole hundredths, only while the character is online. At the bundled rates that's 0.01 resonance every 30 online minutes and 0.01 tranquility every 20. Corrupted characters now drift deeper as configured. (#62)
- Sharing an artifact now splits it. Meditation can no longer raise an element above your share: each artifact's usable aura divided by the characters who meditated with it in the last 7 days, summed across the ring. Before, the split only applied within one sit, so standing up and sitting again got every sharer to the full total. Characters already above their share keep it until decay lowers it. (#62)
- Profiles are saved when resonance actually changes, instead of every second for every mage. (#62)
- Flow casts build tranquility (and Surge casts corruption) 4-10 times faster: the bundled
cast_drift.mana_divisoris now 100 instead of 1000. (#61)
Config changes
None are required. cast_drift.mana_divisor is only a bundled default; existing servers keep their own value. config.yml gained a comment describing the meditation ceiling.
Downloads
v0.7.0
Changes
- Mage weapons are named and coloured after their core's metal, like AdvancedCrafting weapons and armour: "Iron Mage Staff" in the iron colour, "Abyssalite Mage Blade", and so on. Before, every weapon kept its template's plain white "Mage Staff", "Mage Wand" or "Mage Blade". Weapons crafted before this are renamed once by the join and chest-open refresh, keeping their runes and skins. (#60)
Config changes
Existing servers keep their config files, so add these by hand:
gear/archetypes.yml:item-name:on each archetype, with%material%for the core's material. Bundled:"%material% Mage Staff","%material% Mage Wand","%material% Mage Blade". Without it the name is"%material% <name>"(e.g. "Iron Staff").gear/parts.yml:material:on each core, colour included, e.g.material: "#d8d8d8Iron". Without it a core uses its name minus "Magical Core".
Neither key changes part or archetype revisions.