How do I kill mobs using /kill without them dropping loot?

I have a spawn area I am hoping to make a safe haven, so I have a command block on a clock that kills each hostile mob type. This works to keep the place free of any hostile mobs, however every night I see rotten flesh, bones, arrows, and string everywhere.

I would like to add something to my command blocks so that they are killed without dropping loot. How can I accomplish this?

Note that I want mobs to drop loot generally elsewhere in the world, so /gamerule doMobLoot false will not do the trick for me. I'm hoping for a command that only applies to the mobs killed by the command block, and not anything else.


You can simply teleport all hostile mobs in a certain radius 256 blocks down. May they, and their drops, rest in peace in the void below the world.


The DeathLootTable string tag can modify which loot table the mob will use when killed. The "empty" loot table will cause it to drop nothing:

1.12 and lower:

/entitydata @e[type=Zombie,r=40] {DeathLootTable:"minecraft:empty"}

1.13:

/execute as @e[type=zombie,distance=..40] run data merge entity @s {DeathLootTable:"minecraft:empty"}