---
title: "NumberSequence"
description: "The NumberSequence namespace — the engine's Luau API reference for NumberSequence."
section: "API Reference"
slug: "api-numbersequence"
canonical: "https://origozero.ai/docs/api-numbersequence"
updated: "2026-08-22T18:22:38.223407860+00:00"
tags: ["api", "reference"]
---

# NumberSequence

The `NumberSequence` namespace — 2 functions.

## globals/NumberSequence/deserialize {#globals-numbersequence-deserialize}

```lua
NumberSequence.deserialize(data: any?) -> NumberSequenceObj
```

Rebuild a NumberSequence from a `{kind = "NumberSequence", keypoints = {...}}` payload produced by `:serialize()`. Used by scene save/load.

**Parameters**

- `data` `any` _(optional)_ — The serialized payload.

**Returns** `NumberSequenceObj` — A fresh NumberSequenceObj with the deserialized keypoints.

```lua
local s = NumberSequence.deserialize(savedData)
```

## globals/NumberSequence/new {#globals-numbersequence-new}

```lua
NumberSequence.new(...: any?) -> NumberSequenceObj
```

Construct a NumberSequence from one of three signatures: a constant value, a two-point lerp from `v0` to `v1`, or a keypoints array of `{ time, value, envelope? }` records. Envelope defaults to 0 when omitted. Up to 64 keypoints; the first must anchor at `time = 0`, the last at `time = 1`. NaN / Inf in `time` / `value` / `envelope` is rejected.

**Parameters**

- `...` `any` _(optional)_ — `(v)`, `(v0, v1)`, or `({ {time, value, envelope?}, ... })`.

**Returns** `NumberSequenceObj` — A NumberSequenceObj with `:evaluate`, `:sample`, `:keypoints`, `:duration`, `:serialize`, `:destroy`.

```lua
local fade = NumberSequence.new(1.0)
local fadeOut = NumberSequence.new(1.0, 0.0)
local size = NumberSequence.new({{time=0,value=0.5,envelope=0.1},{time=0.5,value=1.5},{time=1,value=0}})
```
