MCPcopy Index your code
hub / github.com/CaffeineMC/lithium

github.com/CaffeineMC/lithium @mc26.2-0.25.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release mc26.2-0.25.0 ↗ · + Follow
2,373 symbols 6,590 edges 639 files 271 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Lithium

Lithium is a free and open-source Minecraft mod which works to optimize many areas of the game in order to provide better overall performance. It works on both the client and server, and doesn't require the mod to be installed on both sides.

📥 Downloads & Installation

Download Lithium from Modrinth or CurseForge.

Lithium supports two mod loaders: Fabric and the NeoForge. You can use a launcher (e.g. the Modrinth launcher) to install lithium. Alternatively, you can install lithium manually by placing lithium's jar-file in the mods folder of your game after you have installed the corresponding mod loader.

📝 Why Choose Lithium?

Lithium is the perfect drop-in mod for players who want more performance without affecting their gameplay. It doesn't change any game mechanics or visuals, it just makes the game run faster. Lithium is compatible with most other mods, so you can use it alongside your favorite mods without any issues.

If you do encounter an issue where Lithium deviates from the norm or does not work with another mod, please don't hesitate to 📬 open an issue. Before opening a new issue, please check using the search tool that your issue has not already been created, and that if there is a suitable template for the issue you are opening, that it is filled out entirely. We will provide workarounds and fixes for issues as soon as possible.

🌟 Support the Development

Lithium is actively developed by 2No2Name since JellySquid has stepped down from active development in 2020. Several other contributors have also helped with the development of Lithium, and we are grateful for their contributions.

If you would like to support the development of Lithium, you can do so by joining the community and contributing to the project, or by signing up on patreon:

Author Role Links
2No2Name's Avatar 2No2Name Developer Patreon
jellysquid3's Avatar JellySquid Former Developer

💬 Join the CaffeineMC Community

We have an official Discord community for all of our projects. By joining, you can: - Get installation help and technical support with all of our mods - Be notified of the latest developments as they happen - Get involved and collaborate with the rest of our team - ... and just hang out with the rest of our community.


⚙️ Configuration

Out of the box, no additional configuration is necessary once the mod has been installed. Lithium is made of a collection of vastly different optimizations. Very few optimizations depend on each other, enabling you to resolve mod compatibility issues by disabling problematic optimizations. Optimizations are disabled by default if there is a major issue with them that has not yet been resolved.

As such, an empty config file simply means you'd like to use the default configuration, which includes all stable optimizations by default. For the list of options, see the configuration file summary.

🛠️ Bleeding-edge builds (unstable)

GitHub build status

If you are a player who is looking to get your hands on the latest bleeding-edge changes for testing, consider taking a look at the automated builds produced through our GitHub Actions workflow . This workflow automatically runs every time a change is pushed to the repository, and as such, the builds it produces will generally reflect the latest snapshot of development.

Bleeding edge builds will often include unfinished code that hasn't been extensively tested. That code may introduce incomplete features, bugs, crashes, and all other kinds of weird issues. You should not use these bleeding edge builds unless you know what you are doing and are comfortable with software debugging. If you report issues using these builds, we will expect that this is the case. Caveat emptor.


🛠️ Building from sources

Lithium uses the Gradle build tool and can be built with the gradle build command. The build artifacts (production binaries and their source bundles) can be found in the build/mods directory.

The Gradle wrapper is provided for ease of use and will automatically download and install the appropriate version of Gradle for the project build. To use the Gradle wrapper, substitute gradle in build commands with ./gradlew.bat (Windows) or ./gradlew (macOS and Linux).

📜 License

Lithium is licensed under GNU LGPLv3, a free and open-source license. For more information, please see the license file.

Extension points exported contracts — how you extend this code

LithiumInventory (Interface)
Provides the ability for mods to allow Lithium's hopper optimizations to access their inventories' for item transfers. T [10 …
common/src/api/java/net/caffeinemc/mods/lithium/api/inventory/LithiumInventory.java
VoxelShapeCaster (Interface)
Provides a simple interface for directly querying intersections against a shape. This can be used instead of the expensi [5 …
common/src/main/java/net/caffeinemc/mods/lithium/common/shapes/VoxelShapeCaster.java
SleepingBlockEntity (Interface)
(no doc) [13 implementers]
common/src/main/java/net/caffeinemc/mods/lithium/common/block/entity/SleepingBlockEntity.java
SetChangedHandlingBlockEntity (Interface)
(no doc) [7 implementers]
common/src/main/java/net/caffeinemc/mods/lithium/common/block/entity/SetChangedHandlingBlockEntity.java
InventoryChangeEmitter (Interface)
Interface for Objects that can emit various inventory change events. This does not mean that the inventory creates those [4 …
common/src/main/java/net/caffeinemc/mods/lithium/common/block/entity/inventory_change_tracking/InventoryChangeEmitter.java

Core symbols most depended-on inside this repo

getX
called by 92
common/src/main/java/net/caffeinemc/mods/lithium/common/util/math/MutableVec3d.java
getZ
called by 91
common/src/main/java/net/caffeinemc/mods/lithium/common/util/math/MutableVec3d.java
getY
called by 69
common/src/main/java/net/caffeinemc/mods/lithium/common/util/math/MutableVec3d.java
isEmpty
called by 65
common/src/main/java/net/caffeinemc/mods/lithium/mixin/block/flatten_states/FluidStateMixin.java
max
called by 62
common/src/main/java/net/caffeinemc/mods/lithium/common/shapes/VoxelShapeEmpty.java
get
called by 62
common/src/main/java/net/caffeinemc/mods/lithium/common/util/collections/LazyList.java
get
called by 62
common/src/main/java/net/caffeinemc/mods/lithium/mixin/ai/poi/SectionStorageMixin.java
set
called by 61
common/src/main/java/net/caffeinemc/mods/lithium/common/util/collections/LazyList.java

Shape

Method 1,850
Class 407
Interface 103
Function 11
Enum 2

Languages

Java100%
Kotlin1%

Modules by API surface

common/src/main/java/net/caffeinemc/mods/lithium/mixin/block/hopper/HopperBlockEntityMixin.java39 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/entity/item/ItemEntityList.java35 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/util/collections/ListeningList.java34 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/util/collections/HashedReferenceList.java28 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/util/Pos.java27 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/hopper/LithiumDoubleStackList.java27 symbols
common/src/main/java/net/caffeinemc/mods/lithium/mixin/block/hopper/InventoryAccessors.java25 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/hopper/LithiumStackList.java24 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/entity/LithiumEntityCollisions.java21 symbols
common/src/main/java/net/caffeinemc/mods/lithium/mixin/entity/equipment_tracking/EntityEquipmentMixin.java20 symbols
common/src/main/java/net/caffeinemc/mods/lithium/mixin/block/fluid/flow/FlowingFluidMixin.java20 symbols
common/src/main/java/net/caffeinemc/mods/lithium/common/tracking/VicinityCache.java20 symbols

For agents

$ claude mcp add lithium \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact