I Have Some FastDL Questions

Hi, so I recently got a webserver with GoDaddy for FastDL.

Right now, I’m trying to figure out how to make the directory. My site (which also has phpbb on it) is being made right now at http://www.codeomega.org. I want to make my fastdl url http://www.codeomega.org/garrysmod or something, but I’m clueless how to do this. I tried putting my garrysmod folder in a public_html folder in the root, but I still got nothing.

I also expect to have plenty of other problems (this IS fastDL, and of course my first time setting one up ever), so I’m likely to come back for more help after I figure out my first problem.

So please toss some help my way.

EDIT: BTW, it’s working now.

Ill try my best to make a good tutorial, remember to check out the wiki page as well

Open your FTP client and create a folder named garrysmod in the root directory of your web server (public_html). Make sure you recursively chmod the garrysmod directory so its world accessible.

Next you will need to copy over the following folders:

cache
maps
materials
models
resources
sound

Technically the only folders needed are the maps and cache (those automatically get downloaded) but any addons, gamemodes or files that you want clients to download (Resource.addfile) must be added to the FastDL server as well.

Enabling sv_downloadurl on the game server

To enable sv_downloadurl add the following to your server.cfg

**
net_maxfilesize 100 - May be locked at 64 anyway, but it wont harm anything changing it

sv_allowupload 0 - If this is off sprays may not work, this should not affect downloads from the FastDL server… but could open up the possibility to any exploits.

sv_allowdownload 0

sv_downloadurl "http://yoursite.com/garrysmod


/

** Adding addons to the FastDL Server **

Adding addon files to the FastDL server is a bit different that adding them to the game server, addon folders on the game server are emulated, meaning its easy to add and remove them, otherwise each time you wanted to add content you would have to drop it in your garrysmod root folder and after a while things could get pretty messy.

When you put the addon files on the FastDL server they will need to taken out of addon format, it’s pretty simple just move the NEEDED folders from the addon such as the models, materials, sounds into the corresponding folder on the web server (remember the folders from above).

** You do NOT need to upload the lua folder, any lua that gets sent to the client is sent though the lua cache file**

Here’s an example for wire core addon.

I only want to copy over the models and materials because wiremod sends some sounds, and a few models to the clients when they join, I would move the following folders.

Local Server
garrysmod/addons/wire/


models

garrysmod/addons/wire/


materials

garrysmod/addons/wire/


sound

FastDL Server

garrysmod/


models

garrysmod/


materials

garrysmod/


sound

** Sync the lua cache! **

The lua cache is very important, it contains all the client side lua files without it your server would be pretty much unplayable.

** Remember to sync the lua cache each time you add things to the server**

If re uploading the cache becomes a pain there are a few things you can try:

Rsync - If you have access to install things on your web server but it could be challenge to setup if you never had experience with it before.

FTP Sync
(Best Way IMO) - There are many of them out there, some are free. May be a better choice if your unable to use Rsync or any other syncer.

** Some tips **

Resource.addfile - helpful if you want to send your clients custom content such as a model or a sound - http://wiki.garrysmod.com/?title=Resource.AddFile

Skip the uploading of .svn folders on your FTP Client - those .svn folders can become a BIG annoyance and can add to the upload time.

Bz2 Compressing - Good for compressing large files such as maps, allows faster downloading time for clients

if you need a good compressing program try 7Zip

That’s most of the tricks and things I know about FastDL. Hope this helps, check out the wiki page for further explanation

Nice tutorial, thank you so much (I’m not the OP but I needed help too :D). Just a few questions:

  1. I just copy straight over my server’s cache,maps, materials, models, resources, sound folders directly onto my webhoster?
  2. How come some sites tell you set sv_allowupload and sv_download to 1, but some tell us to change it to 0? What are the pros and cons?

[editline]2nd February 2011[/editline]

Oh, and if I put a map on the web server, will it automatically download from the web server? Or must I add it to resource.AddFile?

Maps will automatically download from the server.

  1. Yes you can copy those over. if you want to add addon files remember you will have to pull them our of addon format and move them into those folders.

  2. sv_allowdownload needs to be off so the files are not downloaded from the game server… if I recall correctly.

Thanks for your help so far, I found out that different hosts have different website roots (such as public_html or www) but godaddy doesn’t use one.

So I’ve managed to get it to work, but it’s still broken somehow.

I’m trying to test it on this Portal Gun addon I have, which apparently has 28 files it needs to download. It’ll “download” all but 7 (and skip the last 7). But when I get on the server, it doesn’t have any effect (the portals are still ERRORed and Checkered) and I have to redownload all of the files every time I rejoin.

Here’s what’s in my downloads.txt:


Materials/models/props
Materials/sprites
Materials/vgui/entities
Materials/weapons
Models/blackops
Models/props
Models/weapons
Sound/weapons/portalgun

Changing the casing on the Materials/Models/Sound doesn’t change anything. ULX claims that the format I used here will force download every file available under the path given.

Also, I tried to download a bz2 compressed map using my fastDL. The download bar just skipped to the end and didn’t actually download the map.

Make sure the files from the Portal gun are on the web server, remember what I mentioned about adding files from an addon.

From the wiki page
“Case sensitivity matters with sv_downloadurl, so ensure that the filepath and filename are exactly the same on both the webserver and gameserver.”

Change the folder and file names to lowercase on the web server and the game server once, see if that helps any.

As for the map, it sounds like you have it correct, make sure you have the map on the game server.

Game Server
garrysmod/maps/mapname.bsp

Web Server
garrysmod/maps/mapname.bsp.bz2

Make sure you have sv_allowdownload set to 0 as well

I changed the casing to lowercase, and made sure sv_allowdownload was set to 0.

No fix. :frowning:

I’m also confused on why it’s skipping the 7 downloads…

I might be able to offer a bit more help if I could see it. If your comfortable using a program like TeamViewer and I could try and offer some help remotely, they have a quick support version as well.

QuickSupport

if you are not comfortable with remote sharing I understand, maybe I could help over a steam or skype chat.

Nah I was thinking the same thing. Let me get it real quick.

Installed teamviewer, now how exactly do I let you connect to me?

If I set sv_allowdownload to 0, that’d mean I’d have to have every single file onto my webhost. Surely that’d be almost impossible, since you have so many files, you’re bound to miss one, right?

No, you only need to upload the needed files to the FastDL server, in fact the only thing it downloads by default are maps and the cache file. The other folders, models, materials, sounds, etc… are for files that an addon sends to the players or for any files you tell the server send.

Also all the lua files that players need are sent via the Lua Cache file, hence the reason it needs to be updated each time new things are added.

Hey tornado, I sent you a message with my teamviewer id. I’ll do a presentation.

Send me the ID and passcode it gives you. Send it via a pm or add me on steam, or skype if you have it.

Go ahead and add me on steam or skype - username is TornadoChas3r, we are playing PM tag at the moment lol.

Just an update.

In the future, don’t use GoDaddy.

So in lua/autorun/server I create a file called <anything>.lua. And in that file I only write: resource.AddFile(“bla/bla/bla”) for each file I need to manually add or do I need to write this (which is on the wiki)?


function AddDir(dir) // recursively adds everything in a directory to be downloaded by client
	local list = file.FindDir("../"..dir.."/*")
	for _, fdir in pairs(list) do
		if fdir != ".svn" then // don't spam people with useless .svn folders
			AddDir(dir.."/"..fdir)
		end
	end
 
	for k,v in pairs(file.Find("../"..dir.."/*")) do
		resource.AddFile(dir.."/"..v)
	end
end


(I don’t know much about Lua, etc.)

The latter is not a requriement, you can just addfile in a serverside .lua file.

We tried using that last night and I can’t remember but it was a bit off.

Follow these steps and it’ll help you out in general:

  1. Rename your garrysmod/garrysmod folder to garrysmod old and start up GMod. This will make you a clean, basic garrysmod folder while keeping your old stuff in garrysmod old in case you need it back.
  2. Join your server, and see what you download and what you don’t.
  3. Make a list of all the addons, models, whatever that you don’t see. These will be the only things you need to add to your fastdl and force addons (you’d be surprised that there are probably a few things you’ve forgotten).
  4. Find all of your additional addons manually in your gameserver’s directory and go through the horribly repetitive process of adding each via resource.AddSingleFile(“directory/filename.ext”). (Read the gmod wiki on the difference between AddFile and AddSingleFile so you know where to use them).
  5. Save all of these into a Lua file named whatever you wish and put the lua file in lua/autorun/server on your game server.

Thanks so much man, will definitely do this!

As you can see here: http://game02.tuska.us/garrysmod/ i have this setup, but for some reason it wont download! Can you please help?
It wont even download the cache files :’(