# Vec
> A lightweight immutable 3D position record for use in cutscene definitions.
`gg.lode.lecternapi.api.cutscene.Vec`
---
## Signature
```java
public record Vec(double x, double y, double z)
```
---
## Overview
Vec provides a simple way to represent positions without importing Bukkit's Vector class. It's used primarily in the Cutscene API for camera waypoints.
---
## Fields
| Field | Type | Description |
|---|---|---|
| `x` | `double` | X coordinate. |
| `y` | `double` | Y coordinate. |
| `z` | `double` | Z coordinate. |
---
## Static Methods
### of
```java
public static Vec of(double x, double y, double z)
```
Creates a new Vec instance.
| Parameter | Type | Description |
|---|---|---|
| `x` | `double` | X coordinate. |
| `y` | `double` | Y coordinate. |
| `z` | `double` | Z coordinate. |
**Returns:** A new `Vec` instance.
---
## Usage
```java
// In a camera path
.cameraPath(path -> path
.waypoint(Vec.of(100, 70, 200), 0, -10, 0, 0)
.waypoint(Vec.of(150, 80, 250), 45, -5, 0, 60))
// From a Bukkit Location
Location loc = player.getLocation();
Vec position = Vec.of(loc.getX(), loc.getY(), loc.getZ());
```
---
## Related Pages
- [[CameraWaypoint]] — Uses Vec for position
- [[Cutscene]] — Parent API