s&box
RustCounter-Strike 2s&boxDeadlock
Wiki
Get s&box on Steam
Browse
OverviewGetting StartedCreating GamesEngine & ToolsDocumentationCommunity GamesResources
s&boxDocumentationAssetsResourcesCloud Assets
SOURCE 2 · C#
Build and play games with s&box.

Facepunch's game engine and creation platform — make games in C#, or jump straight into community games.

Get s&box on Steam

s&box Wiki

  • Overview
  • Getting Started
  • Creating Games
  • Engine & Tools
  • Documentation
  • Community Games
  • Resources

Tools & Community

  • Getting Started
  • Creating Games
  • Engine & Tools
  • Resources

Platforms

  • RustBattle
  • CSBattle
  • Rust Game Wiki
  • CS2 Skins Wiki
  • Deadlock Wiki

About

  • Official Site
  • Developer Wiki
  • GitHub
  • Get on Steam
NOT AFFILIATED WITH FACEPUNCH STUDIOS · © 2026 s&box Wiki (community)
Docs/Assets
Assets

Cloud Assets

There is a large selection of Assets (Textures, Models, Sounds, etc) available to use on sbox.game, and you can use them without needing to think about downloading the files/mounting the content/etc.

The Cloud Browser allows you to instantly drag any Asset directly into your scene to be used in your game right away. It will download all necessary assets behind-the-scenes and cache them so you don't need to worry about downloading them each time. This is the quickest and easiest way to reference Cloud Assets

If you expose your variables as Properties on a Component or GameResource, you can use the Cloud Browser to reference an Asset and it will be treated just as a local Asset would.

public Model MyModel { get; set; } // Can reference a Local Model OR a Cloud Model

If you know the ident/url of a cloud asset, you can use the Cloud.* functions to directly reference them.

MyModel = Cloud.Model( "facepunch.w_usp" ); // Dot notation
MyModel = Cloud.Model( "facepunch/w_usp" ); // Slash notation
MyModel = Cloud.Model( "https://sbox.game/facepunch/w_usp" ); // The direct URL to the Asset

These assets are downloaded during code compilation, so everything is treated like a local model behind the scenes. These assets will be shipped as part of your package, meaning if a model is changed later on, it won't update until you re-publish your package.

Sometimes you might need to download and mount certain resources from sbox.game at runtime. Maybe you're making a GMod style game with spawnable props, or maybe you're procedurally generating something.

static async Task<Model> DownloadModel( string packageIdent )
{
  var package = await Package.Fetch( packageIdent, false );
  if( package == null || package.Revision == null )
  {
    // Package not found
    return null;
  }
  // If the package was found, mount it (download the content)
  await package.MountAsync();
  
  // Get the path to the primary asset (vmdl for Model, vsnd for Sound, etc.)
  var primaryAsset = package.GetMeta( "PrimaryAsset", "" );
  return Model.Load( primaryAsset );
}

Source: Facepunch/sbox-docs (CC-BY-4.0) · updated 2024-12-17. Read it rendered on the official docs.

More in Assets

Assets
Binary Serialization
Citizen Characters
Clothing
Custom Assets
File System
First Time Setup
First-Person Weapons
← All documentation

Community wiki — not affiliated with Facepunch Studios. For the latest and most authoritative information, see the official developer wiki.