Hi Veden, so I finally released that mod I was mentioning: Restrictions on Artificial Tiles
It's not able to pick up some of your new biter nests and worms, though, and even if it could, I'm not sure if you'd want my default values assigned to them or not.
In a nut shell, the concept of my mod is to make it so some tiles, which I refer to as "artificial" tiles (like concrete), cannot be placed where some entities are (like trees, cliffs, biter nests/worms) and vice versa, with some exceptions. In the case of biter nests/worms, when spawned on artificial tiles, they have a chance at "failing".
I have a couple of functions you can call from your mod in the data stage to register your biter nests and worms with mine:
RestrictionsOnArtificialTiles.Register_worm(worm, fail_factor)
RestrictionsOnArtificialTiles.Register_spawner(spawner, fail_factor)
fail_factor is a number of type double and is a coefficient used in combination with the average walking_speed_modifier of any tiles the biter nest/worm is on to determine the chance at failing: (avg - 1) + ((avg - 1) * fail_factor)
Allowed values are from -1 (least chance at failing across all tiles) to an unrestricted positive number (10 guarantees spawn failure with an average walking_speed_modifier of a little under 1.1 or greater).
You can pick which ever values you think are most appropriate for your biter nests/worms. For reference, these are the values I'm assigning to vanilla:
small worms: fail_factor of 1
medium worms: fail_factor of 2/3
big worms: fail_factor of 1/3
behemoth worms: fail_factor of 0
nests: fail_factor of 0.5
Anyway, I'm going to stop writing here. I hope what I've written makes sense and isn't confusing. :/ I've put more details on the mod portal page for my mod if interested, including a table at the bottom for various fail_factor and average walking_speed_modifier values. Assuming, of course, that it doesn't make things more confusing. XD