Uploading the files
1. Log into the control panel.
2. If you haven't or don't know how to upload addons to your server, please check out this guide: https://www.xenonservers.com/clients/knowledgebase.php?action=displayarticle&id=124
3. Connect to the FTP server. If you don't know how to do this, please check out this guide: https://www.xenonservers.com/clients/knowledgebase.php?action=displayarticle&id=80
4. Make sure you have a copy of the addon on your computer to make the following steps easier.
5. Check inside the addon's folder of the addon you're trying to upload. You're looking for the following folders: lua, maps, particles, resource, materials, models, scenes, sound, fonts.
6. If they exist, upload and merge them to your server's /garrysmod folder.
Let's say you're wanting to upload an addon called myaddon, and inside of the myaddon folder, it has the following folders: models, materials.
You would upload the myaddon folder to your server's /garrysmod/addons folder first and foremost. Afterwards, you would upload the /myaddon/models and /myaddon/materials folders to your server's /garrysmod folder. If prompted, you will choose to merge the folders with the existing models, and materials folders respectively.
Creating the Lua script
1. To create the Lua script, you will need a text-editor such as Notepad. We recommend using Notepad++ to create Lua scripts, but you can use whichever text-editor you prefer.
2. Open your preferred text-editor, and create a new blank document if you don't already have a FastDL Lua script. Call this document FastDL.lua and save it anywhere on your computer.
3. Open the addon folder on your computer that you're trying to upload to your server. In our earlier example, we would open the "myaddon" folder.
4. Check for the following folders: maps, particles, resource, materials, models, scenes, sound, fonts
NOTE: We're not checking the lua folder with this step. We only need to upload lua files to the /garrymod/lua folder, we don't need to include them in our FastDL.lua script.
5. If any of those folders exist, open them. Check for the names of the files inside of them. Create a list in a separate Notepad document with the names of the files in your addon.
6. In your Lua script, add the following line of code for each file: resource.AddFile("garrysmod/path/to/file.ext")
7. Save the Lua script to your computer.
8. Upload the FastDL.lua script to your server's /garrysmod/lua/autorun/server folder.
Let's go back to our original example, where we're trying to upload the myaddon addon to our server. Inside the myaddon folder, it has the following folders: models, and materials
Let's also assume we've created a new document called FastDL.lua and saved it to our Desktop. First, we're going to open the myaddon/models folder. Inside of that folder, we see the following files: mymodel.mdl, mymodel.vtx, mymodel.vvd, and mymodel.phy. Next, we're going to open the myaddon/materials folder. Inside of that folder, we see the following files: mymodel.vtf, and mymodel.vmt.
This means our list of files will look like this:
Inside of our blank FastDL.lua script, we'll add the following lines of code:
We will finally save that Lua script, and then upload it to our server's /garrymod/lua/autorun/server folder. Finally, we restart the server, and FastDL should be working.
IMPORTANT THINGS TO REMEMBER
1. This needs to be done for every single included with the file. Otherwise, you will see giant ERROR signs when a player tries to use the custom content since it's not being downloaded to your game.
2. There can sometimes be folders inside of your addon's models folder. You *must* keep the folder structure for this to work. For example, in the /addons/myaddon/models folder, there could be a folder called "mymodel" that has the files inside of it. You'd follow the same exact steps, and change the Lua script to reflect the appropriate location.
So, instead of resource.AddFile("garrysmod/models/mymodel.mdl"), it would be resource.AddFile("garrysmod/models/mymodel/mymodel.mdl")
3. We recommend that you use resource.AddFile instead of a recursive function such as AddDir. AddDir is less reliable and sometimes files are missed, so unless you're proficient at Lua, we would recommend sticking with resource.AddFile().
4. Our support is not able to provide Lua scripting assistance. We're not able to diagnose, fix, or create FastDL scripts for you, unfortunately. If you're having issues with your FastDL script, you can check our forums and see if a fellow community member is able to help you.