S&box Wiki

Precaching

Precaching

Precaching will probably change in the future with more stuff being automatically handled so you don't have to care as much.

Precaching loads all the required assets for your game before the player loads in. By precaching properly you can avoid the engine trying to load assets in the middle of the game which causes stuttering.

Ideally everything in your game should be precached automatically for you, but in some cases that might not be possible right now.

Automatic Precaching

Whenever a resource is used on the server e.g a model is set, material loaded, sound played, it is added to the precache list. This works well for anything spawned in by the map, but anything after that with a player joined it will cause a cache miss and need to be loaded on the players.

A good way to make sure resources get precached is to use their Load method and store a static reference e.g:

public partial class Ball : ModelEntity { static readonly Model Model = Model.Load( "models/golf_ball.vmdl" ); public override void Spawn() { SetModel( Model ); } }

If you are using a Material or Texture, you should approach it the same way.

Manual Precaching

You can manually precache with Precache.Add( string ), currently this should be done for sounds and particles. Do this in your Game constructor or something similar serverside.

Precache.Add( "particles/gameplay/ball_circle/ball_circle.vpcf" ); Precache.Add( "sounds/minigolf.sink_into_cup.vsnd" );

Special Pages


Wikis

?

Render Time: 50ms

DB GetPage 40
Generate Html 1
SaveChanges (1) 6
Render Body 0
Render Sidebar 1