Revision Difference
Loading_URL#511449
<cat>Play.Hosting</cat>⤶
The convar **sv_loadingurl** allows a server owner to define a webpage to show to players when joining the server.⤶
⤶
## Setting your server's loading URL ⤶
⤶
If you are setting the convar through the console then make sure to put quotes around the URL. Also a + should be added to the front. Your command should look something like this:⤶
⤶
```⤶
+sv_loadingurl "http://wiki.garrysmod.com/"⤶
```⤶
⤶
⤶
If you are placing this into your autoexec.cfg configuration file, be sure to remove the +, like so:⤶
⤶
```⤶
sv_loadingurl "http://wiki.garrysmod.com/"⤶
```⤶
⤶
⤶
If you want, you may also use %s or %m in your URL (most likely in a GET variable) to pass the steam id, and map name respectively. For example:⤶
⤶
```⤶
sv_loadingurl "http://wiki.garrysmod.com/?mapname=%m&steamid=%s"⤶
```⤶
⤶
⤶
These can be later retrieved with simple PHP code.⤶
⤶
## Custom loading pages ⤶
⤶
This section will not detail creating your page, and assumes you have already designed one.⤶
⤶
### Javascript functions ⤶
⤶
There are several Javascript functions which are called directly by Garry's Mod. To use these, simply create a function with that name in your page - it will be called when the event associated with it happens.⤶
⤶
⤶
```⤶
/*⤶
Called at the start, when the loading screen finishes loading all assets.⤶
⤶
serverName- Server's name.⤶
Convar: hostname⤶
For exmaple: "Garry's Mod Server"⤶
serverURL- URL for the loading screen. ⤶
Convar: sv_loadingurl⤶
For example: "http://mywebsite.com/myloadingscreen.html"⤶
mapName- The name of the map the server is playing. ⤶
For example: "cs_office"⤶
maxPlayers- Maximum number of players for the server.⤶
Convar: maxplayers⤶
steamID- 64-bit, numeric Steam community ID of the client joining. ⤶
For example: 76561198012345678⤶
gamemode- The gamemode the server is currently playing. ⤶
Convar: gamemode⤶
For example: "deathrun"⤶
* /⤶
function GameDetails( servername, serverurl, mapname, maxplayers, steamid, gamemode ) {}⤶
```⤶
⤶
⤶
⤶
```⤶
/*⤶
Called at the start⤶
⤶
total- Total number of files the client will have to download.⤶
* /⤶
function SetFilesTotal( total ) {}⤶
```⤶
⤶
⤶
⤶
```⤶
/*⤶
Called when the client starts downloading a file.⤶
⤶
fileName- The full path and name of the file the client is downloading.⤶
This path represents the resource's location rather than the actual file's location on the server.⤶
For example, the file "garrysmod/addons/myAddon/materials/models/bobsModels/car.mdl" will be:⤶
"materials/models/bobsModels/car.mdl"⤶
* /⤶
function DownloadingFile( fileName ) {}⤶
```⤶
⤶
⤶
⤶
```⤶
/*⤶
Called when the client's joining status changes.⤶
⤶
status- Current joining status.⤶
For example: "Sending client info..."⤶
* /⤶
function SetStatusChanged( status ) {}⤶
```⤶
⤶
⤶
⤶
```⤶
/*⤶
Called when the number of files remaining for the client to download changes.⤶
⤶
needed- Number of files left for the client to download.⤶
* /⤶
function SetFilesNeeded( needed ) {}⤶
```⤶
⤶
⤶
### PHP GET parameters ⤶
⤶
**%m** and **%s** will be replaced with the server's current map and the player's 64-bit steam community ID, respectively. This means you can grab them using PHP's $_GET superglobal.⤶
⤶
The map is a string, so you should have no trouble making use of that.⤶
However, the steam community ID is not the classic "shorthand" steam ID often seen in-game. A method of conversion (using PHP's bcmath & bcsub) is shown below.⤶
⤶
<!-- Method from http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/indexb59e.html -- please notify if this doesn't work -->⤶
⤶
```⤶
<?php⤶
$authserver = bcsub( $communityid, '76561197960265728' ) & 1;⤶
//Get the third number of the steamid⤶
$authid = ( bcsub($communityid, '76561197960265728') - $authserver ) / 2;⤶
//Concatenate the STEAM_ prefix and the first number, which is always 0, as well as colons with the other two numbers⤶
$steamid = "STEAM_0:$authserver:$authid";⤶
?>⤶
```⤶
⤶
⤶
<example>⤶
<description>If you would like to use a local file as a loading screen, for example during gamemode creation as a default loading screen, you can use the asset:// prefix. The example uses the default loading screen, but any html file can be used.</description>⤶
<code>sv_loadingurl "asset://garrysmod/html/loading.html"</code>⤶
⤶
</example>⤶
⤶
⤶
⤶
<example>⤶
<description><validate>Example does not work.</validate>If you would like to use a simple image as a loading screen, but don't have a webhost, you can use the following code as your `sv_loadingurl` value. Make sure to replace `URL-GOES-HERE` with the link to the image you would like to use. This makes use of [Data URIs](https://developer.mozilla.org/en-US/docs/data_URIs) for writing HTML for the URL.</description>⤶
<code>data:text/html,&lt;style&gt;html,body{padding:0;margin:0;background:#000}&lt;/style&gt;&lt;img src="URL-GOES-HERE" width="100%" height="100%"&gt;</code>⤶
⤶
</example>⤶
⤶
⤶
⤶
## Gmod-LSM.com ⤶
A free, online and easy-to-use loading screen maker, without having to code anything or rent a web server.⤶
[https://www.gmod-lsm.com](https://www.gmod-lsm.com)⤶
⤶
⤶
⤶
⤶
## Load Seed ⤶
An application skeleton for building a loading screen. You can use it to quickly get started building your design. Make sure to read the readme before getting started.⤶
https://github.com/glua/load-seed⤶
⤶
⤶
⤶