local worms_per_chunk = 50 local small_worm_spawn_distance = 100 local medium_worm_spawn_distance = 150 local big_worm_spawn_distance = 200 local worm_names = {"small-worm-turret", "medium-worm-turret", "big-worm-turret"} local chance = worms_per_chunk / (32 * 32) return function(x, y, world) local distance = math.sqrt(world.x * world.x + world.y * world.y) if distance > small_worm_spawn_distance - 32 then local lvl = 1 if distance > medium_worm_spawn_distance then lvl = 2 end if distance > big_worm_spawn_distance then lvl = 3 end if math.random() < chance then local worm_id = math.random(1, lvl) return {name = worm_names[worm_id]} end end end