
Server tick time (mspt) graph before and after installing Canary. Measurements made in an existing world at a render distance of 18.
Canary for Minecraft Forge
Canary is a general optimization mod and unofficial fork of Lithium mod for Minecraft Forge. It works on both the client and server, and can be installed on servers without requiring clients to also have the mod.
Canary contains the original Lithium optimizations(mob Ai, chunk loading, game physics, etc..) and also, Canary contains new optimizations to make the gameplay smoother, without changing any behavior.
Configuration
Canary makes use of an unusual configuration system which can be used to enable or disable certain patches. For more information, please read the wiki entry.
Modpack Permissions
Of Course, You can include it in your modpack.
Issues and Feature Requests
Please use the issue tracker linked at the bottom of the page to report bugs, crashes, and if you want to propose new features or otherwise contribute to the mod, i will gladly accept pull requests, as well!
If you want to support me, use my code AbdElAziz333 to get 25% off your first month and enjoy playing with your friends!
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
- Please make sure to backup your world before updating!
- Update for 1.20.4.
Please make sure to backup your world before updating!
Additions
- New: ai.replace_streams.storage: optimize performance by replacing streams with imperative approach. ([c1672dd](https://github.com/AbdElAziz333/Canary/commit/c1672dd0431850eae898da6cb74005ef597650e6))
- Change: disable ai.nearby_entity_tracking by default as it affects performance. ([c1672dd](https://github.com/AbdElAziz333/Canary/commit/c1672dd0431850eae898da6cb74005ef597650e6))
- Change: remove unnecessary redirection in mixin.world.inline_block_access.LevelMixin. ([2eb55f9](https://github.com/AbdElAziz333/Canary/commit/2eb55f9d027618d7fd8172398dcbb50cc2698720))
- Change: Use only one Inject annotation in two methods in mixin.collections.gamerules.GameRulesMixin. ([749161a](https://github.com/AbdElAziz333/Canary/commit/749161a337b9066814b0bc7cc024577d29a7ac47))
- Change: disable duplicated optimizations that are in Saturn mod. ([acaf2f0](https://github.com/AbdElAziz333/Canary/commit/acaf2f0b3c6b9c88cc8aa1dc790a1e68bde1ecc3))
- Change: disable mixin.entity.hopper_minecart optimizations if Hopper+ mod is loaded. ([d9d389e](https://github.com/AbdElAziz333/Canary/commit/d9d389e28cc58ce1949dcc467d3f8725b322e52e))
Please make sure to backup your world before updating!
Additions
- New: ai.replace_streams.storage: optimize performance by replacing streams with imperative approach. ([c1672dd](https://github.com/AbdElAziz333/Canary/commit/c1672dd0431850eae898da6cb74005ef597650e6))
- Change: disable ai.nearby_entity_tracking by default as it affects performance. ([c1672dd](https://github.com/AbdElAziz333/Canary/commit/c1672dd0431850eae898da6cb74005ef597650e6))
- Change: remove unnecessary redirection in mixin.world.inline_block_access.LevelMixin. ([2eb55f9](https://github.com/AbdElAziz333/Canary/commit/2eb55f9d027618d7fd8172398dcbb50cc2698720))
- Change: Use only one Inject annotation in two methods in mixin.collections.gamerules.GameRulesMixin. ([749161a](https://github.com/AbdElAziz333/Canary/commit/749161a337b9066814b0bc7cc024577d29a7ac47))
- Change: disable duplicated optimizations that are in Saturn mod. ([acaf2f0](https://github.com/AbdElAziz333/Canary/commit/acaf2f0b3c6b9c88cc8aa1dc790a1e68bde1ecc3))
- Change: disable mixin.entity.hopper_minecart optimizations if Hopper+ mod is loaded. ([d9d389e](https://github.com/AbdElAziz333/Canary/commit/d9d389e28cc58ce1949dcc467d3f8725b322e52e))
Please make sure to backup your world before updating!
Additions
- New: ai.replace_streams.storage: optimize performance by replacing streams with imperative approach. ([c1672dd](https://github.com/AbdElAziz333/Canary/commit/c1672dd0431850eae898da6cb74005ef597650e6))
- Change: disable ai.nearby_entity_tracking by default as it affects performance. ([c1672dd](https://github.com/AbdElAziz333/Canary/commit/c1672dd0431850eae898da6cb74005ef597650e6))
- Change: remove unnecessary redirection in mixin.world.inline_block_access.LevelMixin. ([2eb55f9](https://github.com/AbdElAziz333/Canary/commit/2eb55f9d027618d7fd8172398dcbb50cc2698720))
- Change: Use only one Inject annotation in two methods in mixin.collections.gamerules.GameRulesMixin. ([749161a](https://github.com/AbdElAziz333/Canary/commit/749161a337b9066814b0bc7cc024577d29a7ac47))
- Change: disable duplicated optimizations that are in Saturn mod. ([acaf2f0](https://github.com/AbdElAziz333/Canary/commit/acaf2f0b3c6b9c88cc8aa1dc790a1e68bde1ecc3))
- Change: disable mixin.entity.hopper_minecart optimizations if Hopper+ mod is loaded. ([d9d389e](https://github.com/AbdElAziz333/Canary/commit/d9d389e28cc58ce1949dcc467d3f8725b322e52e))
- Change: remove the inventory access optimization as it doesn't make a big difference.
- Change: remove duplicated epsilon check in mixin.shapes.specialized_shapes.
- Change: disable hopper optimizations by default as it affects Forge and many other mods.
- Change: remove the inventory access optimization as it doesn't make a big difference.
- Change: remove duplicated epsilon check in mixin.shapes.specialized_shapes.
- Change: disable hopper optimizations by default as it affects Forge and many other mods.
- Change: remove the inventory access optimization as it doesn't make a big difference.
- Change: remove duplicated epsilon check in mixin.shapes.specialized_shapes.
- Change: disable hopper optimizations by default as it affects Forge and many other mods.
If you got into any issue when using Canary, please make sure to report it in the issue tracker from [here](https://github.com/AbdElAziz333/Canary/issues).
To see the available configurable options, press [here](https://github.com/AbdElAziz333/Canary/wiki).
Additions
- New: allow the cached ominous banner to be used on Raid#pickUpItem() method.
- Change: cache Raid#getLeaderBannerInstance to be only one instance.
- Change: remove two duplicated accessors.
- Change: allow the hoppers use CanaryStackList.
- Change: hopper optimizations will be disabled automatically if easy villagers mod is loaded.
- Change: separate ServerChunkCacheMixin in other package in mixin.chunk.replace_streams.servercore_compat and disable it automatically if ServerCore is installed.
- Change: add BlockEntityMixin, NbtCompoundMixin($Type) and ObtainRaidLeaderBannerGoalMixin to canary.mixins.json.
If you got into any issue when using Canary, please make sure to report it in the issue tracker from [here](https://github.com/AbdElAziz333/Canary/issues).
To see the available configurable options, press [here](https://github.com/AbdElAziz333/Canary/wiki).
Additions
- New: allow the cached ominous banner to be used on Raid#pickUpItem() method.
- Change: cache Raid#getLeaderBannerInstance to be only one instance.
- Change: remove two duplicated accessors.
- Change: allow the hoppers use CanaryStackList.
- Change: hopper optimizations will be disabled automatically if easy villagers mod is loaded.
- Change: separate ServerChunkCacheMixin in other package in mixin.chunk.replace_streams.servercore_compat and disable it automatically if ServerCore is installed.
- Change: add BlockEntityMixin, NbtCompoundMixin($Type) and ObtainRaidLeaderBannerGoalMixin to canary.mixins.json.
If you got into any issue when using Canary, please make sure to report it in the issue tracker from [here](https://github.com/AbdElAziz333/Canary/issues).
To see the available configurable options, press [here](https://github.com/AbdElAziz333/Canary/wiki).
Additions
- New: allow the cached ominous banner to be used on Raid#pickUpItem() method.
- Change: cache Raid#getLeaderBannerInstance to be only one instance.
- Change: remove two duplicated accessors.
- Change: allow the hoppers use CanaryStackList.
- Change: hopper optimizations will be disabled automatically if easy villagers mod is loaded.
- Change: separate ServerChunkCacheMixin in other package in mixin.chunk.replace_streams.servercore_compat and disable it automatically if ServerCore is installed.
- Change: add BlockEntityMixin, NbtCompoundMixin($Type) and ObtainRaidLeaderBannerGoalMixin to canary.mixins.json.
If you got into any issue please make sure to report it in the issue tracker from [here](https://github.com/AbdElAziz333/Canary/issues).
For a list of the available configurable optimizations, press [here](https://github.com/AbdElAziz333/Canary/wiki).
Additions
- New: mixin.chunk.replace_streams: optimize chunks ticking by replacing streams with imperative approach.
- Change: store only one copy of default block states.
- Change: remove duplicated accessor in block.hopper.
- Fix: hoppers doesn't fills an incubator from easy villagers mod correctly. [Closes #199](https://github.com/AbdElAziz333/Canary/issues/199).
- Fix: mixin.world.block_entity_ticking.sleeping: crash when /perf command prints position of sleeping block entity. [Closes #201](https://github.com/AbdElAziz333/Canary/issues/201).
If you got into any issue please make sure to report it in the issue tracker from [here](https://github.com/AbdElAziz333/Canary/issues).
For a list of the available configurable optimizations, press [here](https://github.com/AbdElAziz333/Canary/wiki).
Additions
- New: mixin.chunk.replace_streams: optimize chunks ticking by replacing streams with imperative approach.
- Change: store only one copy of default block states.
- Change: remove duplicated accessor in block.hopper.
- Fix: hoppers doesn't fills an incubator from easy villagers mod correctly. [Closes #199](https://github.com/AbdElAziz333/Canary/issues/199).
- Fix: mixin.world.block_entity_ticking.sleeping: crash when /perf command prints position of sleeping block entity. [Closes #201](https://github.com/AbdElAziz333/Canary/issues/201).
If you got into any issue please make sure to report it in the issue tracker from [here](https://github.com/AbdElAziz333/Canary/issues).
For a list of the available configurable optimizations, press [here](https://github.com/AbdElAziz333/Canary/wiki).
Additions
- New: mixin.chunk.replace_streams: optimize chunks ticking by replacing streams with imperative approach.
- Change: store only one copy of default block states.
- Change: remove duplicated accessor in block.hopper.
- Fix: hoppers doesn't fills an incubator from easy villagers mod correctly. [Closes #199](https://github.com/AbdElAziz333/Canary/issues/199).
- Fix: mixin.world.block_entity_ticking.sleeping: crash when /perf command prints position of sleeping block entity. [Closes #201](https://github.com/AbdElAziz333/Canary/issues/201).
- Make sure to backup your world before updating..
- Fix: PoiSection mixin is not applied.
- Make sure to backup your world before updating..
- Fix: create new POI section instance
Change: disable util.block_tracking as it completely unused and causes issues.
Change: disable util.block_tracking as it completely unused and causes issues.
Change: disable util.block_tracking as it completely unused and causes issues.
- Highly recommended to take a backup to your world before updating.
- This update returns many optimizations (hopper, AIs and more), changes and bug fixes.
- If you got into any issue please make sure to report it from [here](https://github.com/AbdElAziz333/Canary/issues).
- In the coming updates, i will add my own optimizations, so stay tuned!
- Highly recommended to take a backup to your world before updating.
- This update returns many optimizations (hopper, AIs and more), changes and bug fixes.
- If you got into any issue please make sure to report it from [here](https://github.com/AbdElAziz333/Canary/issues).
- In the coming updates, i will add my own optimizations, so stay tuned!
- Highly recommended to take a backup to your world before updating.
- This update returns many optimizations (hopper, AIs and more), changes and bug fixes.
- If you got into any issue please make sure to report it from [here](https://github.com/AbdElAziz333/Canary/issues).
- In the coming updates, i will add my own optimizations, so stay tuned!
Fix incompatibility with modernfix mod.
Fix incompatibility with modernfix mod.
Fix incompatibility with modernfix mod.
Fix incompatibility with modernfix mod.
- Fixed ClassCastException crash.
- Fixed ClassCastException crash.
- Fixed ClassCastException crash.
- Fixed ClassCastException crash.
