Lock up
your Lua.
Everyone who joins your Garry's Mod server downloads your client-side code, and anyone can open it and copy it. With Manifest, that file holds one line. Your code is in a locked pack that players' games can run but nobody can just open and read.
cl_hud.lua, as a player opens it on their PC1local bar = Material("vgui/white")23local function DrawHealth(ply, x, y)4 local hp = math.Clamp(ply:Health(), 0, 100)5 surface.SetDrawColor(30, 30, 30, 220)6 surface.DrawRect(x, y, 240, 24)7 surface.SetDrawColor(200, 60, 50)8 surface.SetMaterial(bar)9 surface.DrawTexturedRect(x, y, hp * 2.4, 24)10end1112-- Your money, in the top corner.13local function DrawMoney(ply, x, y)14 local cash = ply:GetNWInt("money", 0)15 draw.SimpleText("$" .. cash, "HudLarge", x, y)16end1718hook.Add("HUDPaint", "my_hud", function()19 local ply = LocalPlayer()20 if not IsValid(ply) then return end21 DrawHealth(ply, 24, ScrH() - 48)22 DrawMoney(ply, 24, 24)23end)
1local f = _d96717e0 or include("d96717e0.lua") return f(debug.getinfo(1, "S").source, ...)Every player gets a copy of your code.
When someone joins, Garry's Mod downloads your client-side Lua files to their PC. Anyone can open those files and copy them.
One locked pack.
Manifest locks all your client-side Lua into one pack. Players' games can still run it, but the files on their PC can't just be opened and read. You don't need to set up each addon.
[Manifest] 214 client files: 214 in the pack, 0 left out, 0 skipped (not from your addons) [Manifest] Protection is on
To be honest about the limits: code has to run on a player's PC, so someone determined can still get it out. Manifest makes that much harder. Your server-side code never leaves your server, so Manifest doesn't touch it.
Players can join faster too, because they download one pack instead of hundreds of files. [benchmark placeholder]