---
title: Why You Need a Server (and What “Authoritative” Means)
description: "If you’re coming from a client-only background (Unity, Unreal, web apps, etc.), it’s natural to ask: > *Why do I need a server at all? Can’t the game just do this itself?* For small prototypes, the answer is often “yes.”…"
url: "https://namazustudios.com/docs/fundamentals/why-you-need-a-server-and-what-authoritative-means/"
updated: "2026-08-13"
category: Fundamentals
---

# Why You Need a Server (and What “Authoritative” Means)

If you’re coming from a client-only background (Unity, Unreal, web apps, etc.), it’s natural to ask:

> *Why do I need a server at all? Can’t the game just do this itself?*

For small prototypes, the answer is often “yes.” For live games with progression, rewards, purchases, or leaderboards, the answer quickly becomes “no", and here’s why:

---

## The Core Problem: Trust

A game client runs on the player’s device. That means the player controls it.

They can:

- modify memory
- intercept or replay network calls
- fake events
- patch or replace client code

If the client is responsible for deciding:

- whether a mission was completed
- how many points were earned
- whether a purchase is valid
- whether a reward should be granted

…then those systems are not secure.

---

## What a Server Does

A server exists to act as an [authoritative](https://namazustudios.com/glossary/authoritative/) source of truth.

[authoritative](https://namazustudios.com/glossary/authoritative/) code:

- runs in an environment the player cannot modify
- validates what actually happened
- makes final decisions about permanent game state

In practice, this usually means:

| Action | Responsibility |
| --- | --- |
| Player input | Client |
| Rendering / UI | Client |
| Game rule validation | [authoritative](https://namazustudios.com/glossary/authoritative/) Code |
| Progression updates | [authoritative](https://namazustudios.com/glossary/authoritative/) Code |
| Rewards & inventory | [authoritative](https://namazustudios.com/glossary/authoritative/) Code |
| Leaderboards | [authoritative](https://namazustudios.com/glossary/authoritative/) Code |
| Purchases | [authoritative](https://namazustudios.com/glossary/authoritative/) Code |

The client **requests** changes. [authoritative](https://namazustudios.com/glossary/authoritative/) code **approves and applies** them.

---

## Where Does [authoritative](https://namazustudios.com/glossary/authoritative/) Code Run?

In many systems, [authoritative](https://namazustudios.com/glossary/authoritative/) code runs on your own game server. Elements fully supports a server to server model.

However, Elements also supports another option: Custom Elements.

---

## Do I Always Need My Own Server?

It is completely optional, and dependent on the architecture of your game.

Elements supports Custom Elements, which are your own server-side applications that run *inside Elements itself*.

A Custom [Element](https://namazustudios.com/glossary/element/):

- runs in a trusted, server-side environment
- can access Elements systems directly (users, inventory, progress, leaderboards, direct db access)
- executes [authoritative](https://namazustudios.com/glossary/authoritative/) logic
- cannot be modified by players

This means you have two valid deployment models:

1. External Game Server – your own backend [Service](https://namazustudios.com/glossary/service/) calls Elements APIs (still [authoritative](https://namazustudios.com/glossary/authoritative/)!)
2. Custom Elements – your [authoritative](https://namazustudios.com/glossary/authoritative/) code runs inside Elements

Many teams use both, especially when their teams are more familiar with modeling the game logic in their preferred game engine (for example, running Unity in headless mode).

---

## A Simple Mental Model

Think of Elements as both a platform and a runtime:

![](https://namazustudios.com/wp-content/uploads/2026/02/image.png)

That [authoritative](https://namazustudios.com/glossary/authoritative/) step may live:

- on your own server, or
- inside Elements via a Custom [Element](https://namazustudios.com/glossary/element/)

---

## Why Elements Assumes Authority

Elements manages high‑trust systems:

- digital goods and inventory
- reward issuance
- mission progression
- leaderboards
- scheduling and time‑based content

These systems require:

- protection against duplication
- safe retries (idempotency)
- consistent timekeeping
- validation of events

Those guarantees are only possible when changes are applied by [authoritative](https://namazustudios.com/glossary/authoritative/) code.

---

## How This Affects the [REST](https://namazustudios.com/glossary/rest/) of the Docs

When the docs say:

- “server-side”
- “[authoritative](https://namazustudios.com/glossary/authoritative/)”
- “safe to retry”
- “[Idempotent](https://namazustudios.com/glossary/idempotent/)”

They refer to code that runs outside the player’s control — either on your server or inside a Custom [Element](https://namazustudios.com/glossary/element/).

Understanding this mental model will make the [REST](https://namazustudios.com/glossary/rest/) of the documentation much easier to follow.
