> For the complete documentation index, see [llms.txt](https://runemate.gitbook.io/runemate-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://runemate.gitbook.io/runemate-documentation/api/concepts.md).

# Concepts

### Orientations

Orientations in OSRS are typically represented in JAU between 0-2048 where zero is facing directly south and each increment represents `(1 / 2048f) * 360 = 0.17578125` degrees of clockwise rotation.

### Interface IDs

In the game engine InterfaceComponents (often called Widgets) are structured in a 2-dimensional array. The ID of each Widget is a function of where it exists in that structure such that:

```
componentId = containerIndex << 16 | componentIndex
```

And the inverse:

```
InterfaceComponent ic = Interfaces.getAt(componentId >> 16, componentId & 0xFFFF)
```
