Skip to content

Add the Danger Ores Bloom map - #1653

Merged
grilledham merged 4 commits into
Refactorio:developfrom
lex:danger-ore-bloom
Oct 25, 2026
Merged

grilledham merged 4 commits into
Refactorio:developfrom
lex:danger-ore-bloom

Conversation

@lex

@lex lex commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Adds Bloom, a Danger Ores map that combines #1651 (Petals, sector sizes change with the distance from spawn) and #1652 (Riches, sector richness changes with it). Bloom goes halfway on each, so it allegedly gives the same ore at every distance as either of them, with sectors that bend half as much as on Petals and are half as lean or rich as on Riches.

Bloom

Why

It's the same model as the other two: research and building allegedly use mostly iron within ~200 tiles of spawn, and rockets allegedly use mostly copper and coal out to ~410 tiles. The numbers come from Factorio 2.0.77's recipes but rest on a lot of assumptions, so treat them as a starting point for playtesting, not as fact.

Petals gets there with sector sizes alone, so its sectors bend a lot; Riches gets there with richness alone, so its iron sector ends up very thin far out (×0.30). Splitting the change between both keeps each one milder.

How

The ore a sector gives at some distance is its size times its richness. Each axis goes about halfway (√ of the full change), blended from r=200 to r=350 like the other two:

Iron Copper Coal
Sector size inside 200 tiles 42% 30% 28%
Sector size past 350 19% 45% 36%
Richness inside 200 tiles ×1.21 ×0.87 ×0.82
Richness past 350 ×0.53 ×1.22 ×0.97

Because both blends ease at the same time, rings in the middle of the blend hold allegedly up to 6% less ore than on the standard map; inside 200 and past 350 it's the same. The mixes and the ~10% stone in them are the canonical ones.

  • presets/danger_ore_bloom.lua: main_ores_radial from Add the Danger Ores Petals map #1651 with the sizes above and two of each sector (six spokes; the sizes change half as much as on Petals, so wider sectors stay spokes), plus radial_richness from Add the Danger Ores Riches map #1652 on Factory.default() with the richness above.
  • Scenario template, map poll entry, changelog line, preview.
  • radial_richness now defaults its base to the canonical richness curve, which the ore factory exposes as default_value, so Riches and Bloom no longer declare it again. Neither map changes.

Tests

  • danger_ore_bloom_tests.lua (runs when Bloom is the active map): the sectors, built by the real radial builder from the preset's config, times the richness read from the preset's ores, give each ore its fitted share within 1 point near spawn and far out; and rings in the blend hold at most 6% less ore than the standard map, never more. Changing one size or richness number fails them.
  • radial_richness_tests.lua: a curve given no base scales the standard richness.
  • The tests of both modules run on this template too.
  • pwsh .github/scripts/run-tests.ps1 <factorio> danger-ore-bloom: 162 passed, 0 failed, 43 skipped (need a player); danger-ore-riches: 151 passed, 0 failed. luacheck .: 0 warnings / 0 errors.

🤖 Generated with Claude Code

Petals changes sector sizes with the distance from spawn and Riches
changes sector richness; Bloom goes halfway on each. Size times richness
gives the same ore at every distance as either, fitted to what 1000
satellites on coal power use, so sectors bend half as much as on Petals
and are half as lean or rich as on Riches.

- presets/danger_ore_bloom.lua: sizes 42/30/28 -> 19/45/36 and richness
  iron x1.21 -> x0.53, copper x0.87 -> x1.22, coal x0.82 -> x0.97,
  blended from r=200 to r=350, two of each sector
- a scenario template, a map poll entry, a changelog line and a preview

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lex
lex marked this pull request as draft October 25, 2026 09:58
lex and others added 3 commits October 25, 2026 12:02
Riches and Bloom both passed the canonical richness curve as the base,
each declaring it again. The ore factory now exposes it as
default_value and radial_richness uses it when no base is given, so the
presets only pass their multipliers. The maps don't change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bloom's sector sizes and richness multipliers are each half of the
change, so together they must give each ore the share fitted for 1000
satellites near spawn and far out, and rings in the blend may hold at
most 6% less ore than the standard map.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The distances come from the preset's blend, and the tolerances, ring
step and seed are named constants that say why they are what they are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lex
lex marked this pull request as ready for review October 25, 2026 10:16
@grilledham
grilledham merged commit 798aa8b into Refactorio:develop Oct 25, 2026
6 checks passed
@lex lex mentioned this pull request Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants