Earth-like world generator using real-world maps for terrain and climate, fully integrated with TerraFirmaCraft’s original content and progression

TerraFirmaCraft meets real-world geography! 🌄
Ever dreamed of surviving and thriving in a world that feels truly familiar? A world where vast oceans separate iconic continents, majestic mountain ranges scrape the sky, and sweeping deserts give way to frozen tundras - all governed by TFC's deep and authentic survival systems?
TFC: Real World makes that dream a reality. ✨
This mod reshapes your TFC world using the very layout of our own planet. Experience the ultimate exploration adventure on a grand, believable scale, where every journey feels like charting undiscovered territory on Earth itself - complete with TerraFirmaCraft's signature realism and progression. ⛏️🌱
TFC: Real World transforms the foundation of your world - not the gameplay. All the beloved TFC mechanics, resources, and challenges remain perfectly intact. What changes is the stage on which you play. 🗺️
Instead of random generation, the world's continents, mountains, oceans, and climate zones are guided by real-world data. This creates a uniquely immersive and logical geography for your survival saga.
The core TFC experience is unchanged. I simply use map data to tell the game where to place these incredible landscapes, making every world feel coherent, vast, and ripe for exploration.
The mod works by replacing TFC's default noise generators with data sampled from customizable map images. This integrates seamlessly, letting TFC's rich procedural detail fill in the local terrain.
Important Version Notice: This configuration guide applies to TFC: Real World v4.0.3+ (1.21.1), v3.0.4+ (1.20.1), and v2.0.2+ (1.18.2). If you are using an older version, I strongly recommend updating to the latest version for access to these improved configuration options. Legacy versions use a different configuration system and are no longer supported with guides.
All configuration is accessible directly from the TFC world creation screen for easy adjustment. Advanced users can also modify the config files manually.
Choose where you start your adventure:
GEOGRAPHIC: Spawn using real-world coordinates! Set a latitude and longitude.RANDOM: A random location determined by the world seed.CLASSIC: Use TFC's original coordinate-based spawning system.GEOGRAPHIC mode, set the exact center of the area where you can spawn. The game will pick a suitable nearby location.TFC's original coordinate-based spawning options (used in CLASSIC mode):
CLASSIC mode, these TFC options define the center point for spawning.GEOGRAPHIC and CLASSIC modes.Fine-tune familiar TFC world generation values.
These two values are crucial for maintaining correct map proportions. They control how many Minecraft blocks represent the real-world data.
Important: The ratio between Horizontal Scale and Vertical Scale must match the original map data's aspect ratio. If these values are set to disproportionate sizes, the world will appear stretched or squashed. The default values are correctly calibrated.
Toggle which aspects of the world are shaped by real data. Disabling a mode will revert that feature to TFC's standard procedural generation.
Generate ... from Map options enabled.Horizontal Scale or Vertical Scale unless you understand the map's proportions and want a deliberately distorted world.This guide explains how to create custom map profiles for advanced users who want to generate worlds using their own geographic data.
Map profiles organize all the map images needed for world generation. Each profile must have a maps/ directory containing the required map files:
{namespace}/{profile_name}/
├─ maps/
│ ├── continent.png
│ ├── altitude.png
│ ├── hotspots.png
│ ├── koppen.png
│ ├── temperature.png
│ └── rainfall.png
└── settings.json
Profiles can be placed in two locations:
data/tfc_real_world/profiles/{namespace}/{profile_name}/config/tfc_real_world/profiles/{namespace}/{profile_name}/ (or as ZIP files in this directory)External profiles take priority over JAR profiles with the same namespace and name.
settings.json)Each map profile requires a settings.json file that defines the profile's configuration. All fields are optional and will use default values if omitted.
Display Settings:
2147483647): Display order in the profile selection list. Lower values appear first.{}): Localized display names for the profile. Keys are language codes (e.g., "en_us", "ru_ru"), values are display strings.Spawn Settings:
12.4964): Geographic longitude for the default spawn center (Rome, Italy).41.9028): Geographic latitude for the default spawn center (Rome, Italy).Scaling Settings:
40000): The radius of the world map in blocks.20000): The height limit for terrain in blocks.Important: The ratio between horizontal_scale and vertical_scale should match your map's aspect ratio to avoid stretching or squashing.
Map Boundaries:
-170.0): Western edge of the map in degrees longitude.190.0): Eastern edge of the map in degrees longitude.-90.0): Southern edge of the map in degrees latitude.90.0): Northern edge of the map in degrees latitude.Projection:
"EQUAL_EARTH"): Map projection type. Currently only "EQUAL_EARTH" is supported.All maps must be PNG format and have identical dimensions. Maps should use an equal-area projection (e.g., Equal Earth) to maintain proper proportions.
Continent Map (continent.png): Defines landmass distribution and continental boundaries. Format: Grayscale PNG. Legend: 0 (black) = Ocean, 255 (white) = Land. This map shapes the basic layout of continents and oceans in your world.
Altitude Map (altitude.png): Defines terrain elevation and ocean depth. Format: Grayscale PNG. Legend: 0-127 = Ocean depth (darker = deeper), 128-255 = Land elevation (brighter = higher). Creates realistic mountains, hills, plains, and ocean floors. Example values: 0 = Deepest ocean, 64 = Shallow ocean, 128 = Sea level (coastline), 192 = Hills, 255 = Highest mountains.
Hotspots Map (hotspots.png): Defines volcanic hotspot locations and ages. Format: Grayscale PNG. Legend: 0 = No hotspot (age 0), 64 = Age 4 (oldest), 128 = Age 3, 192 = Age 2, 255 = Age 1 (youngest). Places TFC volcanoes in tectonically plausible areas.
Köppen Climate Map (koppen.png): Defines climate zones using the Köppen climate classification system. Format: RGB Color PNG. Each climate type has a specific RGB color that must match exactly.
Climate types and their RGB colors:
(0, 0, 220)(0, 100, 240)(0, 150, 220)(40, 80, 200)(210, 0, 0)(210, 120, 0)(200, 80, 80)(200, 120, 60)(250, 250, 0)(180, 180, 0)(120, 120, 0)(100, 240, 130)(80, 210, 120)(70, 160, 110)(170, 240, 90)(140, 200, 80)(110, 170, 70)(190, 20, 190)(160, 20, 180)(130, 20, 170)(100, 20, 160)(40, 190, 190)(30, 170, 170)(20, 150, 140)(10, 130, 110)(80, 80, 220)(70, 70, 190)(60, 60, 160)(60, 60, 130)(190, 190, 190)(80, 80, 80)Temperature Map (temperature.png): Provides temperature data used in conjunction with the Köppen map. Format: Grayscale PNG. Legend: 0 (black) = Coldest, 255 (white) = Hottest. Each Köppen climate zone interprets grayscale values within its own temperature range, so higher brightness indicates warmer temperatures for that specific climate type.
Rainfall Map (rainfall.png): Provides rainfall data used in conjunction with the Köppen map. Format: Grayscale PNG. Legend: 0 (black) = Driest, 255 (white) = Wettest. Each Köppen climate zone interprets grayscale values within its own rainfall range, so higher brightness indicates more rainfall for that specific climate type.
Consistency: Ensure all maps align properly - continents should match altitude, climate should match temperature/rainfall patterns.
Smooth Transitions: Use gradual gradients rather than sharp boundaries to avoid visual artifacts in the generated world.
Sea Level: In the altitude map, keep the sea level boundary (128) consistent with your continent map - ocean areas should have values below 128.
Color Accuracy: For the Köppen map, use the exact RGB values provided. Even small deviations will cause the mod to use the nearest matching climate type.
Testing: Test your maps with a small world first to verify proportions and alignment before creating large-scale maps.
Map Dimensions: All maps in a profile must have identical width and height. Use an equal-area projection to maintain proper proportions across the entire map.
Here's a minimal example for creating a basic island map profile:
Continent Map: Create a 1280x640 grayscale image with most of the map at 0 (ocean) and a circular island in the center at 255 (land).
Altitude Map: Create a matching 1280x640 grayscale image with ocean areas at 64 (shallow ocean), island edges at 128 (sea level), and island center at 200 (hills).
Hotspots Map: Create a 1280x640 grayscale image with most areas at 0 (no volcanoes) and a small hotspot on the island at 192 (age 2).
Köppen Map: Create a 1280x640 RGB image using (140, 200, 80) for CFB (Oceanic climate).
Temperature Map: Create a 1280x640 grayscale image with a gradient from 120 (cooler) at the edges to 180 (warmer) at the center, representing temperature variation across the island.
Rainfall Map: Create a 1280x640 grayscale image with a gradient from 140 (drier) at the edges to 200 (wetter) at the center, representing rainfall variation across the island.
Settings: Create settings.json with horizontal_scale = 40000 and vertical_scale = 20000 to match the 2:1 aspect ratio of the maps. Note that due to the 2:1, a circular island in your map will appear as an oval in the generated world.
All six maps must be exactly 1280x640 pixels and saved as PNG files in the profile's maps/ directory.
If you have suggestions or want to report a bug, please create an issue and I will definitely respond.
Dive into the ultimate survival exploration mod for TerraFirmaCraft. Start your journey on a world that feels like home, yet is filled with endless discovery. 🚀