Page 2 of 2
Re: How to remove enemies via console?
Posted: Mon Feb 01, 2016 11:26 pm
by mophydeen
sarcolopter wrote:mophydeen wrote:sarcolopter wrote:Sorry for necroing. I used this, and it appears to have removed all enemies from the map, instead of ~50%. Is there any way to respawn them?
Go back one save ?
That would defeat the purpose, since I'd be back right where I started.
Go back and retry command
Which command did you enter?
Re: How to remove enemies via console?
Posted: Tue Feb 02, 2016 4:45 am
by sarcolopter
mophydeen wrote:sarcolopter wrote:mophydeen wrote:sarcolopter wrote:Sorry for necroing. I used this, and it appears to have removed all enemies from the map, instead of ~50%. Is there any way to respawn them?
Go back one save ?
That would defeat the purpose, since I'd be back right where I started.
Go back and retry command
Which command did you enter?
Code: Select all
local c = 0, 0
local s = game.local_player.surface
for coord in s.get_chunks() do
local X,Y = coord.x, coord.y
find = {"biter-spawner", "spitter-spawner", "small-worm-turret", "medium-worm-turret", "big-worm-turret"}
if s.is_chunk_generated{X,Y} then
local area = {{X*32, Y*32}, {X*32 + 32, Y*32 + 32}}
for _,enemy in pairs(find) do
for _, entity in ipairs(s.find_entities_filtered{area = area, name = enemy}) do
c = c+1
entity.destroy()
end
end
end
end
game.local_player.print("Terminated "..c.." enemy structures")
I don't see how repeating an entity.destroy() command would spawn additional entities. Is there an entity.create() command or similar?
Re: How to remove enemies via console?
Posted: Tue Feb 02, 2016 6:26 am
by Koub
Well next time, if you want to remove, say, half of the spawners, in the innermost loop, add a test like :
Code: Select all
for _, entity in ipairs(s.find_entities_filtered{area = area, name = enemy}) do
if math.random(0,1) > 0.5 then
c = c+1
entity.destroy()
end
end
What you did there is basically remove all spawners one by one.
Well I'm not 100% sure of the syntax, but the idea is there

Re: How to remove enemies via console?
Posted: Tue Feb 02, 2016 1:18 pm
by Klonan
Here is a script that will kill all worms, biters, spitters and spawners everywhere on the map:
Code: Select all
/c local surface = game.local_player.surface
for c in surface.get_chunks() do
for key, entity in pairs(surface.find_entities_filtered({area={{c.x * 32, c.y * 32}, {c.x * 32 + 32, c.y * 32 + 32}}, force= "enemy"})) do
entity.destroy()
end
end
This is the same, but will only kill half of them:
Code: Select all
/c local surface = game.local_player.surface
for c in surface.get_chunks() do
for key, entity in pairs(surface.find_entities_filtered({area={{c.x * 32, c.y * 32}, {c.x * 32 + 32, c.y * 32 + 32}}, force= "enemy"})) do
if key % 2 == 0 then
entity.destroy()
end
end
end
Re: How to remove enemies via console?
Posted: Tue Feb 02, 2016 5:22 pm
by sarcolopter
well sheeeeeeit. guess I'll figure out how to mod in a crafting recipe for artifacts
Re: How to remove enemies via console?
Posted: Sun Sep 11, 2016 12:03 pm
by Iggmynir
Klonan wrote:Here is a script that will kill all worms, biters, spitters and spawners everywhere on the map:
Code: Select all
/c local surface = game.local_player.surface
for c in surface.get_chunks() do
for key, entity in pairs(surface.find_entities_filtered({area={{c.x * 32, c.y * 32}, {c.x * 32 + 32, c.y * 32 + 32}}, force= "enemy"})) do
entity.destroy()
end
end
Hello Klonan, is this command still supposed to work? I used it in a map of mine a few months ago. After one of the recent experimental updates enemys started showing up at my borders again. When I tried to use the command to wreck all of thier stuff I got an error message:
Code: Select all
Cannot execute command. Error: LuaGameScript doesn't contain key local_player.stack traceback: [string "local surface = game.local_player.surface fo.."]:1: in main chunk
Re: How to remove enemies via console?
Posted: Mon Sep 12, 2016 3:59 pm
by Adil
These days it's `player` instead of `local_player`.
Re: How to remove enemies via console?
Posted: Mon Sep 12, 2016 10:52 pm
by Iggmynir
Adil wrote:These days it's `player` instead of `local_player`.
Thank you
