AddCSLuaFile() -- thanks for fixing this bug that's been there for months, garry! -- Change this to an entity to check for to determine if our entities didn't get loaded. local ENTITYCLASS = "prop_nail" hook.Add("Initialize", "workshop", function() if scripted_ents.GetStored(ENTITYCLASS) ~= nil then return end print("Workshop version...") local foldername = GAMEMODE.FolderName local entitiespath = foldername.."/entities/entities/" local effectspath = foldername.."/entities/effects/" local weaponspath = foldername.."/entities/weapons/" -- ENTITIES local files, folders = file.Find(entitiespath.."*", "LUA") for _, filename in pairs(files) do ENT = {} ENT.Folder = entitiespath ENT.FolderName = filename include(entitiespath..filename) scripted_ents.Register(ENT, string.StripExtension(filename)) end for _, foldername in pairs(folders) do ENT = {} ENT.Folder = entitiespath..foldername ENT.FolderName = foldername if SERVER then if file.Exists(entitiespath..foldername.."/init.lua", "LUA") then include(entitiespath..foldername.."/init.lua") elseif file.Exists(entitiespath..foldername.."/shared.lua", "LUA") then include(entitiespath..foldername.."/shared.lua") end end if CLIENT then if file.Exists(entitiespath..foldername.."/cl_init.lua", "LUA") then include(entitiespath..foldername.."/cl_init.lua") elseif file.Exists(entitiespath..foldername.."/shared.lua", "LUA") then include(entitiespath..foldername.."/shared.lua") end end scripted_ents.Register(ENT, foldername) end -- EFFECTS local files, folders = file.Find(effectspath.."*", "LUA") for _, filename in pairs(files) do if SERVER then AddCSLuaFile(effectspath..filename) end if CLIENT then EFFECT = {} EFFECT.Folder = effectspath EFFECT.FolderName = filename include(effectspath..filename) effects.Register(EFFECT, string.StripExtension(filename)) end end for _, foldername in pairs(folders) do if SERVER and file.Exists(effectspath..foldername.."/init.lua", "LUA") then AddCSLuaFile(effectspath..foldername.."/init.lua") end if CLIENT and file.Exists(effectspath..foldername.."/init.lua", "LUA") then EFFECT = {} EFFECT.Folder = effectspath..foldername EFFECT.FolderName = foldername include(effectspath..foldername.."/init.lua") effects.Register(EFFECT, foldername) end end -- WEAPONS local files, folders = file.Find(weaponspath.."*", "LUA") for _, filename in pairs(files) do SWEP = {} SWEP.Folder = weaponspath SWEP.FolderName = filename SWEP.Base = "weapon_base" SWEP.Primary = {} SWEP.Secondary = {} --[[SWEP.Primary.ClipSize = 8 SWEP.Primary.DefaultClip = 32 SWEP.Primary.Automatic = false SWEP.Primary.Ammo = "Pistol" SWEP.Secondary.ClipSize = 8 SWEP.Secondary.DefaultClip = 32 SWEP.Secondary.Automatic = false SWEP.Secondary.Ammo = "Pistol"]] include(weaponspath..filename) weapons.Register(SWEP, string.StripExtension(filename)) end for _, foldername in pairs(folders) do SWEP = {} SWEP.Folder = weaponspath..foldername SWEP.FolderName = foldername SWEP.Base = "weapon_base" SWEP.Primary = {} SWEP.Secondary = {} if SERVER then if file.Exists(weaponspath..foldername.."/init.lua", "LUA") then include(weaponspath..foldername.."/init.lua") elseif file.Exists(weaponspath..foldername.."/shared.lua", "LUA") then include(weaponspath..foldername.."/shared.lua") end end if CLIENT then if file.Exists(weaponspath..foldername.."/cl_init.lua", "LUA") then include(weaponspath..foldername.."/cl_init.lua") elseif file.Exists(weaponspath..foldername.."/shared.lua", "LUA") then include(weaponspath..foldername.."/shared.lua") end end weapons.Register(SWEP, foldername) end ENT = nil EFFECT = nil SWEP = nil end)