# Vectores (vec3)

> Uso de vectores LuaGLM (vec3 y vec2) en MY Multiplayer (MYMP) para posiciones, rotaciones y velocidades, creación de vectores y diferencias frente a MTA.

- **Plataforma**: MY Multiplayer (MYMP) — Lua 5.4
- **Secciones**: Documentación › Guías
- **Idioma**: Español
- **URL**: https://docs.mymp.gg/es/docs/vectors

**MY Multiplayer** (**MYMP**) utiliza vectores nativos (`vec3` y `vec2`, basados en LuaGLM) para representar coordenadas espaciales, rotaciones y velocidades en scripts Lua.

## Retorno de funciones: un solo vec3

Funciones espaciales como `getElementPosition`, `getElementRotation` y `getElementVelocity` devuelven **un solo valor `vec3`**, no tres números separados. Lee sus componentes mediante `.x`, `.y` y `.z`.

## Parámetros de entrada: números separados o vector

Donde la firma de una función pide `x, y, z`, acepta tanto tres números separados como un único `vec3` en su lugar. La misma regla se aplica a `x, y` y `vec2`.

## Creación de vectores

Usa los constructores globales `vec3(x, y, z)` y `vec2(x, y)` para crear vectores en cualquier script de cliente o servidor.

## Ejemplo práctico

```lua
local pos = getElementPosition(localPlayer)
print(pos.x, pos.y, pos.z)

setElementPosition(localPlayer, vec3(pos.x, pos.y, pos.z + 2))
setElementPosition(localPlayer, pos.x, pos.y, pos.z + 2)
```

## Si vienes de MTA

En Multi Theft Auto (MTA), `local x, y, z = getElementPosition(elemento)` devuelve tres números. En MYMP, `x` recibe el vector `vec3` entero, mientras que `y` y `z` quedan en `nil`.

Algunas funciones sí devuelven números sueltos; consulta el tipo de retorno en la [Referencia de scripting](https://docs.mymp.gg/es/llms.txt).
