Beginner?
Turn custom gen ON, pick Large preset, bump Copper to ×2, create world. Done.
Step-by-step →tModLoader 2026.3.3.0 · Terraria 1.4.4.9 · .NET 8
A New World screen overlay with 30+ sliders, preset bundles, and a live summary — vanilla world gen stays intact; the mod replaces or supplements the passes that matter.
Turn custom gen ON, pick Large preset, bump Copper to ×2, create world. Done.
Step-by-step →Hook map, ore phases, supplement passes, and persistence file format — all documented.
Architecture →Clone, test.bat or Test.gui.bat, build.bat, read AGENTS.md before touching menu UI.
Idiot-proof path from zero to a custom world in under five minutes.
Steam → tModLoader 1.4.4+. Close the game. Run build.bat in the repo. Enable WorldConfigMod → Reload.
Main menu → Single Player → New (world creation). You should see a wide World Config button at the bottom — green accent when custom gen is ON.
Inside the panel, turn Use Custom Generation ON. If this stays OFF, Terraria is 100% vanilla — no exceptions.
Presets tab → size chips S–XXL, or bundles like Resource Rich / Cave Labyrinth. Summary strip shows live size + change count.
Examples: World width 8400 · Ores Hellstone ×3 · Features Floating Islands ×2 · Shape dungeon forced left.
Apply & Back → vanilla Create. Settings auto-save to your tModLoader save folder.
Everything gated on UseCustom. OFF = vanilla only.
Ranges and defaults from WorldGenConfig.cs.
21 types from the Terraria wiki. 19 have sliders; 2 are info-only.
Windows-first script; manual path for other OS.
build.batbuild.bat
Output: %USERPROFILE%\Documents\My Games\Terraria\tModLoader\Mods\WorldConfigMod.tmod
| Exit | Meaning |
|---|---|
| 0 | Success |
| 1 | tModLoader not found |
| 2 | Game still running |
| 3 | Robocopy failed |
| 4 | Build failed |
| 5 | .tmod missing |
test.bat
Test.gui.bat
59 xUnit cases on Core/ + WorldGenConfig — ore catalog, vanilla world sizes, vein math, reset/preset/diff counters, bundle presets. Test.gui.bat lists every test, runs detailed console output, then pauses. No game runtime required.
TML_DIR — install with tModLoader.dllTML_DATA_DIR — ModSources / Mods rootMOD_NAME — default WorldConfigModBUILD_CONFIG — Release | DebugHooks, data flow, and foot-guns for experienced modders.
clearWorld → WorldSizeSystem (dimensions) PreWorldGen → FeatureGenSystem (cave depth, jungle side, dungeon) ModifyWorldGenTasks → replace Shinies (ores) + feature supplement passes After Underworld → hellstone pass ModifyHardmodeTasks → chlorophyte + spread toggles SmashAltar / dropMeteor → HM altar ores + meteor supplement
Main.MenuUI.SetState — never hijack menuMode alone (black screen).DrawMenu + Matrix.Identity + framebuffer viewport coords.RedrawMenuCursor().UserInterface in layout space — do not nest inside menu SpriteBatch.Begin.Core/ OreCatalog, OreGenMath, OreConfigHelper
Common/ WorldGenConfig, ConfigPersistence, Systems/, Ore/
UI/ WorldConfigUIStateV2 (default), V1, Elements/
WorldConfigMod.Tests/ 59 unit tests (Core + WorldGenConfig)
Full diagrams: DOCS/ARCHITECTURE.md (dev repo; not on this site mirror).
How agents and humans should work in this repo.
AGENTS.md — rules for AI + humansDOCS/SUMMARY.md — live statusDOCS/MODDING_GUIDE.md — edit recipesDOCS/ARCHITECTURE.md — hooksDOCS/CHANGELOG.md and DOCS/SUMMARY.md — never delete doc history.AGENTS.md when layout, hooks, or agent workflow changes.index.html / app.js data) when user-facing features ship.build.bat excludes DOCS/, tests, test.bat, Test.gui.bat, web root files — do not remove exclusions.