You are viewing a potentially older version of this package. View all versions.
pwelty-PlanetaryAnomalies-0.3.0 icon

PlanetaryAnomalies

Most planets have an industrial anomaly: one ordinary recipe produces ten times its normal output there. Derived from your galaxy seed, so every galaxy differs and always regenerates the same.

Date uploaded 3 weeks ago
Version 0.3.0
Download link pwelty-PlanetaryAnomalies-0.3.0.zip
Downloads 143
Dependency string pwelty-PlanetaryAnomalies-0.3.0

This mod requires the following mods to function

xiaoye97-BepInEx-5.4.17 icon
xiaoye97-BepInEx

BepInEx5.4.17 mod plugin framework, Mod框架

Preferred version: 5.4.17

README

Planetary Anomalies

Most planets in your galaxy have an industrial anomaly: one ordinary recipe produces ten times its normal output, but only there.

A world where sorters come out ten at a time. A world that turns coal into energetic graphite by the stack. A world that assembles mini fusion power plants almost for free. Which world does what is drawn from your galaxy seed, so every galaxy is different — and the same galaxy always produces the same anomalies.

The point is to make exploration industrially interesting. A planet stops being "does it have titanium?" and starts being "what is this place unreasonably good at, and is that worth building around?"

What's new in 0.3

You can now exclude recipes you do not want anomalies on. A new ExcludedRecipes setting takes a comma-separated list, by item name as it appears in game or by numeric id:

ExcludedRecipes = Water Pump, Assembling Machine Mk.I

Why: a player pointed out that some anomalies are simply not worth having -- their example was a water pump anomaly, which is close to useless because a whole game needs very few water pumps. The obvious fix would be for the mod to filter such recipes out itself, and that turns out to be the wrong answer: which recipes matter depends entirely on how you play. Wind turbines, belts, sorters and solar panels get placed by the thousand; someone else's dead weight is your bottleneck. So the mod holds no opinion, and you state yours.

Empty by default, so nothing changes unless you want it to. Entries that match nothing are reported in the log rather than silently ignored.

What it does and does not affect: nothing is written to your saves, and nothing about your factory is altered. What changes is which anomaly a planet has — and only for planets carrying the recipe you excluded. Every other planet keeps exactly what it had. Those planets stay anomalous and get their next-best recipe instead.

The one thing to be aware of: if you had built production on a planet to exploit recipe X and then exclude X, that planet's anomaly becomes something else and those machines return to normal output. In practice this is unlikely, since you would be excluding a recipe precisely because you do not build with it. Machines never get stuck part-way either — a machine's output data is reset from the game's own recipe on load and whenever its recipe changes, so it cannot keep producing an anomaly that no longer exists.

It does mean your galaxy differs from another player's with the same seed.

Previously, in 0.2

You can see anomalies from the star map now. Previously you had to select a planet and open its description tab, one planet at a time — which meant the screen you actually explore from told you nothing. Now a scanned anomalous planet is labelled with what it makes, and its star lists what the system contains. You can read a region at a glance instead of clicking through it.

Why: several people said the same thing after the first release — that exploration goes quiet once you've found the resources you need, partly because the star map shows so little. Putting the anomalies there is the smallest thing that helps, and it turns out to be the difference between a mechanic you remember and one you forget you installed.

Gas giants no longer get anomalies. They can't host assemblers, so an anomaly there could never be used — it just advertised something impossible. If a gas giant in your galaxy had one, it doesn't now; nothing else changes.

Oil refinery and particle collider recipes can be anomalous. Previously only smelters, assemblers and chemical plants were eligible, which quietly ruled out Strange Matter, Deuterium and refined oil entirely — no galaxy could ever have them. That was an oversight, not a decision.

Effect on an existing save: this adds three recipes to the pool, so a small number of planets change what they produce — around four out of a hundred and fifty in testing. Everything else stays exactly as it was. Anomalies are still derived from your galaxy seed, so nothing is random and nothing is lost.

Also: the machine window now marks a machine running its planet's anomalous recipe, so the panel no longer shows the normal recipe while the machine visibly does something else.

A note on updates

Anomalies are generated from your galaxy seed, which means a mod update could in principle rewrite your galaxy. It shouldn't, and from this release the build refuses to ship if the generator changes without a deliberate version bump — so your worlds stay your worlds across updates. The exceptions are called out above, and both are corrections rather than reshuffles.

Why this exists

I wanted more to do.

Dyson Sphere Program already rewards optimisation beautifully, but by the mid-game exploration flattens out: you go looking for resources you already know you need, and one temperate world is much like another. I wanted a reason to be curious about a system beyond what ore it has.

So: give planets industrial personalities, and let that ripple outward. Finding an anomaly is a small reward for exploring. Working out whether it is worth using is a reward for thinking. And actually using it means moving production somewhere inconvenient and hauling the results home, which puts a new wrinkle in logistics — the part of the game I enjoy most anyway.

It is meant to add a decision, not a difficulty.

How you find them

Scan or visit a planet and the star map tells you. An anomalous planet is labelled with what it makes, and its star lists what the system contains, so you can read a region without clicking into it. Selecting a planet and opening its description tab gives the full detail:

ANOMALY
Sorter Mk.III: 2 → 20

That is the whole discovery mechanic — no hunting, no guessing. Knowing the planet means knowing its anomaly. A machine actually running an anomalous recipe also marks itself in its own window, so you are never left wondering why a number looks wrong.

Your home planet never has an anomaly. The starting world stays ordinary, deliberately: anomalies are a reason to look outward.

What this means in practice

An anomaly does nothing until you build the affected recipe on that planet. Most of them will sit unused — that is the point. The interesting decision is whether a particular world is worth reorganising production around, not whether you can be bothered to find it.

Anomalies are not balanced, on purpose. A ×10 on iron ingots is a convenience. A ×10 on something late-game and expensive is a windfall. Finding one of those should feel like a discovery, not like a reward that has been carefully measured out for you.

Configuration

Settings live in BepInEx/config/com.planetaryanomalies.dsp.cfg after the first run.

Setting Default What it does
AnomalyChancePercent -1 How many non-home planets are anomalous. -1 derives it from the galaxy seed, between 25% and 75%, so galaxies differ from one another. Any value from 0 to 100 forces that density instead.
OutputMultiplier 10 How much more an anomalous recipe produces.
StarmapLabel Detail What star map labels show. Detail names the affected items, Marker shows counts and a symbol, Off hides them. Unscanned planets show nothing either way.
ExcludedRecipes empty Recipes that should never receive an anomaly, comma separated — by item name as it appears in game, or numeric id. The mod holds no opinion about which anomalies are worth having, because that depends entirely on how you play; this is where you state yours. Entries matching nothing are reported in the log rather than ignored.
LogEveryAnomaly false Writes every anomaly in the galaxy to the log, including planets you have never scanned. Spoils discovery on purpose; for troubleshooting.

Changes take effect when a save is next loaded.

Compatibility

  • Built and tested against DSP 0.10.34.
  • No mod dependencies beyond BepInEx.
  • Nothing is written to your saves. Anomalies are recomputed from the galaxy seed every time you load, so removing this mod leaves a completely ordinary save behind. Recipe prototypes are never modified, so other mods reading them see vanilla values.
  • Mods that add recipes may shift the anomalies on a small number of planets, since new recipes join the pool that anomalies are drawn from. The rest of your galaxy is unaffected.
  • Multiplayer is untested.

Known limitations

  • Only one kind of anomaly exists so far: increased output.
  • Only recipes with a single output item are eligible, so nothing that produces two different things at once — which still rules out plasma refining and antimatter, since both produce hydrogen alongside their main output.
  • Proliferator interaction is untested beyond not crashing.
  • English only.

Roadmap

Rough intentions, not promises, roughly in the order they are being thought about.

More kinds of anomaly. Output multipliers are the simplest possible effect and the only one implemented. The interesting ones are different in kind: a recipe that needs half as much of an ingredient, one that runs several times faster, one that swaps an ingredient for something cheaper, one that produces an unexpected byproduct. A galaxy where every anomaly is "more stuff" is a thinner galaxy than one where planets are strange in different ways.

Anomalies worth remembering. Most should be useful; a few should be absurd. Rarity tiers, so that occasionally you find a world that genuinely changes your plans rather than mildly improving them.

Softer descriptions. Right now the panel tells you exactly what an anomaly does. There is an argument for saying only what is affected — "improved sorter output" — and letting you find out how much by building it. Existence stays free; magnitude becomes something you discover.

Version pinning. The build now refuses to ship if the generator changes by accident, so updates do not quietly rewrite your galaxy. What is still missing is recording which generator version a galaxy was created under, which would let existing galaxies keep their anomalies even through a deliberate change. That single number is the one thing that genuinely needs saving.

Multi-output recipes, and a considered answer to proliferator, rather than the current "does not crash".

If you have opinions about any of this, or a galaxy that produced something memorable, the GitHub issues page is open.

CHANGELOG

Changelog

0.5.0

  • Hover an item -- in the replicator, your inventory, the build menu, anywhere -- and its tooltip now names the worlds you know of that make it ten times over: Anomaly: Copper Ingot ×10 on BatenKaitos I. One line per recipe where an item has several. Same rules as the star map: worlds you have scanned, recipes you have researched, and unresearched ones as UnresearchedAnomalies allows. It is what the star map already knows, sorted by the thing you are holding instead of by where it is. In the replicator's recipe grid, where you hover a recipe rather than an item, the line is for that recipe alone.

  • When you finish a technology, the mod says whether a world you have already scanned makes one of its recipes ten times over. Research Antimatter Capsule and it tells you Iclarkrav I has been making them ×10 the whole time. Shown in gold just under the game's own "Research complete" notice for about six seconds, and written to the log. AnnounceOnResearch = false turns it off, and TestAnnouncement = true shows one about eight seconds after a save loads -- long enough to be looking at the screen -- so you can check they work on your setup.

    This is the other half of hiding unresearched anomalies. On its own, hiding is a subtraction -- information you had in 0.3 and lost in 0.4. With this, the mod stays quiet while a recipe means nothing to you and speaks the moment it starts to, which is a better moment than discovery because it is when you can act on it. Only planets you have already found are named; it will not point at worlds you have not visited. If none of your scanned worlds has it but the galaxy does, it says only that -- that it exists somewhere you have not been, without saying where. Knowing something is out there is a reason to go looking; finding it is still the part worth earning.

  • Your galaxies keep their rules through updates. A new setting, AnomalyRules, names the version of the anomaly rules this install uses; it is written once, as 1, and the mod never changes it. Every 0.x release has used rules version 1, so nothing changes today. It matters because 1.0 will introduce version 2, which draws anomalies differently: an install upgraded from 0.5 keeps its 1, and every galaxy on it stays exactly as it is through 1.0 and beyond. Set AnomalyRules = Latest (or the new number) when you want the new rules. Nothing is written to your saves, or anywhere else -- that one line in the config is the whole record.

  • HomePlanetNeverAnomalous, on by default, is the rule that has always been there -- your starting world stays ordinary -- now written down where you can turn it off. Off, the home planet takes the same chance as everywhere else, which most of the time still means nothing. Only the home planet is affected either way; every other world keeps exactly what it had.

  • AnomalyChancePercent now reads Seed by default rather than -1, and says what it means. A number from 0 to 100 still forces a density; -1 still works for configs written by earlier versions. Nothing about generation changes.

  • Experimental, off by default: MultiplierFromCombatSettings. When on, a galaxy with the Dark Fog disabled or passive uses PeacefulOutputMultiplier (default 3) instead of OutputMultiplier; hostile galaxies are unchanged. The multiplier is a return on the cost of using an anomaly, and the largest cost is clearing a world and then holding it -- without the Dark Fog only hauling remains, so the same ×10 that is fair against a garrison is a giveaway without one. Resolved once when a save loads and written to the log. Changes neither which planets are anomalous nor which recipe each carries.

  • Anomalies on recipes you have not researched can now show a marker without naming what they are. UnresearchedAnomalies = Marker marks the planet so you know something is there and worth coming back for, while withholding the name until the recipe means something to you. Hide is the 0.4 behaviour and remains the default; Show names everything, as in 0.3 and earlier. A 0.4 config with HideUnresearchedAnomalies = false is migrated to Show, and the log says so.

  • If a game update breaks one part of the mod -- a tooltip, a label -- the rest keeps working and the log names what is off. If production itself cannot be patched, the mod switches off entirely rather than label anomalies that do nothing.

  • The mod now leaves the galaxy behind the main menu alone. DSP runs that demo like a real game, and earlier versions quietly treated it as one. Harmless, but a mod should not be doing anything in a menu.

0.4.0

  • Anomalies stay hidden until you have researched the recipe they affect -- on the planet panel, on planet and star labels, and in the system counts. An unresearched recipe is already unavailable to you, so an anomaly on it named something you could not build and might not recognise. "Particle Broadband x10" twenty hours before particle broadband exists is noise, and noise teaches you to stop reading the labels. Now the star map fills in as your research opens up, and anything on it is something you can act on. Set HideUnresearchedAnomalies = false for the old behaviour. Display only: no planet changes what it produces.

  • Fixed: anomalies were labelled by the item they produce rather than by the recipe. Where DSP has two recipes for the same item -- "Space Warper" from Graviton Lens and "Space Warper (advanced)" from Gravity Matrix, and nine other pairs -- the label named the item, so building the recipe you already knew produced no boost and looked like a broken mod. Labels now name the recipe, which is how the game itself distinguishes them. Affects roughly one anomaly in fifteen.

    Display only: no planet changes what it produces, and no galaxy is regenerated. If a planet seemed to have a broken anomaly, it was correct all along and now says so.

  • Fixed: star map labels never updated. They were written once, when the star map was built, and nothing rewrote them afterwards -- so scanning a planet or finishing a technology did not make its anomaly appear until you reloaded the save. Reopening the map did not help. This was mostly invisible before now, but combined with hiding unresearched anomalies it meant the mod could hide something and then never un-hide it, which is the worst failure that feature could have. Labels now re-examine themselves about twice a second and rewrite only when the answer changed.

  • Fixed: a stray dash in one label. DSP's own English name for the Thruster recipe is literally "- Thruster", so naming anomalies by recipe in this release exposed it and one planet advertised "- Thruster x10". Leading punctuation is now stripped from recipe names; hyphens inside a name are left alone, so EM-Rail Ejector and High-purity Silicon still read correctly.

  • The log now says when an anomaly is being withheld, which technology would reveal it, and the galaxy survey reports both gates per planet -- whether you have scanned it, whether you have researched the recipe, and which way that came out. A feature that hides things has to be able to say what it hid, or every question about a missing label turns into guesswork.

0.3.0

  • New ExcludedRecipes setting: name recipes that should never receive an anomaly, comma separated, by item name as shown in game or by numeric id. Useful if your galaxy keeps handing you anomalies on things you never mass-produce. Empty by default, because which recipes are worth having depends entirely on how you play -- one player's useless anomaly is what another builds by the thousand. Excluding a recipe only moves the planets that currently carry it.

0.2.0

  • Anomalies are shown in the star map. A star lists the affected items in its system, and each planet names its item and multiplier, marked with a compact "Å", so a system can be read without opening every planet's description tab. StarmapLabel chooses between that (Detail), bare counts and markers (Marker), or nothing (Off).
  • Refine and Particle recipes are now eligible for anomalies, alongside Smelt, Assemble and Chemical. Particle recipes were excluded on an unexamined assumption, which meant Strange Matter and other collider outputs could never be anomalous in any galaxy. This adds recipes to the pool, so a small number of planets change which recipe they carry; most are unaffected.
  • Fixed: gas giants could receive an anomaly. They cannot host assemblers, so the anomaly could never be used and the star map advertised something unusable. Gas giants are now skipped. This removes anomalies from gas giants in existing galaxies; every other planet is unchanged.

0.1.0

First release.

  • Most non-home planets carry an anomaly: one ordinary recipe produces ten times its normal output there.
  • Which planets are anomalous, and which recipe each one affects, is derived from the galaxy seed. The same galaxy always produces the same anomalies, and nothing is written to saves.
  • Anomaly density is itself drawn from the seed, between 25% and 75%, so galaxies differ from one another.
  • Home planets never have an anomaly.
  • Anomalies are shown in a planet's description tab once it has been scanned or visited, and machines running an anomalous recipe are marked in their own window.
  • Configurable anomaly density and output multiplier.