# Sandbox.Resources.ResourceGenerator

Creates a resource from a json definition

- Kind: class
- Namespace: `Sandbox.Resources`
- Assembly: `Sandbox.Engine`
- Modifiers: abstract

## Properties

- [`CacheToDisk`](/api/Sandbox.Resources.ResourceGenerator/CacheToDisk): If true then the generation will create a real resource and store it on disk. Use this if creating the resource takes a while, or you won't be shipping the generator with the game, or if it relies on data that won't be available in the shipped game.

## Methods

- [`Create`](/api/Sandbox.Resources.ResourceGenerator/Create): Create a ResourceGenerator by name
- [`CreateResource`](/api/Sandbox.Resources.ResourceGenerator/CreateResource)
- [`Deserialize`](/api/Sandbox.Resources.ResourceGenerator/Deserialize): Copy properties from obj to us
- [`FindOrCreateObject`](/api/Sandbox.Resources.ResourceGenerator/FindOrCreateObject): Find or create the resource (blocking)
- [`FindOrCreateObjectAsync`](/api/Sandbox.Resources.ResourceGenerator/FindOrCreateObjectAsync): If we generated this before, then find the current cache'd value. If not, then generate a new one.
- [`GetHash`](/api/Sandbox.Resources.ResourceGenerator/GetHash): Returns a hash to be used when loading/saving. We use this to determine if the resource has changed. By default we serialize the generator to a json string and return the CRC64 of that value. You can override this in your generator if you need to make it faster, or ignore some stuff.
