Tags
Creators
Details
1.20.1-0.2.0
Compatibility
Required content
Changes
0.2.0
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 shareposts 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-Acid drilling bonuses, a coolant requirement…). Editable in the in-game editor (both the Drilling and Fluid groups). - KubeJS support — deposit types. With KubeJS installed, define deposit types from
kubejs/startup_scriptsvia theCoeDepositsbinding:CoeDeposits.add('mypack:ruby', { vein_recipes:[...], weight:80, distance:{min:2000,max:99999}, ... })(andCoeDeposits.remove('id')). The object is the standarddeposit_typeschema; scripted types merge between the datapack defaults and thedeposits.jsonoverlay. KubeJS is an optional dependency — the mod runs fine without it. (COE's own vein/drilling/extracting recipes remain scriptable through COE's own KubeJS plugin.) ON_PROXIMITYsends a personal "found it" chat line the first time a player comes within the proximity radius (samediscovery_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 gains 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.
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: shown 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) are pre-populated on the world map ahead of the player and restored by/coedeposits regenerate, exactly like managed deposits — no more standing 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. - Friendlier, configurable discovery chat message. The discovery line now resolves a friendly name — the type's
display_name, else a prettified id (…/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. - The bundled water deposit is renamed
coedeposits:example_water→coedeposits:water(its synthesised recipes likewiseexample_water_vein/extracting→water_vein/extracting). Worlds with placedexample_waterdeposits drop them on upgrade — re-run/coedeposits regeneratefor the renamed one.
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. - A chunk whose vein recipe is set but unresolvable now reads "vein recipe not loaded" on the map tooltip instead of a misleading "depleted".
ON_DISCOVERYreveals are snappy — the walk-into sweep runs every second instead of every ten, so a deposit appears moments after you step onto it.- Editor: an input fluid (
fluid_input) set on a drilling / extracting block now persists even when the block has no other content yet — picking the fluid marks its block active, so it's written todeposits.jsoninstead of dropped on save. - Editor: picking a fluid no longer bounces you back to the Core tab — the editor reopens on the Inline-recipe tab you were on.
Notes
- Upgrading from 0.1.x: base-COE veins switch off on upgrade (
coe_veins_disabled_by_defaultarrives astrue). Veins already placed in your world stay tracked and minable — only new placements stop; run/coedeposits regeneratefor a clean slate, or flip the config /enabled_veinsto keep them spawning. - Auto-adopt and the unified model are most predictable on fresh chunks. Foreign COE veins already generated in old chunks appear once their chunk loads (the self-heal applies them within ~1s) or after a re-prospect.
- Both loaders ship from one codebase — the
reveal_scope, sharing, KubeJS and auto-adopt logic lives inplatform-shared/; only the networking + keybind glue differs between Forge and Fabric.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:XfN8l56o:mnSU8fHn"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XfN8l56o:mnSU8fHn"
}

