January 2022
Posted 2 years ago
Addon uploads have changed. Previously you had two options. Either fill in a github url and download your addon from that, or upload a zip.

In the new system you upload each file individually, crc'd, and each addon has a manifest which contains the url and crc of the files.

This has obvious benefits.. like only uploading and downloading changed files., and being able to upload much bigger addons. But beyond that it makes us a lot more agile around what we can do. We no longer have a bunch of assets in zip files, we have a huge single accessible filesystem with multiple variants of each file.

This is interesting to me. It's what we had in gmod with toybox before workshop came out. It enables a bunch of cool stuff with asset sharing, and versioning. But beyond that there are interesting things we could do by post processing all the uploaded files to create lower res versions, etc.

Broken Maps


Something it immediately fixed already. We had a recurring problem that maps were using our base materials and models, and we'd change one of them. So then the map would either have missing material errors or we'd block a door because the model got rotated or resized etc. 

That's not an issue now, because when uploading the map the creator also uploads the version of our assets that they're using (if they haven't already been uploaded). So when you download their map it's using all those assets locked in time.

If we never change that asset then end users don't download the historical version because they already have it on disk. If we change it then they can download the historical version and everything works.

Broken Games


Uploaded games also upload the base addon and all of its content (stylesheets etc). This means we can't break your addon by changing any of the underlying base addon code. It's all time locked in.

This cuts both ways. If we make a fix in the base addon, your game won't get that fix because it'll still be using the older base. Right now I think this is fine though - because your addon might be relying on the base operating in the wrong way, so by fixing it we'd be breaking it.