Lithium

Lithium

Universal mod

No-compromises game logic/server optimization mod

Optimization

480.3K downloads
2,355 followers
Created 2 years ago
Updated 23 days ago

External resources



Project members

2No2Name

Maintainer


Technical information

License
Client side
optional
Server side
optional
Project ID
Filter versions...

This release is a backport for 1.18.2 from Lithium 0.10.2 for 1.19.2. The previous release for 1.18.2 was Lithium 0.7.10 . This backport includes many new optimizations, bugfixes and new bugs. For a list of changes, check out the changelogs of the versions 0.8 and above:

Changelogs

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.10.2 fixes two issues with the hopper optimizations.

Changes

  • change: add note about backups to LithiumConfig

Fixes

  • fix: util.inventory_change_listening: ClassCastException with modded inventories or with mixin.block.hopper=false causing inventory deletion
  • fix: block.hopper: incompatibility with SidedInventory Hoppers, e.g. from Copper-Hopper mod

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.10.1 fixes a few issues with the previously improved hopper optimizations.

Fixes

  • fix: invalidate path node type caching on data pack reload
  • fix: block.hopper: multiple hoppers fighting over double inventory causing hoppers to wake each other up
  • fix: block.hopper: concurrent modification during iteration causing cache invalidation to be skipped

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.10.0 fixes a few mod compatibility issues and a small memory leak. The Lithium PathNodeType API is removed, as Fabric-API now supports registering Blocks with custom PathNodeTypes.

Changes

  • change: ai.pathing: improved PathNode caching, better mod compatibility (fabric-api) and reduced code duplication
  • change: simplify locked hopper sleeping mixin
  • change: block.hopper: replace effective overwrite redirect with inject

Fixes

  • fix: block.hopper: set mixin priority to be before fabric-transfer-api-v1
  • fix: hopper sleeping causing fabric api item transfer to be skipped
  • fix: use set instead of list to avoid duplicated entries and memory leak with sleeping hoppers

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.9.1 fixes a critical issue with hoppers that stopped reacting to entities after being lazy loaded.

Fixes

fix: sleeping hoppers that become lazy loaded aren't woken up from entity movements (Thanks to QPCrummer)

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.9.0 is a large update that includes new block entity optimizations and fixes several issues. The block entity optimizations improve the performance of hoppers, shulker boxes, campfires, furnaces and brewing stands by skipping their tick when they can't do anything. Futhermore several small behavior changes were fixed and mod compatibility was improved.

Additions

  • new: hopper, shulker box, campfire, furnace and brewingstand sleeping
  • new: aggressive hopper sleeping with comparator, entity movement and inventory change tracking
  • new: avoid sending comparator updates when there is no comparator nearby
  • new: optimized hopper minecart item entity search
  • new: system for hopper sleeping
  • new: block entity ticker caches whether it is inside the world border
  • new: use fastutil hashmap as blockentity ticker collection

Changes

  • change: avoid implementing LithiumInventory in LockableContainerBlockEntityMixin (mod compatibility)
  • change: stationary storage minecarts on rails no longer notify hoppers in every tick
  • change: chest boats inside stationary minecarts do not trigger the movement tracking system all the time
  • change: replace suffocation overwrite with inject (mod compatibility)

Fixes

  • fix: math.sine_lut: slightly off sin() and cos() results
  • fix: unpushable_cramming: crash when entity ids are not unique (related to Hypixel/Wynncraft server)
  • fix: entity.skip_equipment_change_check: mob crossbow changes not sent to clients
  • fix: entity.fast_powder_snow_check: use landing instead of stepping block state
  • fix: block.hopper: run loot generation on chest boats when converting to lithium stack list

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.8.3 for 1.19.2 and 1.19.1

Changes

  • Update to 1.19.2 and relax version lock to allow 1.19.1

You can support me on patreon: https://www.patreon.com/2No2Name

Lithium 0.8.3 is the second release for 1.19.1! It includes a bugfix too!

Fixes

  • fix: update chunk serialization patch to new mappings

You can donate on patreon: https://www.patreon.com/2No2Name

Lithium 0.8.1 is a bugfix release. It includes a fix for the nether portal linking issues near invalid portal POIs.

Fixes

  • fix: ai.poi: POI without matching BlockState breaks nearest valid POI search

You can donate on patreon: https://www.patreon.com/2No2Name

Lithium 0.8.0 is our first release for Minecraft 1.19. The release includes a new tick scheduler optimization and updates the optimizations from the previous version.

Additions

  • new: world.tick_scheduler optimization

Changes

  • change: remove incompatible LongJumpTask optimization
  • change: refactor hopper optimization

Fixes

  • fix: item stack modification notification now supports item shadowing

You can donate on patreon: https://www.patreon.com/2No2Name

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

This is the first release candidate of Lithium for Minecraft 1.18. It is missing many of the old optimizations which haven't been ported to 1.18 yet. Also parity with changes introduced in Minecraft 1.18 hasn't been well tested. Expect bugs and backup the world before testing this version.

Additions

Changes

  • change: update some patches to Minecraft 1.18
  • change: remove lots of patches that are incompatible with Minecraft 1.18

The changelog is available on GitHub right here

This release adds fixes for several issues introduced in previous Lithium versions. Besides a serious chunk save format incompatibility with 1.18 snapshots, a memory leak and a mistake in the hopper logic are fixed. It is recommended that all users upgrade to this release.

Worlds that were used with Lithium will have chunk corruption when upgrading due to the breaking save format changes in the 1.18 snapshots. The datafixer responsible for upgrading to the new format is missing (MC-239610), which leads to chunk corruption and regeneration.

If you have used Lithium in the past and you want upgrade your world to Minecraft 1.18 snapshots, you need to follow these instructions for each world to avoid severe chunk corruption:

Instructions to avoid chunk corruption when updating to 1.18 snapshots:

If you are upgrading a world that has never been used with Lithium, or you are upgrading to a version that includes a fix for MC-239610, you are likely to be unaffected by this issue. If you are unsure, follow the instructions anyway.

  • Singleplayer instructions: Start the game with Lithium 0.7.5 installed. Instead of opening your world, select it in the list of worlds, press "Edit", press "Optimize World", then "Create Backup and Load". Wait for the world to load, this will take a long time depending on the world size. After closing the world you can upgrade it to a newer Minecraft version.
  • Server Instructions: Make a backup of the world. Start the game with the launch parameter --forceUpgrade=true, e.g. by launching the server.jar with java -jar server.jar --forceUpgrade=true. Wait for the world to load, this will take a long time depending on the world size. After closing the server you can upgrade it to a newer Minecraft version.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

The changelog is available on GitHub right here.

External resources



Project members

2No2Name

Maintainer


Technical information

License
Client side
optional
Server side
optional
Project ID