- Backported new config system from 1.21.5
- Waystones, Ex Compressum, Forgiving Void and Fertilization should be updated alongside this version to avoid crashes
- Backported new capabilities system from 1.21.5
- Backported other minor changes from 1.21.5
- Fixed version verification falsely treating allowServerOnly/allowClientOnly as denyServerOnly/denyClientOnly
- Fixed version verification falsely treating allowServerOnly/allowClientOnly as denyServerOnly/denyClientOnly
- Fixed crash when calling sendToServer while not ingame on Fabric
- Added SidedProxy.build() and SidedProxy.buildLazily()
- Added Balm.getEnvironment()
- Fixed version verification falsely treating allowServerOnly/allowClientOnly as denyServerOnly/denyClientOnly
-
Fixed crash with custom stats on Forge
-
Fixed crash when calling sendToServer while not ingame on Fabric
-
Added SidedProxy.build() and SidedProxy.buildLazily()
-
Added Balm.getEnvironment()
-
Fixed capability providers on Forge not being registered
- Updated to Minecraft 1.21.5
- Added
BalmModuleandBalmClientModuleas an alternative more structured way of initializing a mod with Balm - Added
Balm.onRuntimeAvailableandBalmClient.onRuntimeAvailableto allow more stable access to Balm outside of mod loader lifecycles - Added
BlockGetterandBlockPostoDigSpeedEvent, now sets the final value on all loaders - Refactored Capabilities support to reduce mod-loader-specific overhead
- Refactored Configs to allow for declarative config schemas and cleaner implementation
- Balm mods no longer need to register their own config sync packet
- Added
BalmClient.addResourceReloadListener() - Added
ConfigLoadedEvent - Fixed
ScreenInitevents not firing reliably for all screens - Fixed
GuiDrawEventnot firing - Changed config i18n to use
modid.configuration.category.keyformat - Changed client-side registration methods to require identifiers
- Removed several obsolete hooks from
BalmHooks - Removed obsolete key mapping methods - use Kuma instead
- Removed obsolete
BalmTextures - Removed
ExtractionAwareContainerin favor ofWorldlyContainer - Added
BalmNetworking.defineNetworkVersionfor more control over network compatibility- Fabric's remote version check now uses the network version (which defaults to the mod version)
- Network version is also used to version the channel on NeoForge
- Added remote version verification even on client/server-only compatible mods if they are installed on both sides
- Added
BalmResources.registerResourceConditionto register custom resource conditions - Added
balm:configresource condition to check a config option against a stringified value
- Fixed potential crash when using
BalmModule(e.g. Waystones) - Fixed crash on dedicated servers
- Fixed crash with Sinytra Connector (for real now)
- Fixed crash with Sinytra Connector (again)
- Added
BalmNetworking.defineNetworkVersionfor more control over network compatibility- Fabric's remote version check now uses the network version (which defaults to the mod version)
- Added remote version verification even on client/server-only compatible mods if they are installed on both sides
- Fixed GuiDrawEvent not firing on Forge and NeoForge
- Fixed crash with Sinytra Connector (again)
- Added
BalmNetworking.defineNetworkVersionfor more control over network compatibility- Fabric's remote version check now uses the network version (which defaults to the mod version)
- Network version is also used to version the channel on Forge and NeoForge
- Added remote version verification even on client/server-only compatible mods if they are installed on both sides
- Added
BalmResources.registerResourceCondition
- Fixed crash with Sinytra Connector (again)
- Added
BalmNetworking.defineNetworkVersionfor more control over network compatibility- Fabric's remote version check now uses the network version (which defaults to the mod version)
- Added remote version verification even on client/server-only compatible mods if they are installed on both sides



