> 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/features-and-nodes/enablecompression-and-enforcerawserialization.md).

# 🔹 EnableCompression & EnforceRawSerialization

These options control how prediction data is serialized before being added to the network packet.

They allow developers to decide whether supported data types should use optimized serialization methods or be sent in their original raw format.

***

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

**EnableCompression** forces the system to use optimized serialization whenever the data type supports Unreal Engine's **NetSerialize** functionality.

When enabled, CMC PLUS attempts to serialize the value using its optimized network representation instead of using the default raw data format.

This can reduce unnecessary packet size and improve network efficiency.

***

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

**EnforceRawSerialization** forces the value to be serialized in its original format.

This option ignores compression or optimization methods and sends the data using its standard representation.

It is useful when exact raw data transmission is preferred or when a custom optimization method should not be applied.

***

### <mark style="color:$primary;">What is NetSerialize?</mark>

**NetSerialize** is Unreal Engine's custom network serialization system.

It allows a data type to define how it should be converted into a network-friendly format when being sent between client and server.

Instead of always sending the full memory representation of a value, NetSerialize can apply custom rules to reduce bandwidth usage while keeping the required information.

Many Unreal Engine types use NetSerialize internally to provide more efficient network communication.

***

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

* **EnableCompression** → Uses optimized NetSerialize-based serialization when available.
* **EnforceRawSerialization** → Sends the value in its original unoptimized format.

These options give developers control over the balance between network optimization and exact data representation.
