menu_bookDocumentation
GameResource Extensions - s&box Assets Documentation
GameResource Extensions
Extend GameResource types with additional data. Create extensions that attach to existing resources like models or sounds.
Creating a ResourceExtension
Create an extension class:
CSHARP
[GameResourceExtension( "model" )]
public class ClothingExtension : GameResourceExtension
{
public List<ClothingItem> Clothing { get; set; }
public int CostToUnlock { get; set; }
}Extending Assets
Attach to assets in the editor:
- Select a model in Asset Browser
- Look for the extension in the inspector
- Fill in the extension data
- Save the asset
Accessing a ResourceExtension
FindForResourceOrDefault
Get extension or create default:
CSHARP
var ext = ClothingExtension.FindForResourceOrDefault( model );FindForResource
Get extension only if it exists:
CSHARP
var ext = ClothingExtension.FindForResource( model );
if ( ext != null )
{
// Use extension data
}FindAllForResource
Get all extensions of a type:
CSHARP
var allExts = ClothingExtension.FindAllForResource( model );FindDefault
Get the default extension:
CSHARP
var default = ClothingExtension.FindDefault();Use Cases
- Clothing data for characters
- Weapon stats
- Sound variations
- Asset metadata
Was this helpful?