Skip to content

Releases: itb-community/ITB-ModLoader

v2.9.5

28 Mar 21:08
46fae9a

Choose a tag to compare

What's Changed

  • Pod Opening UI and Perfect Island UI Events
  • Fixing Dropdown Auto-width Adjustment
  • Added framework for custom environments

Full Changelog: v2.9.4...v2.9.5

Updated Extensions

  • EasyEdit
    • No changes
  • memedit
    • Adding peoplePopulated and peopleEvacuated for building tiles
    • Added setFireType for tiles
  • modApiExt
    • Added mountain board events
    • Fix boardEvents versioning
    • Add support for extended tool tip image

v2.9.4

27 Mar 05:14
cf3c15d

Choose a tag to compare

Note

Please make sure to backup your saves before reinstalling this modloader. It has limited testing due to my limited time. After a few weeks, if no errors have been found, then it's probably fine, but it's always a good idea to backup your saves for safety.

What's Changed

Modloader:
IMPORTANT - Added Debug Mode at Mod Loader Configuration > Debug mode which turns off assertions. This makes the game run much faster (eliminating lag in mods such as Far Line) and is disabled by default.
Modders: You should turn this setting on immediately. Without this setting, you won't get as good of error messages. A news popup with this information has been added, also allowing for future modloader news.
When debugging mods with a player, encourage them to turn Debug Mode on (and then back off when you're done).
Players: You should leave this setting off, which will help reduce lag and make a better playing experience.

Updated Extensions

EasyEdit:
Fixed a dialog issue with modded islands

memedit:
Updated __addresses to be on the most recent patch. No more calibration for new players! (watch, subset drops a new update tomorrow)

modApiExt:
Added the BoardEvents library to modApiExt so that mods can use it without using it externally (as well as some minor BoardEvents changes)

Full Changelog: v2.9.3...v2.9.4

v2.9.3

04 Jan 02:10

Choose a tag to compare

What's Changed

Modloader:
Fix gameState updating slightly too late when the final mission becomes available
Fix error closing squad selection in statistics
Allow mod options scroll down menus to contain more than 5 values
Fix Region Data error
Some miscellaneous changes

Updated extensions

EasyEdit:
Fix world 'default' button
Fix world editor various crashes
Add randomize islands buttons
Add list duplication functionality

memedit:
Fix bug in SpaceDamage:GetSource
Added Game:GetResist() and Game:SetResist(int)
Added Board:GetAttackOrder()
Added Pawn:GetBonusMove() and Pawn:SetBonusMove()

modApiExt:
Added pawnIsBoosted hook
Updated readme to match it being a modloader extension

Full Changelog: v2.9.2...v2.9.3

v2.9.2

22 Apr 19:39

Choose a tag to compare

What's Changed

  • Change the busy check for isAllDeployed by @WolframParadoxica in #200
  • Make events log full stack traces of subscription and dispatch locations. (#202)
    • This should make it easier to debug errors that occur inside events.
  • Extend Directory and File with additional functions. (#181)
  • Alphabetize serialized tables
    • This will help memedit address lists to stay alphabetized and make git diff less messy.
    • Data saved by the mod loader in the save data folder will also become alphabetized, making them easier to browse.
  • Fix crash when savedata directory path contains non-ascii characters. (#207)
  • Add functions to check userdata type. See wiki. (#209)
  • Add events for Board:DamageSpace() and Board:AddEffect(). See wiki. (#205)
  • Remove spaceDamage metadata functions. (#203)

Updated extensions

  • memedit v1.1.4 from v1.0.2
    • Add SpaceDamage functions with memedit.
    • Add addresses for more ITB versions to memedit.
    • Override pawn mutation functions when memedit is available.
  • Easy Edit v2.0.6 from v2.0.4
    • Fix bots in enemy lists to be used in pinnacle missions
    • Add function easyEdit:getCurrentIslandSlot()
    • easyEdit will now automatically update any lists that have not been edited by the player in the easyEdit menus, meaning that as mods are enabled/disabled their additions to default easyEdit lists will come and go automatically.
    • This allows mods to tailor the contents of default lists without requiring the player to do anything, if their lists are in a default state.
    • As soon as the player edits a list by hand, their custom version will be saved instead, and automatic updates to it will not resume until the list is returned to a default state (using the buttons).
  • modApiExt v1.21 from v1.19
    • Fix skill events passing the correct arguments
    • Add protection to skilleffect and targetarea hooks in case of nil Point arguments.

New Contributors

Full Changelog: v2.9.1...v2.9.2

v2.9.1

08 Mar 00:47

Choose a tag to compare

Please Note:

This update requires Into the Breach 1.2.88+ (it will not work on older versions). Because of a change in the games code, a significant change was made to the modloader. While for past versions, you could just uninstall the modloader and reinstall the new version, you'll need to take one extra step.

  1. Run uninstall_modloader.bat to uninstall the modloader
  2. Verify the integrity of game files to reset Into the Breach to its default files. For steam, go to Settings > Properties > Local Files > Verify Integrity of Game Files. If you're not on steam, either verify the integrity on your platform or you can also uninstall Into the Breach entirely and reinstall the game for the same effect. If you don't want to reinstall or are still having issues, you can replace scripts.lua in Into the Breach/scripts with the one attached in this release.
  3. Reinstall the modloader by extracting the ITB-ModLoader-2.9.1.zip file in this release and extracting it directly into the Into the Breach directory, replacing all files as done before.

If you still have questions or issues, feel free to ask in #modding-support on the official Into the Breach Discord

Updated extensions

Misc

  • Pilot Deck Selector menu can now control pilot contents of secret pods.
  • Modloader no longer deletes AE maps.
  • Modloader now overwrites modloader.lua instead of scripts.lua.
  • Added mod icons for extensions.
  • Updated uninstaller for new dlls and files.
  • Fix SetNeutral so it works without memEdit.

Functions

  • Updated modApi:addPilotDrop to accept an ftl argument, see wiki.

Full changelog since 2.8.3: v2.8.3...v2.9.1

v2.9.0

06 Mar 03:41
d238f43

Choose a tag to compare

v2.9.0 Pre-release
Pre-release

Please Note:

This update requires Into the Breach 1.2.88 (it will not work on older versions). Because of a change in the games code, a significant change was made to the modloader. While for past versions, you could just uninstall the modloader and reinstall the new version, you'll need to take one extra step.

  1. Run uninstall_modloader.bat to uninstall the modloader
  2. Verify the integrity of game files to reset Into the Breach to its default files. For steam, go to Settings > Properties > Local Files > Verify Integrity of Game Files. If you're not on steam, either verify the integrity on your platform or you can also uninstall Into the Breach entirely and reinstall the game for the same effect.
  3. Reinstall the modloader by extracting the ITB-ModLoader-2.9.0.zip file in this release and extracting it directly into the Into the Breach directory, replacing all files as done before.

If you still have questions, feel free to ask in #modding-support on the official Into the Breach Discord

Changes:

v2.8.3...v2.9.0

v2.8.3

22 Nov 22:22

Choose a tag to compare

Updated extensions

New functions

  • Added SkillEffcet.AddImpactSound, which adds a sound that takes into account the impact material at the target location
  • Added SkillEffect.AddQueuedImpactSound, which is the queued variant of SkillEffcet.AddImpactSound
  • Added Pawn.MoveToBottom, which moves the unit down to the bottom of the stack, so it becomes the dominant pawn on its tile
  • Added modApi.deployment.getDeploymentZone, which returns a PointList of the current mission's deployment zone
  • Added index2point, which returns the point associated with an index,. On an 8x8 board, indexes 1 through 64 corresponds to a point on the map
  • Added point2index, which returns the index associated with a point,. On an 8x8 board, indexes 1 through 64 corresponds to a point on the map
  • Added modApi.appendEnemyPortraitAssets, which appends assets to "img/portraits/enemy/"
  • Added modApi.appendEnemyPortraitAssets, which appends assets to "img/portraits/enemy/"
  • Added modApi.appendPilotPortraitAssets, which appends assets to "img/portraits/pilots/"
  • Added modApi.appendNpcPortraitAssets, which appends assets to "img/portraits/npcs/"
  • Added modApi.appendCeoPortraitAssets, which appends assets to "img/portraits/ceo/"
  • Added modApi.createVekAnimations, which is a helper function to create vek animations
  • Added CreateStructure, which is a helper function to create structure definitions

Full Changelog since 2.8.2: v2.8.2...v2.8.3
Full Changelog since 2.7.3 - last stable release: v2.7.3...v2.8.3

v2.8.2

06 Nov 22:57

Choose a tag to compare

v2.8.2 Pre-release
Pre-release

v2.8.1

06 Nov 20:35

Choose a tag to compare

v2.8.1 Pre-release
Pre-release

Dependencies

  • Mods can now specify other mods that it depends on. (see) When starting ITB, any dependencies of enabled mods will be enabled automatically; and the mod that depended on them will only successfully initialize if all dependencies also successfully initialized.

Extensions

  • The mod loader can now have extensions, which essentially are mods in every way, except that they will launch before non-extension mods. Extensions are requested by other mods in the same way dependencies are; and extensions can be enabled separately in the mod configuration menu as stand alone mods (by request)
  • Added built-in extensions

Functions

  • Added warning log functions which will only be printed if enabled in mod loader configuration.
    • LOGW
    • LOGWD
  • Added global functions see
    • clear_table - clears a table of all values
    • merge_table - merges all elements from one table into another
    • filter_array - filters an array with a filter function
    • filter_table - filters a table with a filter function
    • to_array - returns a table converted to an array, discarding all keys of the original table
    • to_sorted_array - returns a table converted to an array, and sorted with a sort function
  • Added version related functions:
    • modApi.isVersionBelowOrEqual
    • modApi.isVersionAboveOrEqual
    • modApi.isVersionAbove
    • modApi.isVersionBelow
    • modApi.isValidVersion
  • Added Ui functions
    • setCustomTooltip - allows setting any ui element as a tooltip.
    • sizepx - sets a ui element's size in pixels
    • onGameWindowResized - called whenever the game window is resized
    • beginUi - can be used in conjunction with endUi when function chainingsee
    • endUi - can be used in conjunction with beginUi when function chaining see
    • setVar - sets a variable of the ui instance see
    • format - formats the ui instance with a function see
  • Added Assert.ShouldError, which asserts that a specified function should crash, given specific arguments.
  • Added more debug colors
    • deco.colors.debugRed
    • deco.colors.debugGreen
    • deco.colors.debugBlue
    • deco.colors.debugYellow
    • deco.colors.debugTeal
  • Added modApi.squadIndex2Choice, which converts a squad index to a squad choice. [see #177]
  • Added modApi.squadChoice2Index, which converts a squad choice to a squad index. [see #177]
  • Added modApi.getSquadForChoice, which returns the current squad set for a squad choice. [see #177]
  • Added modApi.getProfileStatistics, which returns all statistics for a specified profile
  • Added modApi.hangar, holding many previously global functions,
    • isWindowState
    • isWindowlessState
    • getOrigin
    • getSelectedMechs
    • getSelectedSquad
    • getSelectedSquadIndex
    • getBackButtonRect
    • getStartButtonRect
  • Added modApi.getCurrentProfile, which returns the id for the current selected profile
  • Added modApi.getCurrentTileset, which returns the current tileset used in mission and tipimages
  • Added modApi.final, a table with functions related to the final island
    • isAvailable - returns true if the final island is available
    • isHighlighted - returns true if the final island is highlighted
    • isSelected - returns true if the final island is selected
  • Changed Board:IsMissionBoard to use well tested method of comparing Board:GetSize()
  • Changed Board:IsTipImage to use well tested method of comparing Board:GetSize()
  • Changed some Ui functions to return self so they can be used when function chaining.
    • Ui.registerDragMove
    • Ui.registerDragResize
    • Ui.registerDropTarget
    • Ui.clearDropTargets
  • Changed draggable ui resize handle to more closely match the element's rectangle
  • Changed Board:SetShield to use vanilla Board.AddShield and RemoveShield internally.
  • Added functions to append all images in a folder
    • modApi:appendAssets - general function
    • modApi:appendPlayerUnitAssets - alias appendMechAssets
    • modApi:appendEnemyUnitAssets - alias appendVekAssets
    • modApi:appendMissionUnitAssets
    • modApi:appendBotUnitAssets - alias appendBotAssets
    • modApi:appendCombatAssets
    • modApi:appendCombatIconAssets
    • modApi:appendEffectAssets
    • modApi:appendWeaponAssets
    • modApi:appendPassiveWeaponAssets
  • Added functions to create animations
    • modApi:createMechAnimations
    • modApi:createAnimations

Added Constants

  • SQUAD_CHOICE_START
  • SQUAD_CHOICE_END
  • SQUAD_CHOICE_RANDOM
  • SQUAD_CHOICE_CUSTOM
  • SQUAD_CHOICE_SECRET
  • SQUAD_INDEX_START
  • SQUAD_INDEX_END
  • SQUAD_INDEX_SECRET
  • ORIENTATION_HORIZONTAL - can be used to define the orientation of ui classes like UiWeightLayout and UiFlowLayout.
  • ORIENTATION_VERTICAL - ''

Events

  • Added onBoardClassInitialized - can be subscribed to in order to override Board functions
  • Added onPawnClassInitialized - can be subscribed to in order to override Pawn functions
  • Added onGameClassInitialized - can be subscribed to in order to override Game functions
  • Added onLanguageChanged - dispatched when language changes
  • Added onTestsuitesCreated - dispatched when test suites have been created
  • Added onFinalIslandHighlighted
  • Added onFinalIslandUnhighlighted
  • Added onFinalIslandSelected
  • Added onFinalIslandUnhighlighted
  • Added onTilesetChanged - dispatched when the tileset used in mission or tipimages changes
  • Changed modApi.events.onHangarSquadCleared - now dispatches with three arguments: squadId, squadChoice and squadIndex
  • Changed modApi.events.onHangarSquadSelected - now dispatches with three arguments: squadId, squadChoice and squadIndex

Misc

  • #164 Moved IO-related operations to a helper .dll
  • Added warning when mods have missing modApiVersion and gameVersion targets
  • Added an overlay to display the correct medals for vanilla squads, when modded squads replacing them had been used to get higher medals.
  • Added ability to serialize Point see
  • Created separation for squad index types [see #177]
  • Dispatch events based on window states immediately when they are detected, instead of waiting for the next onFrameDrawStart event.
  • Reserve squad ids "Random" and "Custom" for Random and Custom sqauds, so mod squads cannot use those ids for their squads.
  • Rewrote squad and mech detection in hangar to be more accurate.
  • Stored a reference to Board.SetNeutral as Board.SetNeutralVanilla before overriding, so the override can be reverted

Ui

  • Added ability to see the next hovered ui element, when dragging an element. ui.dragHovered
  • Added functionality to make Ui groups, where if one is hovered, the whole group is considered ui.groupHovered

Fixes

v2.7.3 for Advanced Edition

18 Sep 20:37

Choose a tag to compare

  • Added an text input field for mod UIs to use
  • Added new events, see #160
  • Fix Rosie not working on pawns without custom move skills
  • Remove Pawn:IsPowered, that is a vanilla function now