Natural Fish Dynamics


Fish will slowly reproduce in the wild

Tweaks
3 days ago
2.0
904
Environment

g even Faster Spawnrate to make 2 mods work together?

4 days ago

Hi,

I'm trying to make several mods work together to create self-sufficient mining islands on our water-world server:

  • Cargo Ships
  • Dredgeworks
  • AAI Loaders
  • Fish Slurry
  • and your mod

The idea is that an aquaculture setup near a mining outpost can produce fish, which are then processed into Fish Slurry to supply lubricant for the AAI Loaders.

However, after testing the fish respawn rate, even on the Fast (2x) setting, it feels very inconsistent and far too slow. At first I actually thought the mod wasn't working.

For example, I currently have one Factorio chunk filled with about 80 fish at maximum settings, and after roughly 30 minutes I only noticed a single respawn. In another pond with around 200 fish, I didn't see a single respawn even after an hour.
Or does any of the "Watermods"alter the spawning-Rate?
Would it be possible for you to take a look at this specific issue?

The combination of all these mods creates a really interesting problem/solution setup, so it would be great if the fish respawn mechanics could support that kind of gameplay a bit more reliably.

Have a nice Day
And thanks for the mod

3 days ago
(updated 3 days ago)

Hi,

I can add an ultra-fast setting for starters.

Here is how the breeding math works.

Normal setting: every 1 sec up to 32 random chunks are selected based on how much of the map is revealed.
If a chunk has only water tiles, and has fish around half the breeding-limit, then it has around 90% to spawn a fish there.
The math is based on normal distribution, not enough fish or too many lowers the chances.
Due to random nature it is normal if a chunk doesn't even try to breed for minutes.

The Fish-finder mod is made so you can actually monitor the fish population of your chunks, and allows control of fishing-rods (inserters) with circuit.

So for a self sustaining population, I recommend having large bodies of water, catch fish elsewhere and fill your pond with it to around half the allowed max population (Scales with chunks water content based on breeding-limit as maximum)
Adjusting the max allowed rate lower at start of the game should also increase the initial speed of population growth.

If you wish to monitor when and where did fish spawn: in scripts/fish-utils.lua uncomment the Debug block from line 74 to 90.
EDIT: Only works when launched from vscode with debug-adapter enabled, or if you set is_debug_active = true in line 2.

Hope this helps, awaiting more comments and I will release the ultra-fast setting update soon.

3 days ago

Hi,

I totally forgot to mention your Fish Finder mod in the original list.

I also noticed that you already pushed an update! That's marvelous, thanks a lot for the quick work.

We'll give it try tonight.

After reading your explanation of how the breeding mechanic works, I'm a little worried that my idea might run into problems in the long run. Our map setup uses rare ores and large bodies of water, so as the explored area grows we quickly end up with a lot of water chunks. Because breeding checks are distributed randomly across all revealed chunks, this might make breeding in the specific ponds near our mining outposts happen very rarely.

While brainstorming with my friends about possible solutions, we wondered if a more localized approach might help.

For example, since Fish Finder already evaluates the fish population inside the area around him, maybe that same area/chunk could occasionally trigger a breeding attempt there instead of relying purely on random checks across the whole revealed map. That way breeding would be more focused on areas where players actually monitor or manage fish populations, and it might also be more performance-friendly. (maybe an option in the fish-finder settings?)

Just a thought from our side after experimenting with the system. maybe it’s helpful as feedback.

Have a nice day and again thanks for the work.

3 days ago

Hi,

Thanks for the feedback!

I introduced more options.

If you set chunk scale divisor to 300 and breeding speed to ultra fast, same chunk should be evaluated more frequently, with a theoretical 1.8 fish/min breed under optimal circumstances (fully water chunk with optimal fish count).

Making it more local to player/active chunks, or another entity like fish finders is more UPS costly, while a compatibility boost option can be considered.
I am also giving thought on it as a separate mod/entity like a fish feeder. There is a similar mod to this by Soulcrysis: Fishing docks

Have a nice game and feel free to give more feedback.

New response