> For the complete documentation index, see [llms.txt](https://fish-networking.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/understanding-replicatestate.md).

# Understanding ReplicateState

{% hint style="info" %}
If you need a refresher on what each state means see our [API](https://fish-networking.com/FishNet/api/api/FishNet.Object.ReplicateState.html) or simply navigate to the ReplicateState enum in your code editor.
{% endhint %}

Each state is a flag value; a replicate state may contain multiple flags. There are numerous extensions you may use to check if a state contains certain values.

{% hint style="success" %}
You can view all built-in state extensions within the ReplicateState file.
{% endhint %}

## Invalid

An invalid ReplicateState should never occur. This would imply internally Fish-Networking failed to properly set the state.

## Ticked

Server and clients use this flag. This flag will be set if the data tick has run outside a reconcile, such as from user code within OnTick . Ticked can exist during a replay/reconcile, but only if the data had first run outside the replay/reconcile.

## Replayed

Only clients will use this flag. The replayed flag is set if data is being run during a reconcile.

{% hint style="info" %}
The server is always considered right and never has to correct data, so it never reconciles or replays inputs
{% endhint %}

## Created

Server and client use this flag. A created flag indicates that the data was created by controller, such as owner or the server if no owner. The created flag will not be present if the controller has not sent updates, such as if they are not taking any action.

## State examples

Below are examples of some possible states and what they mean.

```csharp
// You will see this value if the data is being replayed, it previously ran outside the
// reconcile, and data is created by controller.
state = (ReplicateState.Replayed | ReplicateState.Ticked | ReplicateState.Created);
// When the state is only Replayed then the data is not Created, and the tick on data
// has not occurred outside the reconcile yet. This is what we often refer to as a
// future state.
state = ReplicateState.Replayed;
// When a state is Ticked only it indicates that the data is being run outside a
// reconcile, and that the controller has not sent data for this particular tick.
state = ReplicateState.Ticked;
```

{% hint style="success" %}
For more possible flag examples see the state extensions (the ReplicateState file).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://fish-networking.gitbook.io/docs/guides/features/prediction/creating-code/understanding-replicatestate.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
