Create Ore Excavation Deposits
ModMulti-chunk ore deposits for Create Ore Excavation — richer the further you explore.
Type
Mod
Modrinth Downloads
24
Modrinth ID
XfN8l56o
Last Updated
May 28, 2026
Description
Create Ore Excavation Deposits
Multi-chunk ore deposits for Create Ore Excavation — distance-driven richness, Xaero map overlay, per-player reveal policies, full multi-dimension support.
What you get
- Multi-chunk deposits — irregular Perlin-shaped blobs of 2–40 chunks, all sharing one ore type.
- Distance gradient — log-curve drives deposit size, richness, and which ores are eligible.
- Per-chunk gradient — the core chunk is peak yield; outer chunks fade down to a configurable floor (default 30 %).
- Biome-aware — You can configure spawn biomes (In default config: iron in mountains/taiga, gold in badlands/savanna, nether_quartz in nether biomes, etc.).
- Multi-dimension — You can configure recipie's dimensions
- Reveal policies — four modes per type: always / on_discovery (walk near) / on_proximity (visible while close) / on_prospect (Vein Finder reveals). Per-player tracking.
- World-map overlay — coloured chunks on Xaero's World Map with diagonal stripes, alpha-fade as the vein depletes, and a hover tooltip showing remaining / initial units per chunk.
- Reproducible patterns — per-dimension depositSeed override lets you copy a layout from one world to another via /coedeposits regenerate <seed>.
- Per-type placement mode — managed (our blob algorithm) or coe (let vanilla COE place, we just track for the map).
- Server-authoritative — all state in SavedData, full client-side sync.
Required
- Create Ore Excavation — the host mod it extend. Required.
- Which in turn requires Create.
Recommended
- Xaero's World Map — needed for the deposit overlay on the map. Soft dependency: if absent, generation works fine but you lose the visual.
The mod's mixin is gated client-only, so dedicated servers without Xaero won't crash.
Commands
All /coedeposits subcommands require permission level 2 (standard OP via /op <player>).
Command What it does /coedeposits tier Show distance + tier fraction at the player's position. /coedeposits list Top-10 nearest known deposits in the current dimension. /coedeposits here Info about the deposit owning the player's current chunk. /coedeposits scan Re-prospect around the player (no wipe). /coedeposits regenerate [seed] Wipe the current dimension + fresh prospect-scan. Optional seed override locks placement for reproducible patterns. /coedeposits seed Print effective deposit seed + whether it's an override or world seed. /coedeposits refill / refill all Restore the deposit at the current chunk / every deposit in the dimension. /coedeposits delete here / delete chunk Remove a whole deposit / single chunk from a deposit. /coedeposits place [<type> [<pos> [<amount> [<chunks>]]]] Admin-place a deposit. amount<0 → infinite vein, amount>0 → exact unit budget. /coedeposits replenish <rate> / replenish all <rate> Set the per-hour replenish rate for the deposit under the player, or for every deposit in the dimension. 0 disables.Configuration
All three config files auto-create on first launch with sensible defaults. You don't need to touch them to play — they exist for tuning and per-server customization.
Deposit registry
config/coedeposits/deposits.json — top-level JSON map of deposit ids → type bodies. Edit + /reload to refresh in-game. Per-entry parse errors are logged but don't break the rest.
Real entry from the bundled defaults — iron ore in overworld mountains/taiga/hills:
{ "coedeposits:iron": { "vein_recipe": "coedeposits:iron_vein", "items": [{"item": "minecraft:raw_iron", "weight": 1, "min": 1, "max": 1}], "placement": "managed", "dimensions": "minecraft:overworld", "distance": {"min": 0, "max": 99999}, "size_chunks": {"min": 4, "max": 30}, "per_chunk_units": {"min": 20000, "max": 200000}, "weight": 150, "map_color": 12895428, "biome_filter": ["c:is_mountain", "minecraft:is_taiga", "minecraft:is_hill"] } }A more advanced example — nether quartz, restricted to the nether dimension, hidden until found with a Vein Finder:
{ "coedeposits:nether_quartz": { "vein_recipe": "coedeposits:nether_quartz_vein", "dimensions": "minecraft:the_nether", "size_chunks": {"min": 4, "max": 25}, "per_chunk_units": {"min": 25000, "max": 220000}, "weight": 220, "map_color": 15790824, "biome_filter": ["minecraft:is_nether"], "reveal": "on_prospect" } }Field reference:
Field Purpose vein_recipe COE VeinRecipe id applied to the chunk's OreData. placement managed (our blob algorithm) or coe (vanilla COE places, we track for the map). Default managed. dimensions Allow-list of dimension ids. "minecraft:overworld" or ["minecraft:the_nether", "minecraft:the_end"]. Empty = any enabled dimension. distance Block distance window from spawn (managed only). size_chunks Blob size range; tier-lerped between min and max. per_chunk_units Per-chunk unit budget. max optional — without it, budget grows as min × (1 + tier × unbounded_growth). weight Weight in the weighted pick among eligible managed types. map_color RGB int for the world-map overlay. biome_filter Any-of biome tag list. Empty = any biome. reveal always / on_discovery / on_proximity / on_prospect. Defaults to the global reveal_mode. vein_recipes Alternative to vein_recipe — pool of [{recipe, weight}, …] for per-chunk weighted picks across multiple ores. vein Inline VeinRecipe (display_name, amount_multiplier_min/max, icon). Synthesised by the bundled virtual datapack — no separate file needed. drilling Inline DrillingRecipe (outputs: [{item, chance, count}], ticks, stress). Synthesised alongside vein. fillers Optional [{weight}] — adds patchy empty "tailings" chunks. Default off. replenish_rate_per_hour Units restored per hour to drilled chunks while loaded. Capped at each chunk's original yield. Default 0 (off).Server tuning
config/coedeposits-common.toml:
# Distance curve — log-scale: tier ≈ 0.5 at base_radius, ≈ 1.0 at max_radius base_radius = 1000.0 max_radius = 25000.0 # Per-chunk roll to become a deposit core core_spawn_probability = 0.02 # Per-chunk gradient floor — edges get this fraction of the core's peak edge_amount_mul = 0.3 # Pre-scan radius around spawn on server start (0 = disabled, max 16000) prospect_radius = 2000 # Open-ended growth when per_chunk_units.max is absent unbounded_growth = 50.0 # Default reveal policy (per-type override in deposits.json) reveal_mode = "ALWAYS" proximity_reveal_blocks = 256 discovery_radius_blocks = 24 # Dimensions where the mod is active enabled_dimensions = ["minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"] # Max pending placements materialised on the main thread per tick from the # async prospect queue. Dry-run picking runs off-thread; this only throttles # the hand-off step. Raise to drain the queue faster after a large /regenerate; # lower if you see tick spikes on weak CPUs. prospect_chunks_per_tick = 256 # ── Logging toggles ───────────────────────────────────────────────────── log_placement = true # new deposit placed log_discovery = true # ON_DISCOVERY / ON_PROSPECT reveal triggered log_depletion = true # chunk fully extracted, OreData wiped log_replenish_actions = false # very noisy — per-(deposit, chunk) replenish lines log_scan_summary = true # one-line summary per prospect-scan job log_scan_rejections = false # per-chunk diagnostic for failed deposit-type matches log_lifecycle = true # picker install, types loaded, queue drainClient UI
config/coedeposits-client.toml:
# Show the toggle widget on Xaero's world map. Disable if it overlaps # another mod's UI (e.g. Create: Steam 'n' Rails' Train Routes button). # The Options → Controls keybind still works either way. map_button_enabled = true map_button_x_offset = 21 map_button_y_offset = 5 map_button_anchor = "LEFT" # LEFT or RIGHT — which edge the widget anchors to # Client-cache sync packets log ("cache: +N → total M"). Noisy — off by default. log_client_sync = falseFull schema and design notes in the GitHub README.
Compatibility
- Third-party COE veins coexist — recipes you don't declare in deposits.json spawn via vanilla COE behaviour when a placement: "coe" entry exists; otherwise they're suppressed in enabled dimensions.
- JEI / Jade — drilling recipes appear in the Drilling category and in-world tooltips.
- Create: Steam 'n' Rails — no conflict. Both mods place a map widget though; coedeposits-client.toml lets you move/disable ours.
- c2me — works. The picker runs on the chunk's worker thread. (Avoid the Fabric+Connector port with Lootr — use native NeoForge c2me.)
Pattern sharing
Generation is deterministic on (depositSeed, chunkX, chunkZ) + biome + distance-from-spawn:
# In world A: /coedeposits seed → deposit seed: 4823651729 (world seed) | dim: minecraft:overworld # In world B with the same deposits.json: /coedeposits regenerate 4823651729 → regenerated: placed 47 new in 2000-block radius → deposit seed is now 4823651729Same seed + same deposits.json + similar biome layout → same pattern. The seed is per-dimension and persisted in SavedData.
Links
- Source code & issues: github.com/RandomCodeGuys/create-ore-excavation-deposits
- License: MIT
For bug reports, feature requests, or PRs — please use GitHub Issues.
Compatibility
Mod Loaders
Game Versions
Screenshots
Similar Mods
EMI Book
Adds custom config presets and behavior to EMI.
Chronograph
Server-side stopwatch functionality for the clock!
Weapon Leveling x Better Combat Compat
Compatibility between Better Combat and Lukas' Weapon Leveling
Reimagined World Select
Mod that changes the way how the World Select Screen looks
No Glow Squids?
This mod reverts MC-226687 to allow glow squids to spawn again in superflat
Sorcery Age Incarnation Addon
This mod is an addon introducing a full incarnation system, there may be more in the future.
