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

# Prediction Simulation

Until this point, we have explained how prediction packets are created, how custom data is added, and how the data structure is configured.

However, creating and sending prediction data is only one part of the system.

The next important step is defining how that received data should affect the movement simulation.

This is one of the most important concepts in network prediction.

***

### <mark style="color:$primary;">Understanding Prediction Simulation</mark>

In a traditional multiplayer movement system, the main purpose of prediction is to keep the client and server movement states synchronized.

When the client and server have different results, the system performs corrections to bring them back into the same state.

This is the basic principle behind network prediction.

However, many projects encounter problems when they do not properly use Unreal Engine's Character Movement Component prediction workflow and instead attempt to control movement through traditional RPC-based methods.

While RPC-based movement control can work in simple cases, it becomes less reliable as network conditions become worse.

With higher latency:

* Client and server movement states can become inconsistent.
* More corrections may occur.
* Movement can feel less responsive.
* The desired smooth gameplay experience becomes harder to achieve.

***

### <mark style="color:$primary;">Why Simulation Matters</mark>

Sending custom prediction data alone is not enough.

The system also needs to know how that data should influence the local movement simulation.

Otherwise, even with correctly transferred data, the client may still simulate different movement results from the server, causing unnecessary corrections and loss of smoothness.

This is where **CMC PLUS** becomes important.

CMC PLUS handles the difficult part of integrating custom prediction data into the Character Movement workflow, allowing developers to focus on defining how their movement systems should behave.

***

### <mark style="color:$primary;">Creating Custom Movement Simulations</mark>

The main principle is simple:

You define custom movement states inside the **CaptureNetwork** system and use those values to control your simulation behavior.

For example, imagine creating different movement simulations such as:

* Walking
* Running
* Sprinting
* Sliding
* Custom movement modes

To synchronize these states, you can create a custom prediction value inside the **CaptureNetwork** layer.

For example:

```
Movement State
(Boolean / Byte / Enum)
```

The purpose of this value is not only to send information across the network.

The purpose is to convert received prediction data into the correct movement behavior on both client and server sides.

This keeps both simulations following the same rules.

***

### <mark style="color:$primary;">The Role of CMC PLUS</mark>

Normally, creating a custom network prediction system in Unreal Engine requires a deep understanding of the Character Movement Component pipeline and often requires a large amount of C++ implementation.

CMC PLUS simplifies this workflow by providing the required structure for managing:

* Custom prediction data
* Serialization
* Network state handling
* Movement simulation logic

Instead of rebuilding the entire prediction system, developers can extend Unreal Engine's existing CMC architecture through a more organized workflow.

***

### <mark style="color:$primary;">Learning Curve</mark>

This topic may feel complex at first, especially for developers who are new to network prediction.

However, once the basic principles are understood, the workflow becomes much easier:

1. Define the data you need to predict.
2. Capture it through the Network State system.
3. Send it through the prediction packet.
4. Use the received data to drive the movement simulation.

Understanding this process is the key to creating smooth and reliable multiplayer movement systems.

***

### <mark style="color:$success;">Summary</mark>

Prediction Simulation is the bridge between network data and actual movement behavior.

The purpose of CMC PLUS is not only to send custom values over the network, but also to provide a structured way to use those values inside the movement simulation process.

By correctly defining how prediction data affects movement, developers can create custom movement systems that remain synchronized between client and server while maintaining smooth gameplay.
