# Script serialization

> Details of how Unity transforms your scripted data structures and object states into a serialized format for storage or reconstruction later on, and how this affects your application performance.

**Serialization** is the automatic process of transforming data structures or GameObject states into a format that Unity can store and reconstruct later.

How you organize data in your Unity project affects how Unity serializes that data, which can have a significant impact on the performance of your project. This page outlines serialization in Unity and how to optimize your project for it.

| **Topic**                                                                                                                                      | **Description**                                                            |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [Serialization rules](/engine/6000.0/manual/programming-environment/code-reload-serialization/script-serialization/rules.md)                   | Conditions that determine whether fields in your scripts are serialized.   |
| [Custom serialization](/engine/6000.0/manual/programming-environment/code-reload-serialization/script-serialization/custom-serialization.md)   | How to serialize additional items not supported by Unity's serializer.     |
| [How Unity uses serialization](/engine/6000.0/manual/programming-environment/code-reload-serialization/script-serialization/how-unity-uses.md) | More details about how serialization works in Unity.                       |
| [JSON Serialization](/engine/6000.0/manual/programming-environment/code-reload-serialization/script-serialization/json-serialization.md)       | Convert Unity objects to and from JSON format using the JsonUtility class. |
| [Serialization best practices](/engine/6000.0/manual/programming-environment/code-reload-serialization/script-serialization/best-practices.md) | Best practices for serialization.                                          |

## Additional resources

* [Script compilation](/engine/6000.0/manual/programming-environment/script-compilation.md)
* [Scripting back ends](/engine/6000.0/manual/programming-environment/scripting-backends.md)
* [Code reload in the Editor](/engine/6000.0/manual/programming-environment/code-reload-serialization/code-reloading-editor.md)
