I have a Redstone Power loop that connects to a Command Block that is set to kill all entities except for myself (/kill @e[type=!Player]), because I'm building a creative map, but don't want slimes all over the place. Problem is if I want to place an Item Frame than the Command Block kills it.
So, is there anyway to exclude items from getting deleted, or make it so it will only target mobs?
165 Answers
The simplest way to handle this is with a gamerule. If you don't want any mobs bothering you in your creative world, just turn off spawns with /gamerule doMobSpawning false. No mobs will spawn, which will allow you to have a quiet creative world, free from cows, pigs, sheep, chickens, slimes, etc, while also allowing yourself to do science on mobs at will. Mobs will spawn only when you want them to.
If you're really committed to the idea of doing this with /kill, however, you can do this one of two ways. You can set up individual command blocks to kill each type of mob, which might be a small set of command blocks if your main problem is slimes.
Alternatively, you can use the methods described in this answer to select exceptions. It uses a scoreboard to set a score for all entities to 1, and simultaneously sets the score of all exceptions to 0. From there, you can select the set of all mobs excluding any exceptions you want with @e[score_select_min=1].
The simplest and most flexible way to keep slimes from bothering you though is to turn off mob spawning altogether.
3All you have to do is /kill @e[type=YourMob]
If you want to kill all mobs except yourself do:
1.12: /kill @e[type=!Player]
1.13: /kill @e[type=!minecraft:player]
I have a similar problem in my world - how I resolved it was hooking up several command blocks to a hopper clock:
Each command block contains a command to kill a certain enemy type:
/kill @e[type=Slime,r=60]
I only need to worry about zombies, zombie villagers, creepers, skeletons, endermen, spiders, and witches; so I only have 7 command blocks hooked up here. You're welcome to hook up as many more as you see fit.
You can do /kill @e[type=Slime] And you can do /gamerule doMobLoot false so they wont drop anything
It isn't that hard, but you don't actually need a Command Loop to get rid of the mobs. Simply do /gamerule doMobSpawning false and it will resolve it. After that, the only mobs that can still spawn are the ones spawned by you.
With Command Blocks takes more time to do because have to do 2 commands.
First, do this command: /gamerule doEntityDrops false this command stops mobs from dropping items, then on the Command Block, set the command: /kill @e[type=mob].
This is what I know, and I hope I helped you.
Good luck with your map, hope to see it done and play it soon!😄