World Config mod promotional banner

tModLoader 2026.3.3.0 · Terraria 1.4.4.9 · .NET 8

Resize worlds. Tune every ore. Shape generation before you hit Create.

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.

  • 21 wiki ores catalogued
  • 19 per-ore multipliers
  • 59 unit tests (Core + config presets)
  • Settings saved between sessions

Beginner?

Turn custom gen ON, pick Large preset, bump Copper to ×2, create world. Done.

Step-by-step →

Power user?

Hook map, ore phases, supplement passes, and persistence file format — all documented.

Architecture →

Modder?

Clone, test.bat or Test.gui.bat, build.bat, read AGENTS.md before touching menu UI.

Contributor guide →

Quick Start

Idiot-proof path from zero to a custom world in under five minutes.

  1. Install tModLoader & build the mod

    Steam → tModLoader 1.4.4+. Close the game. Run build.bat in the repo. Enable WorldConfigMod → Reload.

  2. Open the right screen

    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.

  3. Flip the master switch

    Inside the panel, turn Use Custom Generation ON. If this stays OFF, Terraria is 100% vanilla — no exceptions.

  4. Pick a preset (optional)

    Presets tab → size chips S–XXL, or bundles like Resource Rich / Cave Labyrinth. Summary strip shows live size + change count.

  5. Tweak one thing you care about

    Examples: World width 8400 · Ores Hellstone ×3 · Features Floating Islands ×2 · Shape dungeon forced left.

  6. Apply & create

    Apply & Back → vanilla Create. Settings auto-save to your tModLoader save folder.

Features

Everything gated on UseCustom. OFF = vanilla only.

Settings Reference

Ranges and defaults from WorldGenConfig.cs.

Ore Catalog

21 types from the Terraria wiki. 19 have sliders; 2 are info-only.

Install & Build

Windows-first script; manual path for other OS.

Windows — build.bat

build.bat

Output: %USERPROFILE%\Documents\My Games\Terraria\tModLoader\Mods\WorldConfigMod.tmod

ExitMeaning
0Success
1tModLoader not found
2Game still running
3Robocopy failed
4Build failed
5.tmod missing

Tests

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.

Env overrides

  • TML_DIR — install with tModLoader.dll
  • TML_DATA_DIR — ModSources / Mods root
  • MOD_NAME — default WorldConfigMod
  • BUILD_CONFIG — Release | Debug

Troubleshooting

Advanced

Hooks, data flow, and foot-guns for experienced modders.

Generation pipeline

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

Menu UI — do not break

  • Config uses Main.MenuUI.SetState — never hijack menuMode alone (black screen).
  • Overlay/toasts: DrawMenu + Matrix.Identity + framebuffer viewport coords.
  • Cursor: redraw after HUD via RedrawMenuCursor().
  • Panel: UserInterface in layout space — do not nest inside menu SpriteBatch.Begin.

Repo map (mod code only)

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).

Contribute

How agents and humans should work in this repo.

Read order

  1. AGENTS.md — rules for AI + humans
  2. DOCS/SUMMARY.md — live status
  3. DOCS/MODDING_GUIDE.md — edit recipes
  4. DOCS/ARCHITECTURE.md — hooks

Doc hygiene (every meaningful PR)

  • Append to DOCS/CHANGELOG.md and DOCS/SUMMARY.md — never delete doc history.
  • Update AGENTS.md when layout, hooks, or agent workflow changes.
  • Sync this website (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.

Known gaps

  • Multiplayer config sync — not implemented
  • Some EXPANSIONS.md items — roadmap only