# Vector3

Vector3 handles inputs that need three values. It's not a hard concept once you get passed that.

Vector3 has three values, an X ordinate, Y ordinate and Z ordinate. It represents a position in 3D space, just as a coordinate plane that you use in school, and can be in anything that needs to have a set of three values in order to function. (For example an object position, size, et cetera).

All [[Property|properties] are read-only. However, they can be changed via scripts.

Property Type Description
`x` number the x-coordinate
`y` number the y-coordinate
`z` number the z-coordinate
`unit` Vector3 a normalized copy of the vector
`magnitude` number the length of the vector

## Vector3

Vector3 is three values. An X (Horizontal), a Y (Vertical), and a Z (Depth). Learning Vector3 is the first step to learning how to move a brick and/or a character.

Example:

A brick is on the position line of 0,10,0. It has three vectors (x=0, y=10, z=0). Now let's convert it to Vector3.

```local pos = Vector3.new(0,10,0)
```

You don't need to put it in a variable, it is just that a variable is much easier to use. I will teach you about "Vector3.new" later on. You see the term "Vector3.new", then 3 numbers seperated by commas inside two parentheses. The "0" is the x vector, the "10" is the y vector, and the other "0" is the z vector (Vector3.new(x, y, z).

### Creating New Vectors

So now you want to teleport bricks? Here, we'll talk about "Vector3.new". When changing an object's position, you either use CFrame or "Vector3.new".

```local brick = workspace.Part
brick.Position = Vector3.new(0,10,0) --Sets the part's x, y, and z coordinates.
```

In that example, we have Vector3.new(0,10,0), where X=0, Y=10, and Z=0.