Fast DL vs. Workshop; What one is better?

I finally have my own website thanks to a friend that owns webservers and I’m going to be setting up a server for real. Now I need to know what is better actually and why.

FastDL is faster. However, the workshop allows you to be more organised with your addons. I bzip my maps and put them on my webserver for FastDL and then do playermodels and gamemodes on workshop as you don’t have to worry about getting the latest files :slight_smile:

I’m not a server owner, but I google’d it and found why FastDL is better.

FastDL
1.FastDL supports .bz2 compression which is better the default compression.

2.There are no speed limits on FastDL, and using the Steam Workshop can be slower since Steam is already sending Data to clients.

3.If you wanted to download some content for the server and used workshop, the player would have to download the whole addon, but if you used FastDL, you don’t have to make them download the addon, just the required content.

4.If steam is down and your server isn’t, people will not be able to download content for your server.

Workshop
1.It’s easier to use, if you don’t want to do the work needed to get FastDL working, you should use workshop

If you choose to use FastDL, go herefor a tutorial on setting it up! That’s also my source for my answers, and there will be more reasons to use FastDL because I left out some reasons that I didn’t find important, Good luck with your server!

i’ve never enjoyed workshop, it doesn’t feel definite or safe (not that fastDL is MUCH better, but it is a bit better), workshop feels like I have no idea if my players are downloading my content, maybe it’s too big and workshop wont download them? or maybe it’s giving them some but not others? i don’t really have any idea what workshop is doing, whereas fastDL is either working or it isn’t, and as long as you set it up right it seems to be fairly straight forward

Thanks guys. I know how to set up FastDL, but always assumed Workshop was better as it always kept everything up to date. Now I know.

And by any chance does anyone have that auto .bz2 compressor? I saw it months back, downloaded it, then lost it. It compressed everything automatically as it should instead of having to do it manually to each file.

There’s a fair bit of mis-information here.

FastDL

Upsides

  • Supports .bz2
  • You control distribution of files
  • Typically more reliable under certain conditions

Downsides

  • Manually have to compress to .bz2 (not considering external tools)
  • Unless you set up a CDN system, users are going to be downloading from 1 location.
    – To build on this, many FastDLers don’t have a proper dedicated server and used shared hosting, which is typically capped at certain speeds.
  • Requires decent amount of bandwidth
  • At least one http request per file.
  • If the owner is tinkering with the files whilst a user downloads them, can end up with malformed and corrupted files
  • If the .bz2 files are missing and the raws are only available, it’ll take longer as it checks for both.
  • If people setting it up have no idea, files tend to go missing.
  • Want to edit a file to a new version? Going to have to be a rename. Someone’s already taken that name? Bad luck.

Workshop

Upsides

  • Uses LZMA for compression
  • Can compress files and folders into single packages. Content pack? Yep!
  • Uses Steam’s CDN (typically faster) for distribution
  • Users can ‘subscribe’ to grab the content
  • Old content can be overwritten. New map just came out? No need to rename it - clients that connect get the new edition!
  • Free!

Downsides

  • Any content packs on workshop must be public. No exception
  • If Steam’s CDN is down, your content is down
  • If users incorrectly specify their download location on Steam, they’ll download packs very slowly
  • Not quite as friendly for server hosters first time to get used to.

Neutral

  • A point raised above RE content packs and not wanting ‘all’ the content on your server. It’s possible to extract content from the workshop addons, then you can repack for your own.

If you’re running a *nix based server, you can use bzapper to compress everything for you automatically. Just make sure bzip2 is installed on the server.

I use FastDL for the reason that if you have a lot of content it is way faster than workshop. Plus, after the initial download users don’t have to spend time mounting the addons as they join the server, cause you know everyone hates long join times :slight_smile:

i use workshop for my content because downloading a single file then extracting it is a lot faster in most cases than requesting a loose file and decompressing it before starting the next file. but then again all my packs usually include is a few materials and sounds for my sweps i made

IMO fastdl is more convienient if you wanna add files on the go one at a time. Also WorkshopDL adds roughly a second of having to mount the addons when connecting. Which really doesn’t matter but it is a factor. Also your server will fail to download the workshop files if they are over 200mb which is annoying to work around. Lastly someone from the workshop could easily put and exploit then your server updates and now you have the exploit on your server.

This thread is more from the perspective of shipping addons to clients like content packs, not mounting addons on the server.

I have a problem with FastDL because the URL I had been using for it was shared with the server’s content space. Someone decided to constantly download from that IP, screwing with the server bandwidth and making it look like we were performing a DOS attack.

Haven’t used FastDL since. Workshop ended up being easier.

Just wanted to mention briefly that Workshop doesn’t support delta updates; users have to redownload everything when a content pack is updated. This has been a huge problem for GMod Tower as we have several gigabytes worth of content. There is an updated version of the Steam UGC/Workshop API which supports delta updates, but I think it’s pretty unlikely to ever be implemented in Garry’s Mod at this rate.

If you’re going to throw all of your server content on workshop, you should try to create modular packs to reduce the amount of data needed to be redownloaded. An example might be a models, materials, and sounds pack. However, perhaps to make downloads more infrequent, a component model might work better (cars pack, player models pack, etc.).

Pretty much a similar method to what I use, I have separate packs for frequently changed content and also for content that won’t change.

FastDL question, do I have to bz2 all the files? Or better yet, can all the files be bz2-ed, like say .png for some pointshop masks or chat emotes?

No and Yes.

It’s typically better to bz2 everything because the first thing FastDL does is search for a .bz2 edition of the file. This is going to be a second or so wasted because the web-server has to provide a 404 before the FastDL server then requests the standard file, however it is not a requirement.

If the file can be added to the download queue via resource.AddFile, then you can bz2 it no problem.

Also bzipping files makes them smaller so faster to download. So you should want to zip everything.

If anyone is interested, here’s a python script I created a while ago which recursively runs BZ2 compression on files within a directory and saves them elsewhere.

bzipping will always add an overhead to the file, this is so that the file can be recognised as a bzip2 file; this means there’s 2 scenarios where it is pointless to bzip.

  1. the file is smaller uncompressed than the bzip2 header size
  2. the file can’t be compressed any more, and bzipping it will just make it larger and take more time to unzip again.

How would I run that? I have installed python but when I double click it a cmd window flashes and that’s it :confused:

You don’t say. Next thing you’re gonna tell me is that I shouldn’t add ice to my ice since it’s already cold.