Server Downloads

We plan to have a gamemode contest some time soon. So I’ve got a list of things I want to get ready before then.

One of those things is to do with how we get files from servers. When I switched over to Steampipe I lowered the downloads table from ~8000+ entries to ~4000. What this means is that when you join a server they can only make you download 4,000 files now. Which to any sane person would seem more than enough. Who wants to force their clients to download more than 4,000 files when joining their server?

It’s a problem that has long plagued joining a Garry’s Mod server. Downloading thousands of files is not fun. But you would not believe the amount of emails I received about it. They can’t possibly run their gamemode any longer without being able to fastdl 6,000 files to the clients! It is impossible!

So now, this:

Server owners can specify addons that their servers need. These addons are downloaded from the workshop. This is much faster than the old way. Here’s a list of stuff:

  • Current Gamemode and Current Map is automatically added to the download list
  • Can use resource.AddWorkshop to add other addons
  • The old way isn’t going away – this is offered as a better alternative
  • Addons aren’t subscribed to – and are only mounted when the server needs them
  • Addons aren’t downloaded every time you join the server
  • Addons are updated when the workshop version is updated
  • We added a special tag for server owners to add their content

One other thing about Workshop while we’re on it. Every time I talk about Workshop someone mentions that the license means that Valve owns all of your stuff and so they won’t upload any of their addons to it. This all started with Wiremod. They won’t upload to it because they say the GPL license is incompatible with Workshop. Well duh – GPL license is incompatible with everything. It’s an awful viral license. The Workshop license gives Valve the proper permissions to distribute your files – that’s what it is for. It has to cover a huge range of subjects so it’s as over-reaching as possible. No-one really cares about these licenses. Valve is just covering itself here. It’s standard stuff. Do you really think that Valve is going to take your addon and turn it into a game and sell it? Is that really what you’re worried about? Valve are good guys. Just put your stuff on Workshop and stop being a fucking arm chair GPL lawyer baby.

If you’re a server owner and you’re not using the workshop to do stuff yet – take a look at this. It will show you how to set up a server that:

  • Connects to Steamworks
  • Downloads a collection of addons, gamemodes or maps
  • Mounts those files
  • Runs the gamemode
  • Starts one of the downloaded maps
  • ALL WITH NO MANUALLY DOWNLOADING AND INSTALLING OF ANYTHING

37 thoughts on “Server Downloads

  1. Only thing about this though, and it may just be me, but I can’t get Source SDK working since steampipe.

  2. Nice job! I welcome this change because smooth automatic server downloads are essential for variety in multiplayer.

    Why is the old system slower though? Isn’t it possible to organize the files in a way that allows for equal download speeds?

    Love how you keep improving the game since years by the way.

    1. The older system downloads thousands of files sequentially via HTTP. It’s always going to be quicker to download one file from Steam’s CDN than thousands from a random HTTP server someone’s hosting.

      Not to mention the single huge VPK will compress better than a thousand files compressed individually.

  3. Amazing, I always remember joining a spacebuild server and waiting 30 minutes to join, just for my game to crash right when I joined.

  4. What would be the best way to distribute only the client-side code via Workshop? (for those of us that want to keep our gamemodes private)

    Currently, it’s easy enough to just not AddCSLuaFile server-side Lua files, but manually separating out all of the client-side files seems like unnecessary tedium.

  5. And to add to this Lua code? I added it to the C:srcdsgarrysmodluaautorun file in which he created under the name workshop.lua and inserted code resource.AddWorkshop(“157450041”). After logging in to my server DarkRP generates this error here:

    [ERROR] lua / autorun / workshopaddons.lua:7: attempt to call field ‘AddWorkshop’ (a nil value)

    1. unknown – lua / autorun / workshopaddons.lua:7

    So what to do? Server set up using SteamCMD.

  6. Addons aren’t subscribed to – and are only mounted when the server needs them
    Addons aren’t downloaded every time you join the server
    Addons are updated when the workshop version is updated

    //I don’t like the Gmod. Not at all. But I’ve to say that the work done is wonderful. Congrats!//

  7. What if I wanted to mount an addon and modify some of the files, prehaps to make a gun only primary fire or something. How would I go about that? Would I install the plugin in my addons and customize it? Would that customization apply to the clients?

  8. Standing on the back of others work. No changes in the approach of the one hit wonder known as Garry.

    Love ya man! Keep up the Garry show, I enjoy watching it.

  9. every time i join a server, i have to download every addon from the workshop even if i already own the latest version. i have to wait on average 30 minutes to join a server running only addons that i already have. i basically am rendered unable to play multiplayer by this. please fix it as soon as you can because i love to play online but its 28 minutes faster to go singleplayer.

  10. Guys can someone help me my physgun doesent work when I pick up an object my screen becomes black but I can see my health and weapons

    HELP!!!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s