Coordinates

Overview

There are several coordinate systems in ATLAS. This document covers them and how to work with them.

../_images/ATLAS_Coordinates.png

Editor

These are the coordinates that you are used to from ARK. While constructing a level in the editor, or previewing a single level in PIE (without the server grid), the transform of any objects and the camera location are in this coordinate space. It has an absolute root of 0,0,0 at the center of the world.

Local

On an ATLAS server, grouped sub-levels are transformed together as part of an “Island Instance”. These islands can be arbitrary translated and rotated, and multiple copies can be made. The resulting coordinates are transformed into the server’s local coordinate space, which has a “local” root of 0,0,0 at the center of the server world. Islands and their coordinates are offset away from the origin, and the EDITOR coordinate values no longer make sense. EDITOR coordinates such as the location of points-of-interest and other objects must be transformed into a server’s LOCAL coordinates in order to work with game commands such as setplayerpos X Y Z.

Global

An ATLAS server grid has an even larger coordinate system which is GLOBAL. Every position in the world can be specified as an absolute and unique coordinate value across the entire grid of servers (however large it may be). The origin is rooted at the top left of the server grid with a value of 0,0,0 and wraps around the edge of the map, meaning there are no negative values. GLOBAL coordinates are not rotated differently from LOCAL values, but a different translation on X and Y axes must be applied in order to resolve them. setplayerpos does not currently work with GLOBAL coordinates.

Transforming Coordinates

Editor to Local

At the time of this writing, this is the most useful transform because there is not a command to instantly travel to GLOBAL coordinates. In order to transform a set of coordinates from EDITOR to LOCAL, the following information must be known from the server grid .JSON file: additionalTranslationX additionalTranslationY additionalRotationYaw For any given Island Instance, these values can be found in any of the sub-levels used by that instance. To find them, look for the named Island Instances in the server grid file at the bottom of all the sub-levels for each grid. Note that the same Island Instance can be used multiple times and in multiple server grids, so you should use the “id” value of the named Island Instance in order to find its sub-levels, above.

Island Instance Definition:

../_images/ATLAS_IslandInstanceDefinition.png

Sub-Level Definition:

../_images/ATLAS_SublevelDefinition.png