---
title: "How to Teleport in Minecraft"
description: "Current /tp and /teleport syntax on Java and Bedrock, relative and facing coordinates, target selectors, and the permission level each one needs."
url: "https://www.gameserverkings.com/knowledge-base/minecraft/how-to-teleport/"
category: "Minecraft"
category_url: "https://www.gameserverkings.com/knowledge-base/minecraft/"
published: "2026-09-12T09:19:27.215Z"
updated: "2026-09-12T09:22:21.951Z"
source_format: "markdown"
site: "GameServerKings"
---

# How to Teleport in Minecraft

Teleporting in Minecraft is one command and a surprising amount of small print. `/tp` will move you, a friend, every player online or a single sheep to a coordinate, to another entity, or into a dimension you have never set foot in. What stops people is rarely the syntax — it is that the command is switched off until something turns it on, and what that something is depends on whether you are in a single-player world, on a Realm, on a Java server or on Bedrock.

This guide covers the current syntax in both editions, how to turn commands on in a world you have already started (which changed in Java 26.2, and most guides have not caught up), the `~` and `^` shorthands that make `/tp` worth typing, target selectors, dimension hopping, and why you should not hand teleporting to players by opping them.

> [!NOTE] Versions and date checked
> Every syntax line, permission level and edition difference below was verified against minecraft.wiki on **12 September 2026**, against the current releases: **Java Edition 26.2** and **Bedrock Edition 26.45** (Bedrock Dedicated Server 1.26.45.1). Where behaviour differs between editions it is called out rather than averaged.

## The command in Java Edition

The command is `/teleport`, and `/tp` is an official alias for it rather than a legacy leftover — the two have been identical since 1.13, when `tp` was folded into `teleport`.

| Form | What it does |
|---|---|
| `/tp <destination>` | Moves you to an entity, and copies that entity's rotation |
| `/tp <targets> <destination>` | Moves the targets to an entity |
| `/tp <location>` | Moves you to coordinates, facing the way the command was executed |
| `/tp <targets> <location>` | Moves the targets to coordinates, leaving their rotation alone |
| `/tp <targets> <location> <rotation>` | As above, with an explicit yaw and pitch |
| `/tp <targets> <location> facing <facingLocation>` | Moves them and turns them to look at a point |
| `/tp <targets> <location> facing entity <facingEntity> [<facingAnchor>]` | Turns them to look at an entity — `facingAnchor` is `feet` or `eyes`, and defaults to `feet` |

One asymmetry catches people building lobby spawns: teleporting to **an entity** copies that entity's rotation, while teleporting to **coordinates** leaves rotation untouched unless you supply one.

`/teleport` needs **permission level 2** in Java. In a single-player world where commands were enabled at creation your level is 4, so it just works. On a dedicated server the level comes from `ops.json`, and `op-permission-level` in `server.properties` decides what a plain `/op PlayerName` grants — it ships as `4`.

## The command in Bedrock Edition

Bedrock has the same two names and a different argument order, plus one argument Java does not have.

| Form | What it does |
|---|---|
| `/tp <destination: target>` | Moves you to an entity |
| `/tp <victim: target> <destination: target> [checkForBlocks]` | Moves the victim to an entity |
| `/tp <destination: x y z> [checkForBlocks]` | Moves you to coordinates |
| `/tp <victim: target> <destination: x y z> [checkForBlocks]` | Moves the victim to coordinates |
| `/tp <destination: x y z> [yRot] [xRot] [checkForBlocks]` | With rotation — two separate arguments, yaw then pitch |
| `/tp <destination: x y z> facing <lookAtPosition: x y z> [checkForBlocks]` | Facing a point |
| `/tp <destination: x y z> facing <lookAtEntity: target> [checkForBlocks]` | Facing an entity |

`checkForBlocks` is the Bedrock-only one, and it is genuinely useful: set it to `true` and the game "teleports the target(s) only if the target(s) would not collide with a block it cannot be inside" — the difference between landing in a cave and landing inside solid deepslate. It defaults to `false`: no check, just teleport. Java has no equivalent.

Two more differences. `/teleport` needs only **permission level 1** on Bedrock, but it is also marked **cheat only** — the permission alone is not enough, cheats must be on too. And there is no `facingAnchor`: Bedrock always faces the target entity's feet from your feet.

Which edition you are on decides more than syntax, including who can join you. [Is Minecraft Crossplay?](/knowledge-base/minecraft/is-minecraft-crossplay/) covers whether your Java and Bedrock friends can share a world at all.

## Turning commands on in a world you already started

This is the actual question behind most "how do I teleport" searches, and the answer changed recently.

**Java Edition.** The world-creation option is called **Allow Commands** — it was renamed from "Allow cheats" back in 1.20.5. If you left it off, you used to be stuck with the Open to LAN workaround. As of **26.2** you are not: the host of a world now has access to the "Game Mode" and "Allow Commands" buttons in the **World Options** screen, which lives in the pause menu. Flip Allow Commands on there and `/tp` works, in the world you are already standing in.

The same release moved Open to LAN's copies of those buttons under a "Settings for Other Players" header, where they no longer affect the host at all — so any guide telling you to Open to LAN to get commands for *yourself* is describing a version that no longer exists.

> [!WARNING] Hardcore worlds cannot do this
> The "Game Mode" and "Allow Commands" buttons are not available in Hardcore worlds, in World Options or in Open to LAN — so a Hardcore world has no in-game switch for this.

**Bedrock Edition.** Cheats live in the "Cheats" tab of the world settings and can be toggled at any time. The cost is permanent: enabling cheats in a Bedrock world permanently prevents players from unlocking achievements in that world, even if cheats are later turned off. On a Bedrock Dedicated Server it is `allow-cheats` in `server.properties` — "if true then cheats like commands can be used" — and it ships as `false`. `/changesetting` can toggle it from the server console.

## `~` and `^`: the two shorthands that make `/tp` worth typing

Absolute coordinates work when you know them. These two shorthands make `/tp` usable in the moment.

**Tilde — relative world coordinates.** A number after `~` is an offset from where the command is executed, along the world axes, and a lone `~` means an offset of zero. You can mix tildes with absolute numbers freely:

```text
/tp ~ ~10 ~          lift yourself ten blocks straight up
/tp ~ 64 ~           keep your X and Z, drop to an absolute height of Y=64
/tp ~100 ~ ~         100 blocks east, same height, same Z
```

That second one is worth memorising: it keeps your horizontal position and sends you to a fixed altitude, which is the fastest way out of a cave you are lost in.

**Caret — local coordinates.** A number after `^` is an offset in a frame that moves and turns with you: `^sway ^heave ^surge`. Positive sway is to your **left**, positive heave is **up**, positive surge is **forward, in the direction you are looking**.

```text
/tp ^ ^ ^5           five blocks forward, wherever you are facing
/tp ^ ^ ^-1          one block backward
```

Two rules. Carets cannot be mixed with world coordinates — `^ 0 ^` fails to parse, with "Cannot mix world & local coordinates (everything must either use ^ or not)". And `^ ^ ^5` follows your pitch as well as your yaw, so looking up sends you up. To move forward at a constant height, flatten the pitch:

```text
/execute rotated ~ 0 run tp ^ ^ ^3
```

That teleports you three blocks forward at the same Y.

## Target selectors: who gets moved

A selector in the `<targets>` slot turns one command into many. Java has six; Bedrock has those plus `@initiator` for NPC dialogue buttons.

| Selector | Selects |
|---|---|
| `@s` | The entity running the command |
| `@p` | The nearest player |
| `@n` | The nearest alive entity of any kind (added in Java 1.21) |
| `@r` | A random online player |
| `@a` | Every online player, alive or dead |
| `@e` | Every alive entity in loaded chunks, plus every alive online player |

```text
/tp @a @s            pull every player to you
/tp @e[type=cow] ~ ~ ~   gather every loaded cow onto your position
/execute as @a at @s run tp ~ ~10 ~   lift every player ten blocks from where they individually stand
```

> [!WARNING] `@s` is empty from the console and from command blocks
> `@s` selects the entity the command was run *as*, and "does not select anything if the command was not ran as an entity". Run `/tp @s 0 64 0` from your server console or over RCON and nothing happens, silently. Name the player instead.

## Teleporting between dimensions

`/tp` on its own cannot change dimension by coordinates — you need `/execute in` to set the dimension first:

```text
/execute in minecraft:the_nether run tp ~ ~ ~          (Java)
/execute in nether run tp ~ ~ ~                        (Bedrock)
/execute as @a in minecraft:the_end run tp 84 57 79    (Java)
```

Teleporting to a *player* across dimensions needs no `execute` — Java has allowed it since 1.13, and Bedrock since 1.19.50.

> [!TIP] `execute in` ignores the Nether's 8:1 ratio
> Nether coordinates map to Overworld coordinates at eight to one — one block in the Nether is eight in the Overworld. `/execute in minecraft:the_nether run tp ~ ~ ~` does **not** apply that ratio; it drops you at the same numeric coordinates in the other dimension. If you want the spot a portal would have taken you to, divide your Overworld X and Z by eight yourself.

## Finding somewhere worth teleporting to

`/locate` is the natural partner to `/tp` and needs the same permission level 2. `/locate structure <structure>` returns the nearest match's coordinates, and since 1.13 that output has carried a clickable teleport link — on Java you often do not have to retype anything:

```text
/locate structure mansion
/locate structure trial_chambers
/locate biome desert
/locate structure #village        (Java — the # makes it a tag, matching any village type)
```

Trial chambers are the usual target; what is down there is covered in [Minecraft Trial Chambers: Loot, Spawners and Vaults](/knowledge-base/minecraft/trial-chambers/).

If you want a way *home* rather than a way out, the vanilla answer is not a command: a bed or respawn anchor sets your respawn point, and `/spawnpoint [<targets>] [<pos>] [<angle>]` sets it by command. [How to Make a Bed in Minecraft](/knowledge-base/minecraft/how-to-make-a-bed/) covers the low-tech version.

## On a multiplayer server, do not op your players

Here is the trap. Level 2 is not a teleport permission, it is the **Gamemaster** tier: the same level unlocks `/gamemode`, `/give`, `/gamerule` and command blocks. Grant it so people can teleport to each other and you have granted creative mode and infinite items — and since `op-permission-level` defaults to `4`, a plain `/op` is worse still. [Minecraft Op Permission Levels: 0 to 4 Explained](/knowledge-base/minecraft/op-permission-levels/) walks through each tier.

The answer on a Java server is a plugin that owns teleporting separately from op. EssentialsX gives you `/tpa` and `/tpahere` (request-based, so nobody is yanked around without consent), `/tpaccept`, `/tpdeny`, `/back`, `/top`, `/home` and `/warp` — each behind its own permission node (`essentials.tpa`, `essentials.tpaccept`), so teleporting can go to everyone while op stays with you. It also adds what a survival server needs: `teleport-delay` is a warm-up during which moving or taking a hit cancels the teleport, the standard defence against escaping a fight, and `teleport-cooldown` limits how often. [EssentialsX Setup: Homes, Warps, Kits and Economy](/knowledge-base/minecraft/essentialsx-setup/) covers the configuration.

Bedrock's model is simpler: teleporting is its own per-player toggle. The **Teleport** permission "allows the player to use the `/tp` command" and belongs to the Operator role, while Build, Mine and Open containers belong to Member — so a Custom role can hand out `/tp` without operator commands. On servers that lives in `permissions.json`, with `default-player-permission-level` (shipping as `member`) setting what new players get. Note that setting another player to Operator permanently disables achievements for the world.

Getting a plugin and a permissions manager running is mostly file uploads and a restart — on a [managed Minecraft server](/games/minecraft/) the plugin folder and `server.properties` sit behind a panel field, which is what makes the EssentialsX route cheaper than the "just op them" route.

## When `/tp` fails, and when it lags the server

- **A named player must be online.** If `<targets>` or `<destination>` cannot resolve to an entity, the command fails outright.
- **Coordinates have hard limits.** Since Java 1.16, `teleport` refuses any position where X or Z falls outside `[-30000000, 30000000)` or Y outside `[-20000000, 20000000)`. Your server's own `max-world-size` (default `29999984`) will usually stop you long before that.
- **It generates chunks.** This is the one that bites server owners. Most commands only touch chunks that already exist, but `teleport` "can send entities into chunks that have yet to be generated. Right before teleporting, the game generates the destination chunk." Send several players to scattered far-flung coordinates and you have asked the server to generate terrain several times at once. If teleporting into fresh territory is how your server works — a random-spawn plugin, a wild command, a new resource world — pre-generate it: [Minecraft World Management: Seeds, Pre-generation, Borders and Resets](/knowledge-base/minecraft/world-management/) covers how.

## What to Read Next

- [Minecraft Op Permission Levels: 0 to 4 Explained](/knowledge-base/minecraft/op-permission-levels/) — what level 2 really grants before you grant it
- [Minecraft Server Commands: The Complete Op & Admin List](/knowledge-base/minecraft/admin-commands/) — the rest of the vanilla command set, including `/execute`
- [EssentialsX Setup: Homes, Warps, Kits and Economy](/knowledge-base/minecraft/essentialsx-setup/) — `/tpa`, `/home`, `/warp` and the delay and cooldown settings
- [Minecraft World Management: Seeds, Pre-generation, Borders and Resets](/knowledge-base/minecraft/world-management/) — pre-generation, and why it matters to `/tp`
- [Multiverse: Running Several Worlds on One Minecraft Server](/knowledge-base/minecraft/multiverse-multiple-worlds/) — if your teleports need to cross worlds rather than dimensions
- [Getting started with your Minecraft server](/knowledge-base/minecraft/java-getting-started/) — start here if the world is not on a server yet
- [Is Minecraft Crossplay?](/knowledge-base/minecraft/is-minecraft-crossplay/) — which of your friends can join which world
- [Minecraft Trial Chambers: Loot, Spawners and Vaults](/knowledge-base/minecraft/trial-chambers/) — the usual destination for `/locate structure`
- [How to Make a Bed in Minecraft](/knowledge-base/minecraft/how-to-make-a-bed/) — the no-commands way to set where you come back to

---

Made with 💜 by GameServerKings
