Releases: Garethp/Mods-of-Mistria-Installer
Release list
Version 0.16.0 Beta 3
Version 0.16.0 Beta 3
New Features
- When adding a
.mistfile, automatically generate the appropriate.meta.tomlfile with a new ID
Other Changes
- Update the error when the game's GML has changed to be more descriptive
- Refactor how mist files are installed
Version 0.16.0 Beta 2
Version 0.16.0 Beta 2
New Features
- Adds a shorter header image for devices that are small, but not too small to require removing the header image
Other changes
- Adds the mod order number back into the list
Version 0.16.0 Beta 1
Version 0.15.7
Version 0.15.7
MOMI
- Compact furniture sprites named
spr_x_shadownow generate ashadow_manifest.jsonentry automatically, registering the shadow forspr_x. - Sprite replacements for animations without an atlas, such as wrapping textures and tiled layer assets, are now written to their standalone PNG.
MMAPI
The catalog now declares 117 hooks, 126 seams, 3 engine fixes, and 1 call rewrite.
New Hooks
Three new filter hooks. Register them with mmapi_filter:
date.cooldown- Change the cooldown between dates with the same NPC.date.cutscene- Swap which cutscene a date plays while keeping the whole vanilla date pipeline.ui.preset_popup_layout- Resize the customization menu's preset popup frames and grid.
One new guard hook. Register it with mmapi_guard:
date.begin- Cancel an accepted date after its acceptance conversation, before the cutscene.
Renamed Hooks
ui.sprite is now ui.backplate_sprite, and its seams are now ui_backplate_sprite_mines and ui_backplate_sprite_spell_card. The hook's contract is unchanged.
Warning
There is no alias for the old name. A mod that registers ui.sprite no longer matches anything and logs MMAPI's unknown-hook warning. Update your mod's registrations to ui.backplate_sprite.
Changed Seams
The spells_cost_menu seam now draws fractional mana pips in the spell menu.
Version 0.15.6
Version 0.15.6
MOMI
No changes.
MMAPI
The catalog now declares 113 hooks, 121 seams, 3 engine fixes, and 1 call rewrite.
The 1.0.4 game update changed GML inside the gml/scripts/GameplaySystems/Dungeon/enter_dungeon.gml game file, breaking MMAPI's anchor for the dungeon_floor_bracket seam. The seam was re-anchored, no hooks were affected by this change.
New Hooks
Eight new event hooks report museum, player, quest, and renown moments. Register them with mmapi_on:
museum.donate_item- Know when an item is donated to the museum.player.acquire_perk- Know when the player acquires a perk.player.died- Know when the player dies.player.pass_out- Know when the player passes out at the end of the day.player.skill_leveled- Know the moment the player levels up a skill.quest.complete- Know when a quest is completed.renown.level_gained- Know the moment the player gains a renown level.renown.rank_gained- Know the moment the player reaches a new renown rank.
One new guard hook. Register it with mmapi_guard:
ui.spawn_tutorial_guard- Block a tutorial popup before it spawns.
Version 0.15.5
Version 0.15.5
MOMI
No changes.
MMAPI
Seam Fixes
combat_damage_preis re-anchored for the hotfix.- The engine removed the
parent_object()helper fromobj_damage_receiverand replaced it with a cachedparent_object_idfield, which the receiver's rockstack gate now reads. - The dispatch itself is unchanged.
combat.damagestill fires at the same point in the drain loop, after the same iframe and rockstack gates, filtering the same tarball with the receiver as ctx.
Warning
The ctx for combat.damage is the damage receiver, and the hotfix changed that object's surface. A handler that called _ctx.parent_object() now throws. Handler isolation catches the error and logs a warning, so the game keeps running, but that handler's effect is silently lost. Read _ctx.parent_id for the owning instance, which the hotfix left alone, or the new _ctx.parent_object_id for its object type.
Version 0.15.4
Version 0.15.4
MOMI
- The game version 1.0.3 updates changed the default
srgbvalue for vanilla atlases fromtruetofalse. - MOMI now mirrors the atlas sampling values used by vanilla so there can never be drift for vanilla atlases.
- Custom, mod-specified atlases, use the new 1.0.3 defaults.
MMAPI
The catalog now declares 104 hooks, 114 seams, 3 engine fixes, and 1 call rewrite.
New Hooks
Two new event hooks report the moment a tool swing lands on a grid resource. Register them with mmapi_on:
resource.node_choppedfires insidechop_node()when a chop lands on a tree or stump, on the damaging chip and the felling hit alike. Its ctx is{ grid, x, y, item, node, destroyed, burn }. Bounces from inadequate tool quality, burn i-frame absorbs, grass, andslash_nodedestroys never fire.resource.node_pickedfires insidepick_node()when a pick lands. A rock fires right after its damage is applied and before any drops, perk procs, or teardown run, so one site covers both the chip and the break. A dig site fires when the dig succeeds. Its ctx is{ grid, x, y, item, node, result, destroyed, burn, effect_override }.
Both fire for every caller of their function, which includes the Tool FSM closure, damage tarballs carrying the matching can_pick_grid_objects or can_chop_grid_objects flag, and the engine's own internal chains such as Earthbreaker. Read ctx.burn and ctx.effect_override to react only to swings a player made.
Note
Neither chop_node() nor pick_node() grants essence or XP. The engine grants those in the Tool FSM closures instead, which run only when the player swings the tool. A chop or pick from any other caller, such as a sword carrying the grid flag or fire spread, pays the player nothing. A handler can choose to reward those swings freely.
Changed Hooks
dungeon.runner_created now reports a runner the engine has not installed yet. In 1.0.3 enter_dungeon() no longer assigns DUNGEON_RUNNER itself. It hands the fresh runner to the queued room transition, and the taxi installs the global as that transition departs. The hook fires at the same moment as before, and ctx.runner is still the live object the run will use, so handlers that mutate the runner keep working unchanged.
Warning
A handler that read DUNGEON_RUNNER rather than ctx.runner now sees the previous run's runner or undefined. The same applies to anything reading the DUNGEON_FLOOR and DUNGEON_BIOME macros, because both resolve through that global. Read the runner from ctx. Assigning DUNGEON_RUNNER inside a handler also no longer replaces the run's runner, because the departing transition overwrites it.
Retired Engine Fixes
statue_hp_death_sweep is gone, which is why the engine fix count drops from four to three. It supplied the Living Griffin Statue's missing death check for depleted hit points, without which a statue whose health reached zero outside a damage drain stayed alive, hostile, and undamageable. Game 1.0.3 added that check itself, so MMAPI no longer needs to.
Version 0.15.3
Version 0.15.3
Bug Fixes
- Added missing
back_gear_miscsubcategory to thebackcategory in the cosmetics format
Version 0.15.2
Version 0.15.2
MOMI
- Introduced the new cosmetics format in the
momi/cosmeticsfolder
MMAPI
The catalog now declares 102 hooks, 110 seams, 4 engine fixes, and 1 call rewrite.
Hotkeys
Note
GAMEPAD_A, GAMEPAD_B, GAMEPAD_X, and GAMEPAD_Y follow Xbox controller positions. Another controller layout may show different letters unless Steam uses its native layout.
MMAPI hotkeys now support controllers:
mmapi_hotkey_pad_from_name()resolves 16 different face, shoulder, trigger, D-pad, stick, select, and start buttons.mmapi_hotkey_register_pad()polls every connected controller and fires when any of them presses the button. A disconnected controller leaves the binding live until one is available.
Hotkeys can now be compound bindings:
mmapi_hotkey_binding_from_name()accepts keyboard, controller, and mixed-device chords such asSHIFT+F5orCONTROL+GAMEPAD_Y. The last part is the trigger and every earlier part must be held beforehand. A matched chord suppresses its bare trigger for that frame.mmapi_hotkey_binding_held()supports mods that poll held controls.
Warning
If a compound hotkey overlaps with a single (bare) hotkey, such a F5 and SHIFT+F5, the F5 trigger is suppressed. MMAPI warns when compound and bare hotkey registrations overlap.
New Hooks
Three new filter hooks extend movement and crafting control. Register them with mmapi_filter:
player.mount_speedfilters the mounted base speed after the walk, run, and Horsepower choice, but before status effects and the finalplayer.move_speedfilter. It never fires on foot and provides the player throughctx.player.player.swim_speedfilters the computed swim speed after the fast or slow stroke and its engine modifiers. It covers normal swimming and the underwater pull, which uses half the filtered value.items.infusion_chancefilters the vanilla 15 to 25 percent infusion chance once per crafted item. Its ctx contains the recipe and the live candidate list, so a handler can change both the odds and the possible results. Zero never rolls and 100 or more always rolls, but an empty candidate list still produces no infusion.
Hook Fixes
spells.cast now correctly has only one deferral token. undefined is the only return that allows another override or the engine cast to run. false and numeric zero now consume the cast, skip the engine behavior, and emit spells.cast_done. Previously, false stopped later overrides but still allowed the engine cast.
All override seams now also correctly use the same type-exact check.
Version 0.15.1
MOMI
No changes.
MMAPI
Updated monster_death anchor for the game 1.0.1 update's GML changes.