Downloading workshop item from C#
var clothing = await Cloud.Load<Clothing>( "URL/IDENT" ); The URL can be the full url to a workshop item ex. https://sbox.game/derrikcreates/yes_i_am_the_real_garry or it can be just the end, derrikcreates/yes_i_am_the_real_garry
You are not limited to clothing, any workshop item can be loaded this way you just need to provide the right T type and url for that type
Searching the workshop from C#
https://sbox.game/api/Sandbox.Package/FindAsync
ShadowBrain (on discord)
public async Task<Package> FindPackage( string modelName )
{
string searchterm = modelName;
string sortOrder = "sort:popular";
Log.Info( "searching for: " + $"{sortOrder} {searchterm} type:model" );
var q = await Package.FindAsync( $"{sortOrder} {searchterm} type:model" );
if ( q.Packages.Length > 0 )
{
return q.Packages.FirstOrDefault();
}
else
{
var split = modelName.Split( ' ' );
if ( split.Count() == 1 )
{
return null;
}
else
{
foreach ( var item in split )
{
Log.Info( "searching for: " + $"{sortOrder} {item} type:model" );
var q2 = await Package.FindAsync( $"{sortOrder} {item} type:model" );
if ( q2.Packages.Length > 0 )
{
return q2.Packages.FirstOrDefault();
}
}
return null;
}
}
}
var searchTerm = "name"
var result = await Package.FindAsync( $"sort:popular {searchTerm} type:clothing", ItemsToRequest, Items.Count );Sort Options
sort=popular
sort=quality
sort=trending
sort=created
sort=updated
sort=thumbsup
sort=bestrated
sort=hiddengem