Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c0eecfa
Add Realistic Deposits extension APIs
SkyBlade1978 Sep 10, 2026
c46a953
Prepare OreSpawn 4.1.0.110021
SkyBlade1978 Sep 10, 2026
b7c59a6
Complete Realistic Deposits extension contracts
SkyBlade1978 Sep 11, 2026
60beadd
Document OreSpawn 4.1 extension policies
SkyBlade1978 Sep 11, 2026
7c4a7c8
Add OreSpawn mod integration directory
SkyBlade1978 Sep 12, 2026
6275b4f
Polish OreSpawn mod directory layout
SkyBlade1978 Sep 14, 2026
e0850d3
Add material source arbitration contracts
SkyBlade1978 Sep 14, 2026
33f0084
Resolve duplicate ore sources deterministically
SkyBlade1978 Sep 14, 2026
0cc3341
Add Ore Sources configuration screens
SkyBlade1978 Sep 14, 2026
ba9c7a5
Document OreSpawn 4.1 ore source policies
SkyBlade1978 Sep 14, 2026
4cbe3b5
Redesign Ore Sources around material groups
SkyBlade1978 Sep 16, 2026
08ec587
Keep Ore Sources on one screen
SkyBlade1978 Sep 17, 2026
a85b06a
Refine Ore Sources with compact group settings
SkyBlade1978 Sep 17, 2026
2629c5c
Polish Ore Sources guidance and restore Keep Original
SkyBlade1978 Sep 17, 2026
57eef59
Clarify Ore Source group status and filtering
SkyBlade1978 Sep 17, 2026
326e25c
Refine Ore Source review and compact layout
SkyBlade1978 Sep 17, 2026
a6788b5
Fix stale Ore Source conflict status
SkyBlade1978 Sep 17, 2026
830a425
Keep Ore Source validation visible
SkyBlade1978 Sep 17, 2026
73f05d0
Reject Ore Source modes without placement rules
SkyBlade1978 Sep 17, 2026
5b54ba9
Refresh vanilla Ore Source controls
SkyBlade1978 Sep 17, 2026
c3ec17e
Repair custom ore source group editing
SkyBlade1978 Sep 18, 2026
281dd18
Persist and verify Ore Source defaults
SkyBlade1978 Sep 22, 2026
51791dc
Model biome directory and placement overrides
SkyBlade1978 Sep 22, 2026
da6594f
Add biome management screens
SkyBlade1978 Sep 22, 2026
03eb7fc
Validate biome override persistence and generation
SkyBlade1978 Sep 22, 2026
52030df
Document OreSpawn 4.1 biome management
SkyBlade1978 Sep 22, 2026
58bc157
Clarify and optimize dimension materials
SkyBlade1978 Sep 23, 2026
11ad3ca
Repair modded fluid selection labels
SkyBlade1978 Sep 23, 2026
82f698c
Separate ambiguous Ore Dictionary review groups
SkyBlade1978 Sep 24, 2026
c31e786
Keep missing mod settings editable
SkyBlade1978 Sep 29, 2026
1019e07
Tidy up the 1.10 build
SkyBlade1978 Sep 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,9 @@ jobs:
if-no-files-found: error
retention-days: 30
path: |
build/libs/OreSpawn-4.0.16.110021.jar
build/libs/OreSpawn-4.0.16.110021-sources.jar
build/libs/OreSpawn-4.0.16.110021-javadoc.jar
build/libs/OreSpawn-4.1.0.110021.jar
build/libs/OreSpawn-4.1.0.110021-sources.jar
build/libs/OreSpawn-4.1.0.110021-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt

Expand Down
105 changes: 105 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,108 @@
Version 4.1.0.110021

* Clarify dimension-wide material controls and replace light-equivalent custom
aquifer-fluid injection with an exact one-shot generation mask, preserving
surfaces, caves and later decorator fluids while keeping generation near the
native path. Differently lit fluids retain the compatible generator path.
* Replace the first-palette-only biome editor with a responsive biome directory
that reports every loaded, referenced and missing biome once, together with
palette ownership, effective order, placement count and surface conflicts.
Its dimension selector filters routine entries through Forge biome domains
while retaining explicit placement, replacement and missing-provider rules.
* Add exact one-to-one biome replacements for newly generated terrain through a
reserved terminal palette which always runs after ordinary provider/profile
palettes. Replacement chains flatten, cycles are rejected and missing targets
remain dormant until their owning mod returns. Valid unmanaged targets no
longer produce a misleading warning or duplicate new-terrain notice.
* Expose palette enablement, placement weights, climate and dependency limits,
surfaces, namespace scope, region size, coverage, fallback weight, dimension
materials and geome influences without adding arbitrary weighted biome output.
* Add confirmed biome, palette, dimension and all-biome resets. Active providers
return to their shipped defaults, user-only palettes are removed and entries
owned by missing providers are preserved; all changes retain Done/Cancel
editor-session semantics and never rewrite existing chunks.
* Add Ore Sources policies that group equivalent configured outputs by material
and dimension while keeping ordinary and custom placement channels independent.
* Consolidate only reviewed high-confidence MMD conflicts for new worlds;
upgraded worlds retain their previous separate placement and output behaviour.
* Select one weighted output for an entire ordinary vein or custom deposit body
using stable world/deposit identity, including safe missing-mod restoration.
* Replace the technical Ore Sources list/detail flow with compact independently
scrolling group and output lists that remain visible together at compact
resolutions. The default view hides harmless single-source entries behind
a compact Show All control; red groups need attention, yellow groups have a saved rule and
green entries need no action. Each group has a cog for its name and aliases.
* Rename the old Advanced channel controls to Placement Rules and explain their
separate ownership of frequency, shape, depth and host restrictions. Single
managed sources are read-only, multiple sources are selectable and external
generators remain excluded.
* Add Keep Original, Balanced, Single and Custom output modes. Reviewed fresh
MMD conflicts balance every eligible output through one placement budget;
inactive provider definitions remain selectable outputs without contributing
another placement rule. Returning to Keep Original restores the output and
placement selections from when the editor was opened. An explicit Accept
action keeps that policy unchanged while clearing its pending review state;
the main editor's Done action remains the persistence boundary.
* Keep tooltips inside the available side of the screen and move Placement
Rules guidance into a compact help tooltip, with an explicit fixed,
selectable, missing or Keep Original status instead of an unexplained
disabled control. Keep the group-name label inline, expand the alias list by
two rows and reduce the Placement Rules list by one row at compact sizes.
* Ship curated Sulfur/Sulphur and Aluminum/Aluminium groups, keep Niter and
Saltpeter distinct, deduplicate identical registry states, and allow confirmed
alias reassignment plus stable custom groups. Group edits are saved to the
world and future-world defaults only when the main editor's Done is accepted.
* Keep unrelated ambiguous Ore Dictionary alias families in separate stable
review groups. Legacy shared Review required data is rediscovered into those
groups, so Adamantine aliases can no longer appear in Mercury settings.
* Ignore missing historical external-candidate records when the same registry
state is now supplied by a loaded managed provider, preventing resolved
groups from remaining falsely red while retaining the dormant record.
* Keep Group Settings validation visible on a dedicated bottom row, with the
Done action in the lower-right corner and full clipped messages available by
tooltip during confirmed Ore Dictionary alias reassignment.
* Prevent Balanced, Single or Custom consolidation when a material group has
no active OreSpawn-managed placement rule, retaining the review action and
Keep Original behaviour instead of entering an unresolved red policy.
* Refresh Ore Sources immediately when Manage Vanilla Ores changes. Native
vanilla rules become usable placement sources while it is enabled; while it
is disabled, attempts to move their Ore Dictionary aliases are rejected with
guidance instead of creating a policy OreSpawn cannot enforce.
* Reconcile output candidates, placement choices and review state immediately
after every group edit. Keep Original now exposes every moved candidate,
Accept clears only the edited group's review, and placement rows report their
available choice count while remaining inactive until consolidation.
* Restrict Delete to empty custom groups. Populated custom groups use a
confirmed Dissolve Group action that restores every alias to its inferred or
curated group; discovered groups remain non-deletable facts.
* Keep reassigned source policies dormant when a saved custom group is reopened,
so their former inferred groups do not reappear as false conflicts. Add a
confirmed Reset All action that restores built-in and inferred Ore Sources
defaults inside the pending editor session without rewriting existing chunks.
* Add provider schema 5 material and placement-channel declarations, global
schema 8 and world-profile schema 7 while retaining older readable schemas.
* Add an extended, binary-compatible ore generation context exposing stable
world seed, dimension and current-chunk identity to compiled pattern add-ons.
* Expose the active geology sampler to patterns when the generated dimension
has OreSpawn geology, including identical identity during supported retrogen.
* Replace per-add-on world-settings buttons with one fixed Mods directory that
lists loaded native OS4, legacy OS1-OS3 and UI-only integrations with their
mod version, provider lineage, revision and status.
* Add a packaged cog action for add-on-owned configuration screens, including
pagination, disabled-state explanations, safe failure handling and a return
path through the Mods directory.
* Preserve the original three-argument client registration descriptor while
adding one-screen-per-mod `registerConfigScreen` registration.
* Add optional per-resource background-generation scaling for controller
patterns, including deterministic vanilla gating and lowest-controller wins.
* Let structural providers keep newly introduced entries out of existing world
profiles while retaining the historical merge behavior by default.
* Guarantee geology column sampling does not load or generate neighbouring
chunks.
* Preserve API major 1, provider schemas 1-4, existing pattern binaries,
migration behaviour and generated chunks while advancing active schemas to
provider 5, global 8 and world profile 7.

Version 4.0.16.110021

* Adopt the shared 4.0.16 release identity. Forge 1.10 has neither
Expand Down
69 changes: 65 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,13 @@ It gives mods and modpacks one place to configure ores, deposit shapes, optional
rock strata and geomes, provider-owned underground fluid deposits, biome
palettes and world materials, flat bedrock, and bounded ore retrogen.

This branch builds target-qualified version `4.0.16.110021`: the OreSpawn 4.0.16
feature set for Minecraft 1.10.2 and Forge. See the
This branch builds target-qualified version `4.1.0.110021`: the OreSpawn 4.1.0
feature set for Minecraft 1.10.2 and Forge. It adds stable generation identity,
non-loading geology sampling, per-resource background control, existing-world
provider merge policy, an Ore Sources arbiter for equivalent provider ores and
a biome directory with exact new-terrain replacement overrides, plus a client
world-settings extension point for add-ons such as Realistic Deposits
while retaining API major 1. See the
[versioning policy](docs/VERSIONS.md) for the encoding and release convention.

Its deprecated compatibility layer imports OreSpawn 1 and OreSpawn 3
Expand Down Expand Up @@ -47,7 +52,61 @@ TerraBlender.

When a provider exposes world settings, use **OreSpawn...** on the Create World
screen. **Recommended Defaults** restores the settings supplied by the
installed mods and pack. The in-game **Help & Guide** explains the controls.
installed mods and pack. **Mods** opens a directory of every loaded mod that
OreSpawn recognizes through a current provider, legacy compatibility path, or
client configuration hook. It shows each mod's version, integration lineage,
provider revision and status; its cog opens an add-on-owned configuration
screen when one is available. The in-game **Help & Guide** explains the other
controls.

On the ORES tab, **Ore Sources...** opens one material-group editor. Compact,
independently scrolling lists keep relevant material groups on the left and the
selected group's deduplicated ore blocks on the right. Harmless one-alias,
one-output entries are hidden by default and available through **Show All**.
Red groups need attention, yellow groups have a saved rule and green entries
need no action. Each group's cog opens its friendly name, exact Ore Dictionary
aliases and clearly labelled Placement Rules. Outputs choose the ore block;
empty custom groups can be deleted, while populated custom groups use a
confirmed **Dissolve Group** action that returns every alias to its inferred or
curated group. Automatically discovered groups are factual and cannot be
deleted. Placement Rules choose the frequency,
shape, depth and host restrictions for each managed channel. New worlds balance
all eligible outputs in reviewed MMD conflicts while running one placement
budget, so sulfur/sulphur providers do not multiply abundance. **Single**
chooses one output, **Custom** allows a weighted subset, and **Keep Original**
preserves every active rule and restores the selections that were present when
the editor was opened. A red Keep Original group exposes **Accept** so its
unchanged policy can be marked reviewed; this remains pending until the main
editor's **Done** is used. **Reset All** requires confirmation, removes custom
grouping and output choices from the pending edit, then rebuilds the built-in
and inferred groups from the currently loaded ores. It also remains pending
until the main editor's **Done** is used, while Cancel discards it. A Placement Rules row reports how many managed
sources are available, can cycle among them only in a consolidated mode, and
its help explains that the choice is inactive under Keep Original.
Existing worlds start in
Keep Original until their owner explicitly changes a group. Third-party generators remain outside
OreSpawn's control and are clearly reported rather than disabled.
Native vanilla outputs become controllable placement sources only while
**Manage Vanilla Ores** is enabled. Ore Sources updates immediately when that
option changes, and Group Settings prevents moving a vanilla ore alias while
management is off, with a prompt to enable it first.

**Biomes** opens a directory rather than editing only the first palette. It
shows every provider/profile palette in its stored order, the effective surface
rule, owner, climate constraints and geome influences. Dimension materials sit
beside the dimension selector because they apply to every biome in that
dimension's newly generated terrain, not to the selected biome. Light-equivalent
aquifer fluids use a provenance mask and fast pre-decoration substitution;
unusual fluids with different lighting retain a compatible, potentially slower
generator path.
Routine unmanaged biomes are hidden behind **Show All**, which remains filtered
to the selected dimension using Forge's Nether/End biome types and explicit
provider placement declarations. A loaded biome may be
left unchanged or replaced exactly in newly generated terrain; missing targets
remain dormant and resume if their mod returns. The final user replacement
layer always runs after ordinary palettes, while existing chunks are never
rewritten. Provider, palette, dimension and all-biome resets remain pending
until the main editor's **Done** action; **Cancel** discards them.

Important files:

Expand Down Expand Up @@ -128,7 +187,9 @@ underwater, immediate filler, and ceiling-underside behavior. It also proves
later vegetation, structures, and block entities
survive, validates provider-rock vanilla springs and an external ore-pattern
registration, then reopens and checks the exact saved world. The fixture is
not included in OreSpawn's published jars.
not included in OreSpawn's published jars. It also exercises multiple palettes
in one dimension, an unmanaged loaded biome, exact terminal replacement in new
chunks, unchanged old chunks, and fresh/reload profile and surface parity.

Import or refresh this ForgeGradle 7 project through Eclipse Buildship, then run
`genEclipseRuns`; do not run the removed ForgeGradle 2
Expand Down
Loading
Loading