Factorio: Using Coordinates & Teleportation
As your factory expands to cover thousands of map chunks, keeping track of specific outposts, oil fields, and biter nests becomes a challenge. Factorio utilizes a standard X,Y coordinate system where (0,0) is the exact center of your starting area. Understanding these numbers is key to precise planning and advanced server administration.
1. The Coordinate Grid
The X-axis runs East-West (positive East, negative West). The Y-axis runs North-South (positive South, negative North). Every tile in the game world has a unique address.
2. Debug Overlay
You don't need mods to see your position. Factorio has a built-in debug menu (F4) that can display your real-time coordinates and chunk information on your HUD.
3. Admin Teleportation
Using Lua console commands, admins can instantly move between coordinates. This is essential for inspecting distant outposts or clearing out bugs in the map generation.
How to View Your Coordinates
- While in-game, press F4 to open the "Debug Settings" window.
- Select the Always tab at the top.
- Locate and check the box for
show-detailed-info. - Close the menu. Your coordinates will now appear in the top-left corner of your screen.
- Note: The display shows both your Character position and your Cursor position.
Useful Console Commands
To use these commands, you must have admin permissions on the server. Press ~ to open the console.
Print Current Position
Use this to get your exact coordinates for a teammate:
/c game.player.print(game.player.position)
Teleport to Specific Coordinates
Instantly move to a point on the map (e.g., X=500, Y=-300):
/c game.player.teleport({500, -300})
Teleport to Another Player
Move directly to a teammate:
/c game.player.teleport(game.players["TeammateName"].position)
Travelling Without Lua
Two of the game's own commands move you or tell you where you are, and neither one is a Lua command, so neither depends on allow-commands being switched on for you:
/cheat <planet-name>moves you to that planet and/cheat <platform-name>to that space platform. Travel is one branch of the same command as/cheat all, so it carries that command's cost: cheat mode disables achievements for the save. Name a planet it does not recognise and it answers with "Matching planets:" and the closest candidates, which doubles as a way to list them. See console commands for the full text of what/cheatdoes./seedprints the starting map seed, which is the number you need if you want to look at the world outside the game.
That second one pairs with the Factorio map generator and seed viewer: feed it the seed and you can find the ore patch you are hunting for on a map view rather than by walking. The full command list is on console commands.
Coordinates Before the World Exists
The headless binary can render a map to a PNG before anybody joins, which is the cheapest way to plan outpost coordinates for a server you are about to start. The option parser's own arguments for it:
| Argument | What it does |
|---|---|
--generate-map-preview PATH | Generate preview images of the map. PATH names a PNG file, or ends in a slash to mean a directory. |
--map-preview-size SIZE | Size in pixels of the preview. Default 1024. |
--map-preview-offset X,Y | Offset of the centre of the map, in meters. Default 0,0. This is the argument that takes coordinates. |
--map-preview-planet PLANET | Planet to generate the preview for. Default nauvis. |
--map-gen-seed SEED | Seed to generate with, overriding any seed in the map-gen settings. |
--map-gen-seed-max SEED | Renders a preview for every second seed from --map-gen-seed up to this one. |
--generate-map-preview-random COUNT | Number of maps to generate with a random seed. |
--report-quantities PROTOTYPE,... | While generating a preview, report approximate quantities of the named entity prototypes. |
--threads THREADCOUNT | Number of threads to use when generating map previews. It affects previews only, not the running simulation. |
The last two are the interesting pair. --report-quantities with --generate-map-preview-random is a seed hunter: render a batch of random seeds, ask each one how much iron and copper is near spawn, and pick before you commit the world. The centre of every preview is (0,0) unless you move it with --map-preview-offset, which uses the same coordinate system as everything on this page.
Worth knowing what the coordinates are addressing, too. A default Nauvis world is infinite in both directions: the map generation example ships width and height at 0, which is what unlimited looks like in that file, and starting_points at a single {"x": 0, "y": 0}. That single starting point is why (0,0) is the anchor for everything. If you want a world that is not infinite, the build also ships nine named presets you can pick with --preset, among them ribbon-world, island and rail-world, and those set the generation parameters for you.
Mapping Example
| X,Y Offset | Resource/Area | Logistics Note |
|---|---|---|
| (0,0) | Spawn Point | Start of the main bus. |
| (2000, 0) | Deep Iron Outpost | Requires at least 4-8 train wagons for efficiency. |
| (0, 5000) | Uranium Field | Consider using a dedicated logistics subnet. |
Warning: Be careful when teleporting into unexplored areas. If you teleport into a chunk that hasn't been generated yet, the game will lag momentarily while it creates the terrain around you.
Navigate the infinite factory with ease. View plans.