# Space

A space is a String which defines which coordinate system is used for directions, currently only used in Add Velocity (Entity Action Type).

• `world`: The axes are global: `x` goes from west (negative) to east (positive), `y` from bottom to top, and `z` from north to south.
• `local`: The axes are local to the entity: `x` goes towards its left side and is always horizontal, `y` is pointing towards the top of the entity's head, and `z` points in the direction the entity is looking.
• `local_horizontal`: Same as `local` except it considers the vertical length of the direction the entity is looking to be 0. Thus `z` is projected (flattened out) onto the horizontal plane, making it shorter. `x` and `y` also become shorter by the same amount, and `y` is always pointing up. The axes shrink as the direction the entity is looking diverges from being horizontal, so, if the entity is looking straight up or straight down, the axes will have a length of 0, akin to forcing `x`, `y`, and `z` to be 0.
• `local_horizontal_normalized`: Same as `local_horizontal` but the axes are normalized (brought back to their previous length of 1) if they're of non-zero length.
• `velocity`: The axes are local to the entity's velocity in a way similar to `local`. If the velocity is purely vertical, the way the entity is pointing is used to determine the direction of `x` and `y` instead of the velocity. The axes scale based on how fast the entity is moving, so if it's immobile, the axes will have a length of 0, akin to forcing `x`, `y`, and `z` to be 0.
• `velocity_normalized`: Same as `velocity`, however the axes are normalized, and thus don't depend on the speed of the entity as long as it's moving.
• `velocity_horizontal`: Same as `velocity`, however the upwards velocity is considered to be 0.
• `velocity_horizontal_normalized`: Same as `velocity_horizontal`, however the axes are normalized. 