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

# Replication Modes

### Overview

<mark style="color:blue;">Physics Movement Component</mark> provides multiple authority and replication workflows, allowing you to choose the model that best fits your gameplay and networking needs.

Each mode comes with different trade-offs between responsiveness, authority, and flexibility.

Use this page as a quick guide to decide which mode fits your project.

***

### Quick Comparison

#### <mark style="color:green;">Client Authoritative</mark> (Default)

#### <mark style="color:$warning;">Limitations & Performance Guidelines</mark>

The <mark style="color:blue;">Client Authoritative</mark> movement replication is a specialized system built into PMC to handle networking automatically. However, because it runs on Event Tick, it has specific hardware and scaling requirements:

* For optimal movement synchronization, a Minimum of <mark style="color:$warning;">32 FPS</mark> and a Maximum of <mark style="color:$success;">120 FPS</mark> is highly recommended.
* This mode is optimized for small-scale multiplayer sessions, <mark style="color:blue;">ideally between 2 to 6 players.</mark>
* <mark style="color:$warning;">CPU Overhead:</mark> Since movement logic is calculated every frame on the client, high player counts may lead to increased CPU usage and FPS drops.

#### <mark style="color:$warning;">Why use this mode?</mark>

<mark style="color:$warning;">You might ask:</mark> "If there are FPS and player limits, why should I use this mode?"

<mark style="color:$success;">The Answer:</mark> The primary purpose of PMC is to bridge the gaps in standard Chaos Physics, such as implementing robust ground check systems and generating directional angular velocity features that are not natively handled by the engine.

This replication system is a built-in bonus. If you don't own external plugins like Smooth Sync or similar tools, <mark style="color:blue;">PMC</mark> provides this out-of-the-box solution to make your physics-based mechanics "multiplayer-ready" instantly. It ensures your project is playable in multiplayer without requiring you to write a single line of replication logic.<br>

#### <mark style="color:$warning;">Critical Note</mark>

<mark style="color:$danger;">DO NOT USE</mark> "Fixed Frame Rate" settings. This will cause the physics simulation to behave inconsistently.

***

#### <mark style="color:orange;">Server Authoritative</mark>

<mark style="color:$warning;">Stronger control and validation:</mark>

* Movement simulated on the server
* Better cheat resistance
* Highly sensitive to latency
* Requires low ping for acceptable feel

<mark style="color:$warning;">Recommended for:</mark>

* Security-sensitive projects

***

#### <mark style="color:blue;">Custom Replication Mode</mark> (External Replication)

Full networking flexibility.

* <mark style="color:blue;">PMC</mark> handles movement simulation only
* Transform replication handled by external plugins or custom netcode (e.g. Smooth Sync)
* Avoids <mark style="color:blue;">PMC’s</mark> built-in replication paths

<mark style="color:$warning;">Recommended for:</mark>

* Smooth Sync or similar plugins
* Custom C++ networking solutions

***

### <mark style="color:$success;">Choosing the Right Mode</mark>

Use this simple guideline:

#### ✅ If you are using Smooth Sync or your own external replication / C++ networking solution

→ <mark style="color:blue;">**Use Custom Replication Mode**</mark>

This provides the best flexibility and performance for multiplayer scenarios.

***

#### ✅ If you do NOT have an external replication solution

→ <mark style="color:blue;">**Use Client Authoritative (Default)**</mark>

<mark style="color:blue;">Client Authoritative</mark> offers smooth, responsive gameplay and is more than sufficient for most projects.\
For many developers, this mode works perfectly out of the box.

***

#### ✅ If you need strict validation and security

→ <mark style="color:blue;">**Use Server Authoritative**</mark>

* **Physics simulation runs entirely on the server**
* Clients receive replicated movement results
* <mark style="color:$warning;">**No client-side prediction is performed**</mark>

<mark style="color:$warning;">Recommended only for</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">**low-latency environments**</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">where</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">**server authority is required**</mark><mark style="color:$warning;">.</mark>

***

There is no universally “best” replication mode.

Choose based on your networking setup, performance requirements, and gameplay goals.

Each mode is documented in detail on its own page.
