THANKS FOR 1000 DOWNLOADS ❤️❤️❤️❤️❤️
Create Ore Excavation Deposits
Multi-chunk ore deposits for Create Ore Excavation — distance-driven richness, a Xaero map overlay and full multi-dimension support.
In case of any problems or if you have any ideas I would love to help you and extend/fix the mod <3
What you get
- Multi-chunk deposits — irregular Perlin-shaped blobs of 2–40 chunks, all sharing one ore type. By default these replace Create Ore Excavation's own single-chunk veins (toggleable), so you get the deposit experience instead of duplicated ores.
- World-map overlay — solid coloured chunks on Xaero's World Map with alpha-fade as the vein depletes and a hover tooltip showing remaining / initial units per chunk.- Distance gradient — a 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 — configure spawn biomes (default: iron in mountains/taiga, gold in badlands/savanna, nether_quartz in nether biomes, etc.).
- Multi-dimension — choose which dimensions each type generates in; every dimension has its own tracking + reproducible seed.
- Reveal policies — four modes per type:
always/on_discovery(walk near) /on_proximity(visible while close) /on_prospect(Vein Finder reveals)… - …with a reveal scope —
per_player(COE-like, each plays their own),team(shared with your party — Open Parties and Claims, FTB Teams, or a vanilla scoreboard team), orglobal(one player's find reveals it for everyone). - Deposit sharing —
/coedeposits shareposts a clickable [✚ Add to map] offer in chat, share directly with a player, or bind a world-map key to share the deposit you're hovering. No OP needed. - Configurable discovery message — friendly names + a custom chat template (
%name% %pos% %player% …, colour codes), or turn the chat line off entirely. - Auto-adopt foreign veins — COE veins from add-ons & datapacks (Create Ore Excavation Plus, CoE × Mekanism, OreCompatCreate, …) are automatically tracked on the map, named, and findable — no config needed. Disable or promote any of them in the in-game editor.
- In-game editor & config screen (YACL) — author deposits, set reveal/scope, enable/disable veins, edit recipes (incl. an input/coolant fluid the machine consumes per cycle) — no JSON hand-editing.
- KubeJS support — define deposit types from
startup_scriptsvia theCoeDepositsbinding.
Required
- Create Ore Excavation — the host mod this extends. Required.
- Which in turn requires Create.
Recommended / optional
- Xaero's World Map — the deposit overlay & share keybind. Soft dependency: without it generation works fine, you just lose the visual. Xaero's Minimap adds waypoints on discovery.
- YACL — the in-game config screen + deposit editor (falls back to a basic screen if absent).
- KubeJS, Open Parties and Claims / FTB Teams — optional; enable the scripting binding and
teamreveal scope respectively. All reflection-based, no hard dependency.
The mod's mixin is gated client-only, so dedicated servers without Xaero won't crash.
Commands
Admin subcommands require permission level 2 (OP via /op <player>); share and accept are available to every player.
| Command | What it does |
|---|---|
/coedeposits share |
Post a clickable [✚ Add to map] offer for the deposit you're standing in — anyone can click to add it to their map. |
/coedeposits share <player> / share all <player> |
Share the current deposit (or everything you've discovered) directly with one player. |
/coedeposits tier |
Show distance + tier fraction at the player's position. |
/coedeposits list |
Top-10 nearest known deposits in the current dimension. |
/coedeposits types |
Roster of declared + auto-adopted deposit types with placed counts. |
/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 the effective deposit seed (override vs 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 / a 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 every deposit in the dimension. 0 disables. |
Compatibility
- Add-on & datapack COE veins are auto-adopted onto the map (named, tracked, findable) with no setup — and the base mod's own veins are replaced by default by this mod's managed deposits (toggle in the Generation config, or re-enable single veins in the editor). Promote any adopted vein into a fully-controlled type, or disable it, from the Deposits tab.
- KubeJS — define deposit types in scripts; COE's own recipes stay scriptable via COE's plugin.
- Open Parties and Claims / FTB Teams — power the
teamreveal scope (vanilla scoreboard teams work too). - JEI / Jade — drilling recipes appear in the Drilling category and in-world tooltips.
- Create: Steam 'n' Rails — no conflict. Both place a map widget;
coedeposits-client.tomllets you move/disable ours. - c2me — works; the picker runs on the chunk's worker thread.
Links
- Source code & issues: github.com/RandomCodeGuys/create-ore-excavation-deposits
- License: MIT
For bug reports, feature requests, or PRs — please use GitHub Issues.
How to Install Create Ore Excavation Deposits (Mod)
Create Ore Excavation Deposits by NIKNIK67 is verified for Fabric, Forge, Neoforge across Minecraft versions 1.20.1, 1.21.1 (latest release: 1.20.1-0.2.0, file size: 347 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.20.1, 1.21.1) and platform (Fabric, Forge, Neoforge).
- Make sure you have the compatible loader or environment installed for Fabric, Forge, Neoforge.
- Move the downloaded Create Ore Excavation Deposits file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add VersionThe 1.20.1 line (Forge + Fabric) catches up to the NeoForge **0.2.0** build, folding the NeoForge **0.1.7** and **0.2.0** spans into one release: per-player / team / shared discoveries, deposit sharing, one unified ownership model for every deposit, automatic adoption of third-party COE veins onto the map, input-fluid recipes, and a KubeJS binding.
### Added
reveal_scope— per-player, team, or shared discoveries.** For the per-player reveal modes (ON_DISCOVERY/ON_PROSPECT):PER_PLAYER(default) keeps each player's discoveries private (COE's own behaviour);TEAMshares them with the discoverer's party/team — **Open Parties and Claims**, else **FTB Teams**, else the vanilla scoreboard team (all integrations are reflection-based, no hard dependency). Team visibility is **live**: you see everything anyone *currently* on your team has discovered — joining shares past finds both ways, leaving un-shares them (your own finds always stay).GLOBALmakes the first player's discovery reveal the deposit for everyone. Online recipients get the marker + a chat line crediting the finder. Persisted in SavedData; surfaced in the **Reveal** config group. (No effect onALWAYS/ON_PROXIMITY.)- Deposit sharing.** Share discoveries explicitly, three ways: **
/coedeposits share** posts a clickable **[✚ Add to map]** offer to chat (anyone in the dimension can click it to add the deposit + an Xaero waypoint); **/coedeposits share <player>** / **share all <player>** share the deposit you stand in (or everything you've found) directly with one player; **world-map keybind** — bind *"Share hovered deposit to chat"* in Options → Controls, hover a deposit on the Xaero world map and press it to post the same offer (the tooltip shows the hint once bound). You can only share what you can see; share/accept work without OP (admin subcommands stay OP-gated). - Auto-adopt foreign COE veins (compat).** Any COE vein recipe with no coedeposits
deposit_typeof its own — e.g. from **Create Ore Excavation Plus**, the **CoE × Mekanism** datapack, **OreCompatCreate**, or any datapack — is adopted onto the world map under an implicit type: we take ownership of its OreData, track, render and find it like a declared deposit. Toggle withauto_adopt_coe_veins(default **on**). Adopted veins get readable tooltip names (createoreexcavation:ore_vein_type/redstone→ "Redstone"). The editor's Deposits tab lists adoptable veins, each with **Edit →** (promote to aplacement: coetype you fully control) and **Disable** (suppress the vein — stored indisabled_veins)./coedeposits typesshows declared vs adopted with placed counts. - Input / coolant fluid on recipes (like the host mod).** Inline
drilling:andfluid:blocks accept an optionalfluid_input({fluid|tag, amount}) — the fluid the machine **consumes** per cycle (COE'sdrillingFluid, recipe key"fluid"). Lets you express fluid-gated recipes (the CoE × Mekanism Brine / Sulfuric-Ac
The 1.20.1 line (Forge + Fabric) catches up to the NeoForge **0.2.0** build, folding the NeoForge **0.1.7** and **0.2.0** spans into one release: per-player / team / shared discoveries, deposit sharing, one unified ownership model for every deposit, automatic adoption of third-party COE veins onto the map, input-fluid recipes, and a KubeJS binding.
### Added
reveal_scope— per-player, team, or shared discoveries.** For the per-player reveal modes (ON_DISCOVERY/ON_PROSPECT):PER_PLAYER(default) keeps each player's discoveries private (COE's own behaviour);TEAMshares them with the discoverer's party/team — **Open Parties and Claims**, else **FTB Teams**, else the vanilla scoreboard team (all integrations are reflection-based, no hard dependency). Team visibility is **live**: you see everything anyone *currently* on your team has discovered — joining shares past finds both ways, leaving un-shares them (your own finds always stay).GLOBALmakes the first player's discovery reveal the deposit for everyone. Online recipients get the marker + a chat line crediting the finder. Persisted in SavedData; surfaced in the **Reveal** config group. (No effect onALWAYS/ON_PROXIMITY.)- Deposit sharing.** Share discoveries explicitly, three ways: **
/coedeposits share** posts a clickable **[✚ Add to map]** offer to chat (anyone in the dimension can click it to add the deposit + an Xaero waypoint); **/coedeposits share <player>** / **share all <player>** share the deposit you stand in (or everything you've found) directly with one player; **world-map keybind** — bind *"Share hovered deposit to chat"* in Options → Controls, hover a deposit on the Xaero world map and press it to post the same offer (the tooltip shows the hint once bound). You can only share what you can see; share/accept work without OP (admin subcommands stay OP-gated). - Auto-adopt foreign COE veins (compat).** Any COE vein recipe with no coedeposits
deposit_typeof its own — e.g. from **Create Ore Excavation Plus**, the **CoE × Mekanism** datapack, **OreCompatCreate**, or any datapack — is adopted onto the world map under an implicit type: we take ownership of its OreData, track, render and find it like a declared deposit. Toggle withauto_adopt_coe_veins(default **on**). Adopted veins get readable tooltip names (createoreexcavation:ore_vein_type/redstone→ "Redstone"). The editor's Deposits tab lists adoptable veins, each with **Edit →** (promote to aplacement: coetype you fully control) and **Disable** (suppress the vein — stored indisabled_veins)./coedeposits typesshows declared vs adopted with placed counts. - Input / coolant fluid on recipes (like the host mod).** Inline
drilling:andfluid:blocks accept an optionalfluid_input({fluid|tag, amount}) — the fluid the machine **consumes** per cycle (COE'sdrillingFluid, recipe key"fluid"). Lets you express fluid-gated recipes (the CoE × Mekanism Brine / Sulfuric-Ac
A unification + compatibility release: one ownership model for every deposit, automatic adoption of third-party COE veins onto the map, input-fluid recipes, and a KubeJS binding.
### Changed
- Base COE veins are disabled by default.** This mod's managed deposits replace the role of the host mod's bundled veins (
createoreexcavation:*) — letting both generate would duplicate every ore. They now start **disabled**: visible in the editor's vein list as(disabled — base COE default)with one-click **Enable** (writes the newenabled_veinsconfig) or **Edit →** to promote one into a type you fully control. Veins from **add-ons/datapacks keep auto-adopting** — those were added intentionally, not as a dependency side-effect. Master switch:coe_veins_disabled_by_default(default on, also in the Generation config group). - Unified deposit model — one owner, two generation variants.** Every deposit coedeposits tracks is now owned by us identically: we write its
OreData, persist it, prospect-scan it, render it, and find it.placementis no longer "who owns it" but only *where it's placed* —managed(our multi-chunk Perlin blob) orcoe(Create Ore Excavation's own spread). This collapses the old dual-ownership split that caused COE-placement deposits to behave inconsistently (depletion/regenerate/finder edge cases). - COE-placement veins are now prospect-scanned and findable.** Declared
placement: coetypes (and adopted ones, below) are pre-populated on the world map ahead of the player and restored by/coedeposits regenerate, exactly like managed deposits — no more having to stand almost on top of a COE vein for it to appear. The picker faithfully replays COE's own spread placement (priority order, structure-chunk match, jittered biome whitelist/blacklist) off-thread.
### Added
- Auto-adopt foreign COE veins (compat).** Any COE vein recipe that has no coedeposits
deposit_typeof its own — e.g. from **Create Ore Excavation Plus**, the **CoE × Mekanism** datapack, **OreCompatCreate**, or any datapack — is adopted onto the world map under an implicit type: we take ownership of its OreData, track it, render it and find it like a declared deposit. Toggle with the newauto_adopt_coe_veinsconfig (default **on**). Tooltip names for adopted veins are made readable (createoreexcavation:ore_vein_type/redstone→ "Redstone"). The in-game editor's Deposits tab lists adoptable veins, each with **Edit →** (promote to aplacement: coetype you fully control — map colour, reveal, biome filter…) and **Disable** (suppress the vein entirely — it stops generating, stored in the newdisabled_veinsconfig)./coedeposits typesshows declared vs adopted with placed counts. - Input / coolant fluid on recipes (like the host mod).** Inline
drilling:andfluid:blocks accept an optionalfluid_input({fluid|tag, amount}) — the fluid the machine **consumes** per cycle (COE'sdrillingFluid, recipe key"fluid"). Lets you expre
### Changed
- Friendlier, configurable discovery chat message.** The old line printed the raw type id with a
[coedeposits]prefix ([coedeposits] discovered createoreexcavation:ore_vein_type/water at [...]), which read like debug output (reported in #3). It now resolves a friendly name — the type'sdisplay_namefromdeposits.json, otherwise a prettified id (createoreexcavation:ore_vein_type/water→ "Water") — and the whole line is a config templatediscovery_message_format(defaultDiscovered %name% at %pos%). Placeholders:%name%,%pos%(clickable /tp),%x% %y% %z%,%type%,%player%(the discoverer),%%;§colour codes work.
### Fixed
- Deposits placed over already-explored terrain no longer read "depleted".** COE's
OreData.populateruns once per chunk, so a deposit placed by/coedeposits regenerateor the prospect scanner over a chunk generated *before* the deposit existed never got its OreData applied. The depletion sweep now self-heals such chunks (no recipe **and** nothing extracted → re-apply) while leaving genuinely mined-out chunks alone. - ON_DISCOVERY reveals are snappy now** — the walk-into sweep runs every second instead of every ten, so a deposit appears moments after you step onto it. The reveal-mode config option also finally documents what each of the four modes does.
### Added
- ON_PROXIMITY now sends a personal "found it" chat line** the first time a player comes within the proximity radius (same
discovery_message_format; once per player per deposit, persisted). Visibility is unchanged — still distance-based. - Discovery chat controls in the in-game config** — the **Reveal** group now has a **Discovery chat message** toggle (off keeps the map marker / Xaero waypoint, just no chat line) and a **Discovery message** template field, alongside the
discovery_chat/discovery_message_formattoml options (#3). reveal_scopeconfig — per-player, team, or shared discoveries (#3).** For the per-player reveal modes (ON_DISCOVERY/ON_PROSPECT):PER_PLAYER(default) keeps each player's discoveries private (COE's own behaviour);TEAMshares discoveries with the discoverer's party/team — **Open Parties and Claims**, else **FTB Teams**, else the vanilla scoreboard team (both mod integrations are reflection-based, no hard dependency). Team visibility is **live**: you see everything anyone *currently* on your team has discovered — joining a team shares past finds both ways, leaving un-shares them (your own finds always stay).GLOBALmakes the first player's discovery reveal the deposit for everyone. Online recipients get the marker + a chat line crediting the finder via the new%player%placeholder. Persisted in SavedData; surfaced in the **Reveal** config group. (No effect onALWAYS/ON_PROXIMITY.) Per-type override is not included yet — it's a mechanical follow-up.- Deposit sharing (#3).** Players can share discoveries explicitly, in three ways: **`/coedeposits
### Changed
- The in-game editor and config screen, reworked** — the 1.20.1 line (Forge + Fabric) catches up to the NeoForge 0.1.6 build. The config screen is now two tabs: **General** (generation / reveal / logging / client settings) and **Deposits** (an inline list, one row per deposit with **Edit → / Disable / Delete**, Delete behind a confirmation). Vein recipes, biome filter and dimensions are compact dropdown pickers; drilling outputs use a searchable visual item picker (icon + name) with Count and Chance-% number fields. The old monolithic editor/config classes were split into small per-tab / per-group files.
### Fixed
- Add deposit** now assigns a unique id, so creating several in a row (or after deletes) can no longer make two deposits share a
coedeposits:new_Nkey — which previously collided silently indeposits.json. - Biome filter is usable from the main menu** — with no world loaded the biome registry (and thus the real tag list) isn't available, so the picker now offers the common vanilla biome tags instead of greying out. Pack-specific / modded tags still need the editor opened in a world.
### Changed
- The in-game editor and config screen, reworked** — the Forge 1.20.1 line catches up to the NeoForge 0.1.6 build. The config screen is now two tabs: **General** (generation / reveal / logging / client settings) and **Deposits** (an inline list, one row per deposit with **Edit → / Disable / Delete**, Delete behind a confirmation). Vein recipes, biome filter and dimensions are compact dropdown pickers; drilling outputs use a searchable visual item picker (icon + name) with Count and Chance-% number fields. The old monolithic editor/config classes were split into small per-tab / per-group files.
### Fixed
- Add deposit** now assigns a unique id, so creating several in a row (or after deletes) can no longer make two deposits share a
coedeposits:new_Nkey — which previously collided silently indeposits.json. - Biome filter is usable from the main menu** — with no world loaded the biome registry (and thus the real tag list) isn't available, so the picker now offers the common vanilla biome tags instead of greying out. Pack-specific / modded tags still need the editor opened in a world.
### Fixed
- Crash on load** (
NoSuchMethodError: net.minecraft.resources.FileToIdConverter.json). The 0.1.5 jar was published **un-reobfuscated**: the release pipeline ranpublishModsas a separate Gradle invocation, which re-ran thejartask withoutreobfJarand uploaded a jar calling Mojang-mapped method names that don't exist at runtime → crash during mod construction on every 1.20.1 instance. The build now forcesreobfJarbefore any publish task. No content or behaviour changes versus 0.1.5 — same code, correctly obfuscated.
### Added
- Fluid deposits (COE Extractor).** A deposit can now yield a **fluid** instead of (or alongside) items, harvested with Create Ore Excavation's Extractor rather than the Drill. Add an inline
fluid:block to aconfig/coedeposits/deposits.jsonentry (fluid,amountmB/cycle,ticks,stress,drill_tag) and theBundledRecipePacksynthesises acreateoreexcavation:extractingrecipe bound to the type's vein. Placement, distance, biome filter and theper_chunk_unitsbudget all work exactly as for a solid ore — COE's Extractor and Drill share the same vein-consumption logic. - In-game fluid picker.** The editor's Fluid field opens a picker that lists registered **source** fluids by their own texture (tinted sprite) + name, with search and click-to-select — not bucket items. (YACL has no fluid controller, so this is a small dedicated screen.)
- Bundled example.** Ships a ready
coedeposits:example_waterdeposit — a finite "Underground Spring" ofminecraft:waterextracted with the Extractor — so the fluid path works out of the box. Generates in overworld swamp/plains atweight: 50; disable it from the editor (or an{"enabled": false}overlay) if unwanted.
### Changed
- Config validation now counts an
extractingrecipe as making a vein harvestable, so a fluid-only deposit no longer false-warns "can't be mined".
### Internal
DepositTypecodec split into two flattenedMapCodechalves joined withCodec.mapPair(DataFixerUpper'sgroup(...)caps at 16 fields; the type now has 17). The on-disk JSON schema is unchanged.
