# How to use custom versioning

**URL:** <https://forums.unrealengine.com/t/how-to-use-custom-versioning/300271>\
**Category:** Asset Creation\
**Tags:** Versioning, serialization, unreal-engine, question\
**Created:** [December 1, 2014, 5:44pm UTC](https://forums.unrealengine.com/t/how-to-use-custom-versioning/300271 "2014-12-01T17:44:18Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![Unrea19\_BHVR](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Unrea19\_BHVR](https://forums.unrealengine.com/u/Unrea19_BHVR)\
**Post date:** [January 21, 2015, 5:03pm UTC](https://forums.unrealengine.com/t/how-to-use-custom-versioning/300271/2 "2015-01-21T17:03:14Z")

</div>

Paper2D seems to contain a usable example.

Your explanation sounds correct, except for where to perform the upgrade. In Paper2D, upgrade code is run in **PostLoad** , after querying the custom version:

```
void UPaperFlipbookComponent::PostLoad()
{
	Super::PostLoad();

	const int32 PaperVer = GetLinkerCustomVersion(FPaperCustomVersion::GUID);

	if (PaperVer < FPaperCustomVersion::ConvertPaperFlipbookComponentToBeMeshComponent)
	{
		if (Material_DEPRECATED != nullptr)
		{
			SetMaterial(0, Material_DEPRECATED);
		}
	}
}

```

---

_[View the full topic](https://forums.unrealengine.com/t/how-to-use-custom-versioning/300271)._
