Changelog
3.1.1b128
Hotfix after previous update and a few useful improvements
- Fixed error catching in some compiled libraries, which also fixed stack traces
- Fixed duplication of TileEntity savers caused by mod errors, which could lead to partial data loss
- Fixed TileEntity registration in case of re-registration or with incorrect identifiers
- Limited number of messages on error screens (excluding loading stage), which also fixed some crashes due to out-of-memory issues
- Fixed opening of certain pages in mod browser
3.1.1b127
-
Added UpdatableScheduler module, adding new capabilities for configuring the tick of updatables and their optimization; old updatables and tile entities also received these capabilities via _handle
-
Added methods to BlockSource (work in multiplayer), World, and UI (work on the client) for playing and stopping sounds
-
Added methods to Player for getting the player's input vector and changing perspective
-
Implemented Entity.getAge/Entity.setAge
-
Added Game.getPackVersion/getPackVersionCode methods
-
Item module has been rewritten using codegen; new methods added for getting properties and managing items
-
ItemExtraData and ItemInstance ported to codegen and exposed them to the Java API
-
BlockState ported to codegen and exposed to the Java API; callbacks that previously received a block object
{ id, data }(Tile) now receive BlockState -
All exceptions from Java, including errors from methods in codegen, can now be caught in scripts; improved display of Java stack traces for such errors
-
Added compact stack traces to errors about missing item and recipe identifiers; stack traces are now automatically added when logging errors
-
New and generated API methods can now automatically convert string parameters to numeric values
-
Fixed crash when attempting to create a throwable item
-
Fixed random crashes when attempting to travel between dimensions
-
Disabled guaranteed tile entity initialization when obtained via getTileEntity, which was breaking voltage in IC2
-
Fixed a possible error when connecting over the network
-
Event redstone is now deferred until tile entity initialization
-
Fixed errors when sending NaN value changes via bindings in containers
-
Fixed Entity.getAllInsideBox method
-
Fixed resource pack loading for certain versions when a mod is disabled, and prevented their possible duplication
-
Fixed the behavior of .redirect in mods; the browser now displays information about it
-
Fixed content import methods and in-game file loading
3.1.0b126
- Added methods for manipulating weather, atmosphere, and other dimension properties
- Added support for custom block sounds
- Added support for blocks and items namespaces and methods for working with them
- Added support for parsing HTML colors in UI elements
- Added a method to get the list of custom dimensions
Which will significantly improve performance and simplify the introduction of new API methods, including support for Java mods . The legacy API will be gradually migrated to the new system.
- Restored functionality and migrated the PathNavigation module to code generation
- Migrated the BlockSource module to code generation
- Added methods for API module manipulation: injectBindingsIntoScope, injectModule(s)IntoScope
- Fixed the entity hurt event
- Fixed the BlockSource.fetchEntitiesOfTypeInAABB method
- Fixed using items from mods on certain vanilla blocks
- getTileEntity now guaranteed to return an already loaded TileEntity
- Fixed the display of certain items in containers
- Fixed player saturation changes
- Fixed emerald ore drops
- Fixed nether fence models in interfaces
- Fixed custom sky, sunset, and fog colors
- Disabled Realms support
3.1.0b125
- Fixed saves were sometimes broken
- Fixed custom colors for fog/water/sky
- Fixed PathNavigation module
- In dev mode compilation errors now are displayed earlier
- Added Entity.playAnimation function
- Added BlockSource.setRedstoneSignal and BlockSource.getRedstoneSignal methods
- Fixed block pallete generation for net sync
- Added CustomScale module
- Added functions Game.addWorldToCache/updateWorlds/getWorldsCount
- Added method BlockSource.randomTick
- Added method NativeTileEntity.tick
- Added new block properties burnOdds/flameOdds
- Fixed some vanilla block icons in UI
3.0.0b124
Migrating to Minecraft 1.16.201 ARM64
This version received support for 64-bit architectures (arm64-v8a), which also eliminated a number of crashes and increased overall stability. Some bugs are expected to be fixed with upcoming updates.
2.4.0b123
Most likely, this is the latest version for ARM32 architectures (armeabi-v7a). All subsequent updates are released for 64-bit devices and this packs will receive only critical bug fixes.
- Added dependencies and add-ons sections for mod pages, displays mods and modpacks
- Improvements for switching to proxy. On failure display a message, suggesting using VPN
- [Adapted] mod label was removed, now non-adapted mods are displayed as [Obsolete]
- Added a switch to enable/disable mods, appears only in the installed mods tab
- Added section with screenshots to modpacks (not displayed if modpack has one screenshot), included dependencies and comments
- Mods popular category has been replaced by default redaction category, this is to move outdated mods to bottom of list
- Searching with icmods: prefix can search for multiple mods at once and opens modpacks correctly
- Rollback b122o1 changes for Inner Core Test
- Added EDamageCause for determining entity damage type, set ToolAPI.registerSword default damage to 4
- Fixed implementing Java abstract classes in JavaScript
- Added methods for client working with Updatable: getAllLocal and getLocalSyncTime
- Added feature to apply click and long click events to inventory slots, fixed updates and slot resizing
- Fixed display of header translations in config, ItemContainer.sealSlot correctly overwrites getTransferPolicy, Entity.health works again
2.4.0b122o1
- Minor tweaks & internal refactor
2.4.0b122
- Added World.addListenerChunkStateChanged(listener, statesList)/addLocalListenerChunkStateChanged methods to track chunks loading and unloading
- Added ability to get game settings via Game.getOption(key), use Game.getOptions to list all available keys
- Added OptionsChanged callback, which is called immediately after completing game options change
- Implemented binary data packets, pass an bytes array to send them
- Fixed dispensers functionality with modded liquid buckets and also player identifier transfering to CraftRecipePreProvided callback
2.4.0b120-121
- Fixed mod browser proxy
- Fixed broken saves bugs due to collision
- Fixed mod error messages localization
- Added API module GameController, to emulate player actions from mods
- Added Entity.getAllLocal method
- Fixed EntityAddedLocal/EntityRemovedLocal callbacks in multiplayer
- Fixed Player.localPlayerTurn
- Mod browser minor crash fixes
- In-game minor crash fixes
2.4.0b118-119
- Net protocol improvements
- Added BlockSource methods for weather control
- Added Particles.addBreakingItemParticle method
- Added Item.setShouldDespawn/setFireResistant/setExplodable methods
- Fixed memory leaks in mesh render
2.4.0b116-117
Added modded server support based on ZoteCore, related changes:
- Fixed server list tab, modpacks can now have their own server list
- Fixed player UUID was not stored, which broke local multiplayer inventory and servers
- Added sync for socket server port
- Added sync for biome ids
- Other server-related fixes
- Added proxy to mod browser, which is used in case main url is not available
- Fixed client TileEntity sync, added methods onConnectionPlayer/onDisconnectionPlayer
- In case of saves failture, they will now default to empty js object
- Added ICRender condition ICRender.BlockState(x, y, z, stateId, valueState)
- Fixed UI on devices with notch (Added switch to config)
- Optimized static item models (Added to config)
- Fixed loadCustom in remote sessions
- Fixed Entity.getMobile
- Fixed World.getWorldTime on client
- Fixed frequent crashes when launching Inner Core
- Updated Rhino to latest version - javascript engine for mods
- Many optimization in native code of the Inner Core
- Added Player.localPlayerTurn(x, y)
- Added PlayerActor methods canFly/setCanFly, setPlayerBoolean/FloatAbility, getPlayerBoolean/FloatAbility
- Fixed World module was not working in remote sessions
- Added support for custom empty buckets, when registering custom liquids
- Fixed crash in block step on event
- Fixed Dimensions.transfer when transfering into the same dimension
- Minor fixes to custom dimension generator
- Fixed installation of some mods
2.3.1b115
- A lot of minor optimizations, fixes and stability improvements
- Fixed some recipes were missing in workbench (like IC2 batteries)
- Mod loading priority support
- Preview built-in ECS
- Added ItemModel.setSpriteHandRender method
- Added CustomDimensionGenerator method CustomDimensionGenerator.setGenerateCaves(generate[, generateUnderwater]), fixed underwater caves generated by default
- Added BlockSource method listEntitiesOfTypeInAABB(x1, y1, z1, x2, y2, z2, stringType), fixed listEntitiesInAABB for exact type
- Added Player.getLocal() and Player.getServer() methods
- Added UI.getMinecraftUiScale() and UI.getRelMinecraftUiScale() methods
- Fixed enchant custom callbacks crash
- Fixed knockback resistance for custom armor
- Fixes for mod installation
2.2.1b114
This update introduces series of global optimizations, significantly increasing overall performance.
For users, who have Kernel Extension installed, it must be updated to the final version!
2.2.1b107-108
- Fixed and improved workbench API, added full support for 2x2 recipes
- Fixed workbench was not triggering screen change callback
- Fixed bug that some blocks and items were not created properly
2.2.1b106
- Vanilla Crafting Table now supports modded recipes. Crafting Table UI override was disabled, but can be enabled in settings, if something will go wrong.
- Faster access to modded tile entities via coordinates
- Fixes and optimization for C++ to Java calls
2.2.1b105
- Added experimental API for creating custom enchants
- Minor optimization for C++ to Java calls
- Minor fixes for icons in UI
2.2.1b104
- Fixed last item in hend was not spending
- Fixed animated liquid textures
- Fixed endless custom buckets in survival
- Now changing items in ItemUse callback are handled correctly when not prevented
- Added Block.registerClickFunction[ForID](nameId/id, (coords, item, block, player) => void)
- Fixed position, passed dispense callback, added slot parameter (4th argument)
2.2.1b103
- When creating liquids you can now automatically create buckets with full functionality (see docs)
- Added isRenewable parameter for custom liquids
- Fixed bucket interaction with custom liquids
2.2.1b102
- Added methods for creating liquid blocks
- Fixed some mod manager issues and crashes, added ability to search mod by it's ID
- Added Entity.hasEffect(entity, effectId) and Entity.getEffect(entity, effectId)
- Added BlockSource.setDestroyParticlesEnabled(boolean) method
- Fixed Item.invokeItemUseOn not using given entity block source
- Fixed vanilla swords tool data
- Fixed destroying attachables was causing crash
- Fixed creating block states by block ID
- Fixed BlockState.addStates was not accepting JS object
- Other minor fixes
2.2.1b101
- Fixed some fence blocks were not displayed correctly in world
2.2.1b100
- Added Block.getMaterial(blockId)
- Added PlayerActor methods: getItemUseDuration(), getItemUseIntervalProgress(), getItemUseStartupProgress()
- Fixed multiplayer mod list was built with incorrect mod list
- Fixed BlockSource.listEntitiesInAABB was not returning player, when passed no filter parameters
2.2.1b99
- Fixed syncing runtime IDs in multiplayer could fail
- Fixed multiplayer mod list check was not working
- Fixed startup crash on old android versions on some devices
2.2.1b98
- Fixed Commands.exec
- Fixed Entity.getNameTag
2.2.1b97
- Now when connecting to remote world, additional synchronization is done, to assure block runtime IDs will match even in case of different mods.
2.2.1b96
- Added methods Recipes.getAllWorkbenchRecipes() and Recipes.getAllFurnaceRecipes()
- Added method BlockSource.getBiomeDownfallAt(x, y, z)
- Added slot element properties: iconScale and disablePixelPerfect
- Added methods for UI.Window: updateScrollDimensions() and updateWindowPositionAndSize()
- Added new text alignment type: 3 - ALIGN_CENTER_HORIZONTAL
- Added functon runOnClientThread(function), works as runOnMainThread, but for client ticking thread
- Fixed some item IDs compatibility and related recipes - nether start, melon, records, horse armor, fireball, fireworks
- Fixed chestplate model for modded armor
2.2.1b95
- Added BlockSource methods setExtraBlock(x, y, z, BlockState/[id, data]) and getExtraBlock(x, y, z) -> BlockState to access and modify extra blocks, such as liquids in other blocks
- Added block description parameters can_contain_liquid and can_be_extra_block
- Added methods Block.canContainLiquid(id) and Block.canBeExtraBlock(id)
- Fixed settings changes were not applied on first launch after change
- Fixed crashes in mod config
- Fixed language settings were not loaded correctly
- Added developer option to output block state info dump
2.2.1b94
- Fixed new modpack selecting bug from 2.2.1b93
- Fixed Item.isValid(id), added IDRegistry.getStringIdAndTypeForItemId(id), IDRegistry.getTypeForItemId(id), IDRegistry.getStringIdForItemId(id) methods
- Fixed getEnchantName from ItemExtraData
2.2.1b93
- Fixed modded food
- Restored basic functionality of PathNavigation
- Added API to override underwater fog parameters and fixed underwater fog in custom dimensions
- Added EntityAddedLocal and EntityRemovedLocal callbacks - client side variants of EntityAdded and EntityRemoved
- Fixed Entity.setOffhandItem
- Added Dimensions.getAllRegisteredCustomBiomes() method, returning map of all custom biomes
- Various possible in-game chashes fixed
- Fixed some mod manager crashes and minor redesign
- Fixed wrong modpack can be loaded, when multiple modpacks are installed
- Improved Chinese support
2.2.1b92
- Errors in updatables (for example machines) now will not shutdown all mods until world reload. Instead it will disable only updatable, causing error.
- Crash fixes
2.2.1b90-91
- Previous version hotfix
2.2.1b89
- Fixed bug when block IDs were not synced in multiplayer
- Added vanilla block states API
- Fixed workbench for connected players
- Fixed generation callbacks errors
- Improved saves stability
- Fixed links and guides page
- Fixed excess items were added to creative
2.2.1b88
- Added callback EntityPickUpDrop(entity, dropEntity, dropStack, count), it is called, when entity picks up dropped item, right now works only for players
- Updated guides and links page, added links to mod and modpack development guides
- Minor fixes for ItemModel and other crashes and errors
2.2.1b87
- Fixed modpack system and mod manager issues
- Fixed missing or invalid workbench recipes and item icons
- Added useful links to preferences and links menu
2.2.1b86
- Global engine optimization will increase overall modded performance
- Fixed lags in creative inventory, when items with extra data are present
- Minor optimization for creative search
2.2.1b85
- Massive update to mod manager with alot of new features, fixes and improvements
- Added modpack support, including installation, modification and creating your own
- Block models are now loading faster and consume less RAM
- BlockSource.breakBlock/ForJsResult methods now also invoke DestroyBlock callback, if actor is passed as a parameter and exists in BlockSource's dimension (and it was not prevented by BreakBlock callback)
2.2.0b84
- Added PreProcessChunk and PostProcessChunk callbacks - universal world generation callbacks. First one called before vanilla structures generation and second one after it. All others callbacks are called after vanilla generation but before PostProcessChunk.
- Fixed missing bed and chest recipes
- Fixed using mesh in ActorRenderer
- Fixed rare crashes when entering and leaving the world
- Fixed transparency was not working for far blocks
- Fixed config.json interaction with .redirect
- Added slot element binding selection_forced
2.2.0b83
- Rework for block drop system
- Added callback BreakBlock(BlockSource, position, block, isDropAllowed, player, item) - called when block is destroyed, unlike DestroyBlock can be called not only when block is destroyed by player, but also by new BlockSource methods. This callback is used for block drops, player destroy logic must remain in DestroyBlock.
- Drop functions now using BreakBlock
- Added methods to BlockSource: breakBlock(x, y, z, isDropAllowed[, actor][, item]) - destroys block, calls BreakBlock, breakBlockForJsResult(x, y, z[, actor][, item]) - same as breakBlock, but instead of dropping items and exp orbs, returns:
{ experience:, items: [{ id:, count:, data:, extra: }, ... ] }
2.2.0b82
- Added ItemContainer methods setSlotSavingEnabled(name, enabled), setGlobalSlotSavingEnabled(enabled), they are used to control, which slots are saved
- Added parameter to destroy method of tile entity, that indicates, if it was destroyed in DestroyBlock callback
- Optimized inventory editing methods for player
- Fixed editing player abilities, including flying
- Fixed server open listener in ItemContainer was called before open packet is sent
- Fixed some furnace recipes
- Fixed loading bug on older Android versions
- Fixed breaking ice
2.2.0b79-81
- Added missing and fixed existing workbench recipes
- Fixed constant startup crashes on some devices (new bug since 1.16.201)
- Fixed frequend startup crashes on some devices (old bug since 1.11.4)
2.2.0b78
- Continued fixing worldgen
2.2.0b77
- Fixed modded world generation was called multiple times per chunk. It will significantly reduce lag.
- Modded world generation now called AFTER vanilla worldgen
- Another attemt to fix loading mods on some devices
- Added log methods: Logger.debug(tag, message), Logger.info(tag, message), Logger.error(tag, message[, error])
2.2.0b76
- Fixed loading mods with resource packs
- Fixed saves errors
- Fixed loading mods on some devices
- Added parameter "category" in Item.createItem
2.2.0b75
Updated for Minecraft 1.16.201
- Multiplayer might experience some issues with ID sync, if it happens, try swapping host and client
- Added API for armor and attachable renderer
- Major refactor for mod loader
- Major refactor for saves system and some other engine modules
- Started working on ECS and Java API
2.1.0b72
- Now, when connecting to host with some blocks or items, missing on client, placeholders will be created to prevent crash
- Native protocol tested on extremely high load, possible lags and crashes fixed
2.1.0b71
- (Experimental) Saving previously logged in Xbox account
- Minor fixes
2.1.0b70
- Added multiplayer FAQ in Xbox login window
- Increased initialization packet timeout up to 90 seconds
- Fixes for network entities
- Other minor fixes
2.1.0b69
- Fixed items with extra data were sometimes invisible in vanilla UI
- Added getLightLevel(x, y, z) to BlockSource
2.1.0b68
- Minor improvements to native protocol (Xbox multiplayer)
2.1.0b65-67
- Made Xbox login functional on most devices
2.1.0b64
Added experimental custom Xbox login feature.
You can connect to your friends from Xbox account with same mods as yours (with multiplayer support). Xbox connection will use only native protocol, that was added in 2.1.0b63.
2.1.0b63
- Added ability to use multiplayer with native Minecraft protocol. This option can be turned on in engine config. Native protocol might reduce ping, but could be less stable.
- Minor fixes
2.1.0b61-62
- Fixes for ItemContainer and BlockSource
- Other fixes
2.1.0b60
- Added method exists() to animations
- Minor fixes
2.1.0b59
- Added methods BlockRenderer.setCustomRaycastShape(id, data, collisionShape), BlockRenderer.setCustomCollisionAndRaycastShape(id, data, collisionShape)
- Added methods BlockRenderer.mapCollisionModelAtCoords(dimensionId, x, y, z, model), BlockRenderer.mapRaycastModelAtCoords(dimensionId, x, y, z, model), BlockRenderer.mapCollisionAndRaycastModelAtCoords(dimensionId, x, y, z, model), for collision and raycast shape mapping, passing null model will unmap it, mapping works on any block including air
- Added BlockSource method getBlock(x, y, z), returning object, that contains both ID and data
- Clearing mapped render models (not collision ones) on local player dimension change as well as animations
- Other minor fixes
2.1.0b58
- Minor fixes
2.1.0b57
- Added method Network.inRemoteWorld() - returns
true, if player connected to remote world - Added callback ItemUseLocal(coords, item, block, player) for client side item use
- Added callback ConnectingToHost(host, minecraftPort, moddedPort)
- Improvements for NetworkConnectedClientList
- Added method BlockSource.getCurrentClientRegion()
- Other minor fixes
2.1.0b56
- New item caching system, that caches every complex icon, not only custom models and allows creating of model cache groups
- Call ItemModel.setCurrentCacheGroup("groupName", "version") at the start of your mod to create cache group, it will be applied to all models, created at the root of your mod (including default ones). If specified version does not match cache version, whole group will be re-created.
- Fixed ItemContainer interaction with items with extra data
2.1.0b55
- Fixed compatibility with Recipe Viewer
- Added block special type parameter color_source, can be one of "none", "leaves", "grass", "water"
- Sped up loading of item models and made it less RAM consuming
- Minor improvements
2.1.0b48-54
Following updates contain fixes for multiplayer update.
2.1.0b47
This update adds experimental LAN multiplayer support, allowing players on same Wi-Fi and same set of mods play together.
Playing with mods without multiplayer support (warning will appear) might cause undefined behaviour or even crash, so do it at your own risk.
Alot of new API modules, callbacks and functions were introduced in this update, but backwards compatibility remains. There will be a migration guide for mod developers.
2.0.5b46
- Fixed 2.0.5b45 bug, which caused icon problems of items with extra data
- Fixed mod manager didn't show redirected mods
2.0.5b45
- Added item model method setModelOverrideCallback(function(item) { ... }), acts like itemOverrideFunctions, but returns ItemModel instance, instead of icon
- Added method ItemModel.newStandalone(), creates empty ItemModel instance, not linked to any item, this models should be used in setModelOverrideCallback
- Item override function now receives extra data
- Fixed crash, caused by calling toScriptable() method of NBT tags
- D8 dexer, instead of old DX is now used to build dex files from java
2.0.5b44
- Mods now can access and modify NBT of entities, tile entities and items
- Added functions: Entity.getCompoundTag(entity), Entity.setCompoundTag(entity, tag)
- Added methods to vanilla TileEntity, returned by World.getContainer(): getCompoundTag(), setCompoundTag(tag)
- Added methods to ItemExtraData: getCompoundTag(), setCompoundTag(tag)
- Mod UI now supports modded animated item icons
- Icon override functions now receives second parameter - isModUi
- Added function Debug.big, acts like Debug.m, but outputs dialog with selectable text and pretty JSON
- TileEntity function click now receives additional parameter - click coords
- Fixed rare addon-related crash
2.0.4b43
- Automatically deleting resource and behavior packs from uninstalled mods upon world load
- RenderMesh now can receive not only absolute file path, but also resource path and name of file in models/ dir in resources.
- Deprecated slot element parameters isTransparentBackground and needClean, now slot supports transparent background by default
- Added container method setOnOpenListener(function(container, window) { ... })
- Removed shared objects, built for x86 ABI to reduce overall weight
- Fixed error, that occurred after second WRAP_JAVA call on same class




