The /summon command spawns any entity in Minecraft at a spot you choose. That covers mobs like creepers and villagers, but also things you can’t get from a spawn egg, such as the ender dragon, a falling block, a lightning bolt, or a primed TNT entity.
It works in any world that has cheats turned on, and it’s one of the most useful commands for building maps, testing redstone, setting up farms, or just messing around. This guide covers the syntax for both Java and Bedrock, how coordinates work, and a set of examples you can paste straight into the chat box.
What the /summon command does
At its simplest, /summon creates one entity of the type you name, either where you’re standing or at coordinates you give it. An “entity” is anything in the world that isn’t a plain block: mobs, dropped items, projectiles, armor stands, minecarts, boats, experience orbs, and special objects like the end crystal.
Because it spawns the entity directly, it skips the normal spawn rules. Light level, biome, and the usual mob caps don’t stop it. That makes it handy for putting a mob exactly where you want one, even somewhere it would never spawn on its own.
You need operator permission or a single-player world with cheats on. On a server you’ll need at least permission level 2. The command runs from the chat box, a command block, or the server console.
Java Edition syntax
The full form of the command in Java looks like this:
/summon <entity> [<pos>] [<nbt>]
Only the entity type is required. The other two parts are optional and go in order:
<entity>is the entity ID, written with the namespace, likeminecraft:creeperorminecraft:armor_stand. You can usually drop theminecraft:prefix and just typecreeper.[<pos>]is the x y z position. Leave it out and the entity spawns at your feet.[<nbt>]is a block of extra data in curly braces that sets the entity’s properties, like its health, name, or whether a creeper is charged.
So /summon cow drops a cow on top of you, while /summon cow ~ ~ ~5 puts one five blocks away.
Bedrock Edition syntax
Bedrock uses a slightly different layout and doesn’t support the same NBT system. The two accepted forms are:
/summon <entityType> [spawnPos] [spawnEvent] [nameTag]
/summon <entityType> <nameTag> [spawnPos]
The spawnEvent is a built-in trigger that changes the entity as it spawns. For example, minecraft:as_baby spawns a baby animal, and minecraft:charged_creeper spawns a charged creeper. The nameTag sets the entity’s name in quotes, the same name you’d see from a name tag item.
Bedrock players don’t write raw NBT, so a lot of the fine control Java gives you comes through these spawn events instead.
How coordinates work
Coordinates tell the game where to put the entity. You can write them three ways, and you can mix them.
Absolute coordinates are plain numbers, like 100 64 -200. They point to one fixed spot in the world no matter where you are.
Relative coordinates use the tilde symbol ~ and count from your current position. ~ ~ ~ means “right here.” ~ ~3 ~ means three blocks above you. This is the form you’ll use most often.
Local coordinates use the caret symbol ^ and count from the direction you’re facing: left/right, up/down, and forward/backward. ^ ^ ^2 spawns the entity two blocks in front of where you’re looking, which is great for aiming projectiles.
If you leave the position out entirely, the game uses the position of whoever ran the command.
Using NBT data in Java
NBT (named binary tag) data is where the command gets powerful in Java Edition. It’s a list of properties inside curly braces, and it lets you set almost anything about the entity before it appears.
A few common tags:
{NoAI:1b}freezes the mob so it stands still and won’t wander or attack.{CustomName:'"Bob"'}gives the entity a visible name.{Health:100f}sets current health (you may also need a matching max-health attribute for it to stick).{Invulnerable:1b}makes the entity immune to damage.{Silent:1b}mutes its sounds.
You can stack several tags by separating them with commas. For instance, /summon zombie ~ ~ ~ {NoAI:1b,CustomName:'"Guard"',IsBaby:1b} spawns a still, named baby zombie. The letters after numbers (b for byte, f for float) matter, so keep them when an example includes them.
Practical examples
Here are commands you can use as-is. These are written for Java Edition unless noted.
Spawn a charged creeper
Java: /summon creeper ~ ~ ~ {powered:1b}
Bedrock: /summon creeper ~ ~ ~ minecraft:charged_creeper
A charged creeper has a blue aura and a much larger blast. It’s the only way to get mob heads from other mobs.
Spawn lightning
/summon lightning_bolt ~ ~ ~
This strikes lightning at your position. Stand back, because it sets fire and hurts. It’s the trick behind turning a pig into a zombified piglin or a creeper into a charged one.
Spawn a named, frozen mob for a build
/summon villager ~ ~ ~ {NoAI:1b,CustomName:'"Shopkeeper"'}
The villager stays put and shows its name above its head, which is useful for adventure maps or decorative scenes.
Spawn the ender dragon
/summon ender_dragon ~ ~ ~
This drops a fresh dragon wherever you are, including the Overworld. It won’t have the End fight structure around it, so it just flies and attacks. Summon it somewhere open and be ready.
Spawn a falling block
/summon falling_block ~ ~5 ~ {BlockState:{Name:"minecraft:anvil"}}
This makes an anvil fall from five blocks up. Falling blocks are how mapmakers create dropping-sand traps and similar contraptions.
Spawn primed TNT
/summon tnt ~ ~ ~ {fuse:80}
This drops a block of TNT that’s already lit, with the fuse length set in game ticks (80 ticks is about four seconds). It’s a quick way to test blast radius or wire up a trap without flint and steel. Give yourself distance before it goes off, since the explosion damages you and nearby terrain.
Common mistakes and fixes
If the command fails, the chat usually tells you why. A few things trip people up.
Cheats have to be on. In single-player you set this when you make the world, or open the world to LAN and turn cheats on for the session. Without cheats, the command simply won’t run.
Spelling counts. Entity IDs use underscores, not spaces: iron_golem, not “iron golem.” If you’re not sure of an ID, start typing and let the chat’s auto-complete list fill in the rest.
NBT is Java-only. Pasting a Java command with curly braces into Bedrock will fail. Use the Bedrock spawn event instead.
Floating-point and byte letters matter. If an example shows 1b or 100f, type it exactly. Dropping the letter can make the tag do nothing or throw an error.
Watch your position. A relative ~ spawn lands on you, so a hostile mob can hit you the moment it appears. Add a small offset like ~ ~ ~3 to give yourself room.
Java vs. Bedrock differences
The biggest split is data. Java uses NBT tags in curly braces, which give you direct control over almost every property. Bedrock has no raw NBT in /summon and instead relies on the spawnEvent argument for variations like babies, charged creepers, and mob types.
Naming also differs in form. Java sets a name through the CustomName tag, while Bedrock takes a plain nameTag string right in the command. The end result looks the same in game.
Entity IDs are mostly shared between the two, though a handful differ, so double-check an ID if a command works on one version but not the other.
Frequently asked questions
Do I need cheats to use /summon?
Yes. The command only runs in a world with cheats enabled, or for players with operator status on a server. There’s no way to use it in a normal survival world that has cheats off.
Can I summon mobs that don’t have spawn eggs?
Yes, and that’s one of its best uses. The ender dragon, falling blocks, lightning, primed TNT, and the end crystal all lack spawn eggs but can be summoned by ID.
Why does my mob spawn right on top of me?
Because you left out the position, so it defaults to your feet. Add coordinates with an offset, like ~ ~ ~4, to spawn it a few blocks away.
How do I stop a summoned mob from moving?
In Java, add {NoAI:1b} to the command. The mob will stand frozen and won’t wander, attack, or take fall damage from AI movement.
Can I summon a baby animal?
In Java, add {IsBaby:1b} (or {Age:-24000} for some mobs). In Bedrock, use the spawn event minecraft:as_baby.
Does /summon work in command blocks?
Yes. Putting it in a command block lets you trigger spawns with redstone, which is how mob arenas, boss fights, and map events are built.
Where to go next
Once you’re comfortable spawning single entities, the natural next step is pairing /summon with target selectors and command blocks to build repeatable events. Start small: summon a named, frozen mob, then try adding one NBT tag at a time so you can see exactly what each one changes.