본문으로 건너뛰기
Coords Picker

Coords Picker

Click the RDR2 map for x, y, z and a heading, copy them as vector3, vector4 or JSON, and get the state, district, town and water zone at that spot.

이 문서는 아직 영어로만 제공됩니다.

Open the tool Last updated

The Coords Picker turns a click on the RDR2 map into a position your script can use: x, y, a z read from the game’s heightmap, and a heading you aim by dragging. Copy it as vector3, vector4, JSON or a bare x, y, z. It also tells you which state, district, town and water body the point is in, with the zone hashes and the Lua to check them.

What it is for

Spawn points, shop positions, teleport targets, zone checks. Instead of walking there in game and printing your coords, click the spot on the map, copy the line and paste it into your config. Then fine tune z in game.

Quick start

  1. Click the map. A numbered point drops there and opens in the Point 1 panel.
  2. To set a heading, press on the selected point and drag in the direction it should face.
  3. Pick Ground or Top for z, or type your own.
  4. Press vector3, vector4, JSON or x, y, z to copy the point.
  5. Keep clicking to add more points. With two or more, a Lua table of all of them appears under Points.

The map has the same Mainland / Guarma, Terrain / Paper and Reference points buttons as the Interactive Map, but no 3D view.

The point panel

Field or button What it does
x, y The world position, rounded to two decimals. You can type over them.
z The height. Filled from Ground when you click; typing a value keeps yours.
heading 0 to 360. Set by dragging from the point, or typed.
Ground / Top The two heights the game’s heightmap stores for the 8 m cell under the point. Shows ? and is disabled where no height is known.
Center Moves the map back to this point.
vector3 / vector4 / JSON / x, y, z Copy the point in that format. The vector4 line is also shown under the buttons.

Heading counts the way GetEntityHeading does: 0 is north, 90 is west, 180 is south, 270 is east.

For a point clicked at the Valentine bank, with Ground picked and no heading set, the four buttons copy:

Text
vector3(-308.42, 775.88, 115.5)
vector4(-308.42, 775.88, 115.5, 0.0)
{"x":-308.42,"y":775.88,"z":115.5,"heading":0}
-308.42, 775.88, 115.5

Where z comes from

The game’s heightmap keeps two numbers for every 8 m cell: the lowest point (Ground) and the highest (Top, which includes roofs and tree tops). Ground is picked by default because it is usually what you want for a ped or a prop outside.

At the Valentine bank, for example, Ground is 115.5 and Top is 125, while the bank’s front doors sit at 117.73. Inside a town or on a slope the real floor can be a few metres off either number. Treat z as a starting point, stand there in game, and type the exact value.

Zones here

Under the copy buttons, Zones here lists every zone of the game’s mapzones.meta that covers the point, with its name, type, hash in hex and the signed hash (with a copy button). Under the list is Lua that checks each one with _GET_MAP_ZONE_AT_COORDS. For the Valentine bank:

Lua
-- _GET_MAP_ZONE_AT_COORDS (0x43AD8FC02B429D33), type 0 = STATE
if Citizen.InvokeNative(0x43AD8FC02B429D33, x, y, z, 0) == -1289136221 then -- NewHanover
end
-- _GET_MAP_ZONE_AT_COORDS (0x43AD8FC02B429D33), type 10 = DISTRICT
if Citizen.InvokeNative(0x43AD8FC02B429D33, x, y, z, 10) == 131399519 then -- Heartlands
end
-- _GET_MAP_ZONE_AT_COORDS (0x43AD8FC02B429D33), type 1 = TOWN
if Citizen.InvokeNative(0x43AD8FC02B429D33, x, y, z, 1) == 459833523 then -- valentine
end

x, y, z are yours to fill in, usually the player’s coords. The native returns the hash of the zone of that type at the position, and the hash is joaat of the zone name. The type numbers used: 0 state, 1 town, 2 lake, 3 river, 5 swamp, 6 ocean, 7 creek, 8 pond, 10 district.

The town the point is in is also outlined on the map.

The points list

Points (n) lists everything you have picked as x, y, z, heading. Click a row to select that point and fly to it (a point picked on Guarma switches the map to Guarma, and the other way round), press the bin icon to remove it, or Clear to remove them all. Points are kept in this browser, so they are still there when you come back.

With two or more points you get a table of them, ready for a list of spawn points or a route. Here the Valentine bank, then the Rhodes bank with a heading of 90 (facing west):

Lua
local points = {
    vector4(-308.42, 775.88, 115.5, 0.0),
    vector4(1292.31, -1301.54, 72.5, 90.0),
}

Tips

  • Zoom in before you click. At full map zoom one pixel is many metres.
  • Drag the heading from a little way out. The direction from the point to the pointer is what counts, not how far you drag.
  • To check which zones cover a whole area, use the zone layers on the Interactive Map instead.

Common mistakes

  • Ped spawns on the roof or in a tree. You copied Top instead of Ground. Switch to Ground, or type the height you measured in game.
  • Ped falls through the floor indoors. The heightmap knows nothing about interior floors. Stand in the room in game and use that z.
  • Zone check never matches. Compare against the signed hash (-1289136221, not 3005831075), and pass the right type number for the zone you want.

Limitations

  • z is only as good as an 8 m height grid. It is not a ground probe.
  • A point is only drawn on the map it was picked on, so Guarma points show while Guarma is open and mainland points while Mainland is open. The list and the Lua table always hold all of them.
  • The tool does not know about interiors, bridges or anything else stacked over the ground.