Skip to content

Releases: Garethp/Mods-of-Mistria-Installer

Version 0.16.0 Beta 3

Version 0.16.0 Beta 3 Pre-release
Pre-release

Choose a tag to compare

@Garethp Garethp released this 22 Aug 16:16
55e13cb

Version 0.16.0 Beta 3

New Features

  • When adding a .mist file, automatically generate the appropriate .meta.toml file 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 Pre-release
Pre-release

Choose a tag to compare

@Garethp Garethp released this 22 Aug 12:42

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.16.0 Beta 1 Pre-release
Pre-release

Choose a tag to compare

@Garethp Garethp released this 22 Aug 11:57

Version 0.16.0 Beta 1

New Features

  • Support smaller screens by hiding the header image when the screen is too small (#155)
  • Support re-ordering the mods through drag-and-drop (#155)

Version 0.15.7

Choose a tag to compare

@AnnaNomoly AnnaNomoly released this 21 Aug 20:07
f204bd5

Version 0.15.7

MOMI

  • Compact furniture sprites named spr_x_shadow now generate a shadow_manifest.json entry automatically, registering the shadow for spr_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

Choose a tag to compare

@AnnaNomoly AnnaNomoly released this 19 Aug 18:38
288d843

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

Choose a tag to compare

@AnnaNomoly AnnaNomoly released this 14 Aug 21:38
9b90ee2

Version 0.15.5

MOMI

No changes.

MMAPI

Seam Fixes

  • combat_damage_pre is re-anchored for the hotfix.
  • The engine removed the parent_object() helper from obj_damage_receiver and replaced it with a cached parent_object_id field, which the receiver's rockstack gate now reads.
  • The dispatch itself is unchanged. combat.damage still 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

Choose a tag to compare

@AnnaNomoly AnnaNomoly released this 14 Aug 19:01
bdaf4d0

Version 0.15.4

MOMI

  • The game version 1.0.3 updates changed the default srgb value for vanilla atlases from true to false.
  • 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_chopped fires inside chop_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, and slash_node destroys never fire.
  • resource.node_picked fires inside pick_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

Choose a tag to compare

@Garethp Garethp released this 10 Aug 18:39
c9afc2b

Version 0.15.3

Bug Fixes

  • Added missing back_gear_misc subcategory to the back category in the cosmetics format

Version 0.15.2

Choose a tag to compare

@Garethp Garethp released this 08 Aug 16:32
b451d4a

Version 0.15.2

MOMI

  • Introduced the new cosmetics format in the momi/cosmetics folder

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 as SHIFT+F5 or CONTROL+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_speed filters the mounted base speed after the walk, run, and Horsepower choice, but before status effects and the final player.move_speed filter. It never fires on foot and provides the player through ctx.player.
  • player.swim_speed filters 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_chance filters 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

Choose a tag to compare

@AnnaNomoly AnnaNomoly released this 05 Aug 22:44
c57d90b

MOMI

No changes.

MMAPI

Updated monster_death anchor for the game 1.0.1 update's GML changes.