True Nukes


Adds realistic nuclear blasts, and more nuclear options, including various scales of atomic artillery shell, as well as atomic cannon shells. Also adds thermobaric weapons (these are like fuel air bombs), which act as early game nukes. Simulates the blast wave, thermal impact, crater and fireball of nuclear weapons.

Content
11 months ago
1.0 - 1.1
43.3K
Combat

b [Running out of Tiles] Tile with name 'nuclear-deep-fill' does not exist

1 year, 3 months ago
(updated 1 year, 3 months ago)

I only report this because the error mentions a file with the word nuclear in it despite it blames alien-biomes, but alien-biomes is configured not to remove any tiles.

The error:

Error in assignID: tile with name 'nuclear-deep-fill' does not exist. It was removed by alien-biomes.

Source: grass-1 (tile).

This prevents the game from starting, the combination of mods to reproduce is: True Nukes 0.3.21, Space Exploration 0.6.112, Landfill Plus 1.0.19, Balanced Waterfill 1.3.2 and Dectorio 0.12.6.

1 year, 3 months ago

The issue you're encountering is that the game runs out of assignable tiles. For efficiency, it only supports 255 types of tile, and alien biomes and dectorio are both verrry tile-hungry.
To solve the issue, you have to either choose one of those mods to sacrifice, or choose some settings on a mod to reduce the tile usage (Alien Biomes and Dectorio both have such settings - notably the "Remove obsolete tiles" setting on Alien Biomes), as with SE, Landfill Plus, and Dectorio alone, the tile count reaches 251.
True nukes adds only 7 tiles, but its enough to make everything fall over - I do have settings to remove that tile usage, but it removes a bunch of functionality as well, so I'd not recommend it.
Another mod which encounters these issues: https://mods.factorio.com/mod/AsphaltRoads/faq

1 year, 3 months ago
Alien Biomes and Dectorio both have such settings

That's right, I had been reducing tiles through Dectorio options but I avoided trying the remove obsolete tiles of Alien Biomes because it appeared counter intuitive to me that I should disable more tiles to fix a problem that arises because of missing tiles.

Not a bug here then, thanks.

1 year, 3 months ago

Yeah, it's a pretty eccentric problem case. Hope you get it working.

1 year, 3 months ago

This issue almost made me make a bug report again!

This happens right after an explosion with a nuke 20t or higher, to reproduce you must use True Nukes 0.3.21, Krastorio 2 1.3.22, Landfill Plus 1.0.19, Transport Drones 1.0.14, Space Exploration 0.6.112 and Space Factorissimo:

The mod True Nukes (0.3.21) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event True-Nukes::on_script_trigger_effect (ID 155)
Unknown tile name: nuclear-high
stack traceback:
        [C]: in function 'set_tiles'
        __True-Nukes__/scripts/crater-system.lua:248: in function 'nukeTileChangesHeightAware'
        __True-Nukes__/control.lua:284: in function 'atomic_weapon_hit'
        __True-Nukes__/control.lua:411: in function <__True-Nukes__/control.lua:367>

It happens, apparently, when during runtime the mod tries to access a tile that's no longer available, again.

1 year, 3 months ago

Yeah, the issue happens in really complex ways.
I'll add some code during startup to check all the tiles exist which should mitigate this, though I'm not sure how consistently it would catch those cases...

7 months ago

I think I just found the same bug again, same mods plus Dectorio and I get this when enough tiles are registered by other mods:

Exception at tick 3622: The mod True Nukes (0.3.33) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event True-Nukes::on_script_trigger_effect (ID 155)
Unknown tile name: nuclear-high
stack traceback:
        [C]: in function 'set_tiles'
        __True-Nukes__/scripts/crater-system.lua:270: in function 'nukeTileChangesHeightAware'
        __True-Nukes__/control.lua:284: in function 'atomic_weapon_hit'
        __True-Nukes__/control.lua:402: in function <__True-Nukes__/control.lua:367>

I think that in code you should be able to check tile prototypes at runtime startup in on_init and/or on_load , leave some flag in a variable in the mod's internal state. Then every time you need those tiles but they didn't exist on startup you can then omit functions that need them.

7 months ago

Yes, there are many many ways of getting this bug.
Unfortunately, checking the tile prototypes like you described would make the game break in a weird way when trying to load a map with those tiles in. There really isn't an easy way for true nukes to run without any of its tiles, as they are used for functionality, rather than just aesthetics. Not using them would mean not generating craters.
I may add a check for the tile prototypes to deliberately crash the game on startup if too many tiles are loaded, but I'm not sure if that's actually more helpful.

New response