Releases: itb-community/ITB-ModLoader
v2.9.5
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
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
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
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
DirectoryandFilewith 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()andBoard: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
- @WolframParadoxica made their first contribution in #200
Full Changelog: v2.9.1...v2.9.2
v2.9.1
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.
- Run uninstall_modloader.bat to uninstall the modloader
- 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 replacescripts.luainInto the Breach/scriptswith the one attached in this release. - Reinstall the modloader by extracting the
ITB-ModLoader-2.9.1.zipfile 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.luainstead ofscripts.lua. - Added mod icons for extensions.
- Updated uninstaller for new dlls and files.
- Fix SetNeutral so it works without memEdit.
Functions
- Updated
modApi:addPilotDropto accept anftlargument, see wiki.
Full changelog since 2.8.3: v2.8.3...v2.9.1
v2.9.0
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.
- Run uninstall_modloader.bat to uninstall the modloader
- 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. - Reinstall the modloader by extracting the
ITB-ModLoader-2.9.0.zipfile 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
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
v2.8.1
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.
LOGWLOGWD
- Added global functions see
clear_table- clears a table of all valuesmerge_table- merges all elements from one table into anotherfilter_array- filters an array with a filter functionfilter_table- filters a table with a filter functionto_array- returns a table converted to an array, discarding all keys of the original tableto_sorted_array- returns a table converted to an array, and sorted with a sort function
- Added version related functions:
modApi.isVersionBelowOrEqualmodApi.isVersionAboveOrEqualmodApi.isVersionAbovemodApi.isVersionBelowmodApi.isValidVersion
- Added Ui functions
setCustomTooltip- allows setting any ui element as a tooltip.sizepx- sets a ui element's size in pixelsonGameWindowResized- called whenever the game window is resizedbeginUi- can be used in conjunction withendUiwhen function chainingseeendUi- can be used in conjunction withbeginUiwhen function chaining seesetVar- sets a variable of the ui instance seeformat- 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.debugReddeco.colors.debugGreendeco.colors.debugBluedeco.colors.debugYellowdeco.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,
isWindowStateisWindowlessStategetOrigingetSelectedMechsgetSelectedSquadgetSelectedSquadIndexgetBackButtonRectgetStartButtonRect
- 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 availableisHighlighted- returns true if the final island is highlightedisSelected- returns true if the final island is selected
- Changed
Board:IsMissionBoardto use well tested method of comparingBoard:GetSize() - Changed
Board:IsTipImageto use well tested method of comparingBoard:GetSize() - Changed some Ui functions to return
selfso they can be used when function chaining.Ui.registerDragMoveUi.registerDragResizeUi.registerDropTargetUi.clearDropTargets
- Changed draggable ui resize handle to more closely match the element's rectangle
- Changed
Board:SetShieldto use vanillaBoard.AddShieldandRemoveShieldinternally. - Added functions to append all images in a folder
modApi:appendAssets- general functionmodApi:appendPlayerUnitAssets- aliasappendMechAssetsmodApi:appendEnemyUnitAssets- aliasappendVekAssetsmodApi:appendMissionUnitAssetsmodApi:appendBotUnitAssets- aliasappendBotAssetsmodApi:appendCombatAssetsmodApi:appendCombatIconAssetsmodApi:appendEffectAssetsmodApi:appendWeaponAssetsmodApi:appendPassiveWeaponAssets
- Added functions to create animations
modApi:createMechAnimationsmodApi:createAnimations
Added Constants
SQUAD_CHOICE_STARTSQUAD_CHOICE_ENDSQUAD_CHOICE_RANDOMSQUAD_CHOICE_CUSTOMSQUAD_CHOICE_SECRETSQUAD_INDEX_STARTSQUAD_INDEX_ENDSQUAD_INDEX_SECRETORIENTATION_HORIZONTAL- can be used to define the orientation of ui classes likeUiWeightLayoutandUiFlowLayout.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,squadChoiceandsquadIndex - Changed
modApi.events.onHangarSquadSelected- now dispatches with three arguments:squadId,squadChoiceandsquadIndex
Misc
- #164 Moved IO-related operations to a helper .dll
- Added warning when mods have missing
modApiVersionandgameVersiontargets - 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
onFrameDrawStartevent. - 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.SetNeutralasBoard.SetNeutralVanillabefore 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
- Fixed a case of weapon deck code causing booleans to enter a context expecting numbers
- Fixed decks adding disabled items under some conditions
- Fixed sdlext.showButtonDialog compat function
- Fixed Heat Sinker's palette name
- Fixed bug with
BinarySearchwhich would cause it to always return nil when searching a 1-size array. - Fixed test
testsuite.testsuite_StatusTooltips.test_Current_NonExistingKeyfrom failing - Fixed misaligned 2 island Unfair victory medal
- Fixed the mod loader's cached profile not correctly updating when changing profile
- Fixed modded victory medal and coin display bug when a squad replaced the secret squad
- Fixed various display bugs related to victory medals and achievements.
- Fixed BoardPawn to be initialized earlier, so the Pawn class has all functions even when looking in tip images in the hangar
- Fixed Environment hook from firing multiple times for falling boulders on the second phase of the final mission
v2.7.3 for Advanced Edition
- 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