MCPcopy Index your code
hub / github.com/TerraFirmaCraft/TerraFirmaCraft

github.com/TerraFirmaCraft/TerraFirmaCraft @v29.5.120

Chat with this repo
repository ↗ · DeepWiki ↗ · release v29.5.120 ↗ · + Follow
5,153 symbols 13,725 edges 643 files 485 documented · 9% updated 5d agov4.2.5 · 2026-07-03★ 67328 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

TerraFirmaCraft: The Next Generation

TFC: TNG

Build and Release 1.12.x

This project is the official port of TerraFirmaCraft (the original, also called classic) to Minecraft 1.12 and beyond.

You can find the mod on Curseforge, or stay updated by joining our Discord, and see documentation on the Wiki.

Goal

  • The ultimate goal of this project is to be the TerraFirmaCraft for 1.12+, not a mere partial imitation.
  • The idea is to stay faithful to the original where possible, but also improve the various systems and allow for better cross-mod compatibility and integration.

Contributing

  • Firstly, join our Discord, as it's where all discussion surrounding development, tasks, and decisions happens.
  • As per the Github terms of service, you grant us the right to use your contribution under the same license as this project.
  • In addition we request that you give us the right to change the license in the future.
  • Import & use the project's Code Style. (Recommend using Intellij as that's what our code style xml is based on)
  • Add the following copyright header to all Java source files:
/*
 * Work under Copyright. Licensed under the EUPL.
 * See the project README.md and LICENSE.txt for more information.
 */

Hint: Setup IntelliJ to do this automatically with a copyright profile applied to a shared scope matching pattern net.dries007.tfc..*.

Optional

  • To enable debug logging, set your run config to include this argument: -Dlog4j.configurationFile=../debug_log4j2_client.xml or _server.

Addons

We've tried to make systems extensible to addons wherever possible. If there's specific compatibility hooks or changes you'd like to see, let us know on discord.

That said, we are aware with some large structural issues surrounding the 1.12 code base, and are looking to improve those moving forward (i.e. 1.14+), to better allow addons to use TFC base classes.

License / Copyright / Credit

Primarily Copyright (c) Dries007, AlcatrazEscapee 2018 - ...

For a full list of contributors, see the git commit log.

License

Please do read the full license. It's less than 300 lines of 80 characters long.

This project is under the European Union Public Licence v1.2 (EUPL v. 1.2). Full text of the license is available in License.txt.

Textures and other art assets are made available under Creative Commons Attribution Share Alike 4.0 International (CC-BY-SA-4.0)

Credit

Based on original work by Robert "Bioxx" Anthony, Amanda "Kittychanley" Halek and others.

Parts of this project (mostly worldgen) are edited source code from the original TerraFirmaCraft for 1.7.10 mod. They are used under with permission from the original author (Bioxx).

Extension points exported contracts — how you extend this code

IButtonTooltip (Interface)
An interface for net.minecraft.client.gui.GuiButton's that have a tooltip when hovered over [12 implementers]
src/main/java/net/dries007/tfc/client/button/IButtonTooltip.java
IJEISimpleRecipe (Interface)
Wraps simple ItemStacks -> ItemStacks recipes to JEI [11 implementers]
src/main/java/net/dries007/tfc/compat/jei/IJEISimpleRecipe.java
ILightableBlock (Interface)
Marker interface for blocks that have a lit/unlit state. Removes property duplication / confusion errors Includes the ob [9 …
src/main/java/net/dries007/tfc/objects/blocks/property/ILightableBlock.java
ISlotCallback (Interface)
This is a callback for various methods on an ItemStackHandler. Methods are default to support overriding as many or as l [10 …
src/main/java/net/dries007/tfc/objects/inventory/capability/ISlotCallback.java
IMessageEmpty (Interface)
Packets that don't need to send any data and just exist as signaling points [17 implementers]
src/main/java/net/dries007/tfc/network/IMessageEmpty.java

Core symbols most depended-on inside this repo

getBlockState
called by 377
src/main/java/net/dries007/tfc/objects/blocks/plants/BlockPlantTFC.java
remove
called by 306
src/main/java/net/dries007/tfc/objects/advancements/LitTrigger.java
setBlockState
called by 252
src/main/java/net/dries007/tfc/world/classic/CustomChunkPrimer.java
add
called by 238
src/main/java/net/dries007/tfc/objects/advancements/LitTrigger.java
isEmpty
called by 227
src/main/java/net/dries007/tfc/objects/te/TEPlacedItem.java
getRegistryName
called by 209
src/main/java/net/dries007/tfc/world/classic/worldgen/vein/VeinType.java
of
called by 208
src/main/java/net/dries007/tfc/objects/inventory/ingredient/IIngredient.java
get
called by 201
src/main/java/net/dries007/tfc/objects/items/ItemGem.java

Shape

Method 4,411
Class 638
Interface 49
Enum 46
Function 9

Languages

Java100%
Python1%

Modules by API surface

src/main/java/net/dries007/tfc/objects/entity/animal/EntityRabbitTFC.java54 symbols
src/main/java/net/dries007/tfc/objects/blocks/BlocksTFC.java48 symbols
src/main/java/net/dries007/tfc/world/classic/chunkdata/ChunkDataTFC.java41 symbols
src/main/java/net/dries007/tfc/objects/entity/animal/EntityWolfTFC.java37 symbols
src/main/java/net/dries007/tfc/objects/entity/animal/EntityMuleTFC.java37 symbols
src/main/java/net/dries007/tfc/objects/entity/animal/EntityHorseTFC.java37 symbols
src/main/java/net/dries007/tfc/objects/entity/animal/EntityDonkeyTFC.java37 symbols
src/main/java/net/dries007/tfc/api/types/Plant.java35 symbols
src/main/java/net/dries007/tfc/objects/items/ceramics/ItemSmallVessel.java34 symbols
src/main/java/net/dries007/tfc/objects/entity/animal/EntitySheepTFC.java32 symbols
src/main/java/net/dries007/tfc/objects/blocks/plants/BlockPlantTFC.java32 symbols
src/main/java/net/dries007/tfc/api/types/Tree.java29 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page