FastDL Folder Download

Hello, I am new to modding and such, and I have checked, but not found how to make it so that you can add entire folders to FastDL instead of adding every single file separately. Since I run a DarkRP server, I have a lot of content, which some refuse to download. And I was wondering if anyone could help me with finding a way to add entire addons to the FastDL(well the materials, models, etc. folders.)

Any help is much appreciated.

Download this, it really helps with adding content to lua resource file.

[LUA]
local function AddResourceDir(directory)
local files, folders = file.Find(directory…"/*", “GAME”)
for _, dir in pairs(folders) do
AddResourceDir(directory…"/"…dir)
end
for k,v in pairs(files) do
resource.AddFile(directory…"/"…v)
end
end
AddResourceDir(“materials/example”)
[/LUA]

Thank you both. Bo98, does that work with folders inside folders(ie. addon/materials/models)?

[editline]29th June 2013[/editline]

TheMostUpset, Why would this program need access to C:\Windows\system32?

Should do. It’s relative to the garrysmod/ folder.

[editline]29th June 2013[/editline]

I wouldn’t use .exe files over Lua. I wouldn’t trust it at all.

Bo98, do I put this in the root/garrysmod/lua/autorun or the root/garrysmod/addons/[addon]/lua/autorun?

[editline]29th June 2013[/editline]

Yea i figured as much.

I dunno. I found it here, don’t worry, it’s safe

lua/autorun

Don’t prefix it with root/garrysmod.

Well yea, but just to get the idea :slight_smile: Saw someone else use it like that xD. Well thank you very much!

[editline]29th June 2013[/editline]

Just so that we are on the same page, I can have my addons in the addons folder and the still just write AddResourceDir(“materials/example”)
or do I have to write it like this then:
AddResourceDir(“addons/[addon]/materials/example”)

[editline]29th June 2013[/editline]

I keep getting this error:

[ERROR] addons/extra_customizable_weaponry/lua/autorun/forcedownload.lua:2: attempt to concatenate global ‘dir’ (a nil value)

  1. AddResourceDir - addons/extra_customizable_weaponry/lua/autorun/forcedownload.lua:2
  2. unknown - addons/extra_customizable_weaponry/lua/autorun/forcedownload.lua:11

I have tried adding the code to garrysmod/lua/autorun/forcedownload.lua as well as garrysmod/addon/extra_customizable_weaponry/lua/autorun/forcedownload.lua. But neither will work.

I have tried these combinations of AddResourceDir:

AddResourceDir(“models”)
AddResourceDir(“materials”)
AddResourceDir(“sound”),

AddResourceDir(“addons/extra_customizable_weaponry/models”)
AddResourceDir(“addons/extra_customizable_weaponry/materials”)
AddResourceDir(“addons/extra_customizable_weaponry/sound”)

What am I doing wrong?

I wasn’t aware you can make clients download the dir, so say I wanted players to download everything in my materials and models I would just use that line of code in my force download.lua?

That code bot gave you was outdated!

Use mine:

local function AddDir(dir)
local fil, List = file.Find(dir…"/*", “GAME”)

if List then
for _, fdir in pairs(List) do
if fdir != “.svn” then
AddDir(dir…"/"…fdir)
end
end
end

if fil then
for k,v in pairs(fil) do
resource.AddFile(dir…"/"…v)
end
end
end

AddDir(“models/”)

I got it working with this code:

if SERVER then
local function AddResourceDir(directory, sdir)
local files, folders = file.Find(“addons/”…directory…"*", “GAME”)
for k,v in pairs(folders) do
–print(directory…v…"/")
AddResourceDir(directory…v…"/", sdir)
end
for k,v in pairs(files) do
–resource.AddSingleFile(“addons/”…directory…v)
resource.AddSingleFile(string.gsub((directory…v), sdir, “”))
end
end

AddResourceDir("extra_customizable_weaponry/models/", "extra_customizable_weaponry/")
AddResourceDir("extra_customizable_weaponry/materials/", "extra_customizable_weaponry/")
AddResourceDir("extra_customizable_weaponry/sound/", "extra_customizable_weaponry/")

end

And you have to place it in the /garrysmod/addons/[addon]/lua/autorun/[name of any file you want(ie forcedownload.lua)] And the follow the examples.

That’s the exact same but with different variable names and a couple of if statements. How is mine outdated?

[editline]30th June 2013[/editline]

Yeah I made a typo. For future reference, here’s the fix:

[LUA]local files, folders = file.Find(directory…"/*", “GAME”)[/LUA]

I was kidding about outdated :frowning:

Just for future reference, how do i make that box for the code? xD

[noparse][lua][/lua][/noparse] tags.

Even though thats fine you can use




too :slight_smile: