# Types

> The seven LSL value types.

:::caution[Stub]
This documentation page is a stub and is currently under development.
:::

The seven types, with the first line of each description from the [LSL definitions](/types/) and the examples from the wiki's types overview:

| Type | Example | Definition |
| --- | --- | --- |
| [`integer`](/types/integer/) | `42` | 32 bit integer value. |
| [`float`](/types/float/) | `3.14159` | 32 bit floating point value. |
| [`string`](/types/string/) | `"Hello, world!"` | Text data. |
| [`key`](/types/key/) | `"1fc26194-b2c1-e5e3-20e5-45cb3ae7f73e"` | A 128 bit unique identifier (UUID). |
| [`vector`](/types/vector/) | `<1.0, 2.0, 3.0>` | A vector is a data type that contains a set of three float values. |
| [`rotation`](/types/rotation/) | `<0.0, 0.0, 0.0, 1.0>` | Rotation type is one of several ways to represent an orientation in 3D. |
| [`list`](/types/list/) | `[42, 3.14159, "value"]` | A collection of other data types. |

From the wiki on pass-by-value: "LSL as a language uses pass‑by‑value for all types." and "Built in functions will never modify the variables used as parameters."

Typecasting is written `(type)`, for example `string message = "The result is:" + (string)result;` (from the [operators table](/fundamentals/operators/)).

## Reference

- [All types](/types/)
- [Operators](/fundamentals/operators/)
- [Errors](/fundamentals/errors/): "Lists may not contain lists"

*Quotations and examples are from the Second Life Wiki pages [Category:LSL Types](https://wiki.secondlife.com/wiki/Category:LSL_Types), [LSL Operators](https://wiki.secondlife.com/wiki/LSL_Operators), by Second Life Wiki contributors, under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/).*

---

From lsl.dev: https://lsl.dev/fundamentals/types/
