CCodelab Station
Workflows

Zo maak je een GMod-addon, stap voor stap

03
Een eerste addon

Een chatcommando-addon, van begin tot eind

Een chatcommando !hello op je eigen server is de kleinste bruikbare addon. Het is puur GMod-Lua-scripting in 1 bestand aan de serverkant en het laat zien hoe je een GMod-addon maakt, van een lege map tot een getest resultaat. De agent schrijft hem. Jij controleert hem.

01

Open de addonmap

Maak eerst zelf garrysmod/addons/welcome aan en kies die map dan als werkmap.

02

Beschrijf de taak

Schrijf in gewone woorden wat de addon moet doen, bijvoorbeeld het chatcommando !hello beantwoorden met de naam van de speler.

03

Controleer de diff

Werk in Ask first. Lees de bestandskaart en de diff voor sv_welcome.lua en klik dan op Accepteren of Afwijzen.

04

Test in het spel

Start een multiplayerspel op een lokale testserver, join, typ het commando in de chat en lees de console op Lua-fouten voordat je het klaar noemt.

Het bestand dat de agent schrijft

lua/autorun/server/sv_welcome.lua
-- sv_welcome.lua: answer the !hello chat command
-- Runs on the server only (lua/autorun/server/).

local command = "!hello"

hook.Add("PlayerSay", "Welcome_Hello", function(ply, text)
    if string.lower(text) == command then
        local name = ply:Nick()
        ply:ChatPrint(string.format("Hello, %s!", name))
        return ""
    end
end)

Alleen aan de serverkant. hook.Add koppelt een functie aan PlayerSay, string.lower laat de vergelijking hoofdletters negeren, ChatPrint toont de begroeting aan die speler, en de lege string verbergt het getypte commando in de chat.

Vervolgstappen na de eerste addon

Voeg daarna een gescript wapen toe

Voeg daarna een gescript wapen toe. Wapens staan in lua/weapons/, dus vraag de agent daar één bestand te maken en elk veld uit te leggen dat hij instelt. Een mod met handmatige artillerie en mortieren kan bijvoorbeeld een gescript wapen of een gescripte entity zijn, en je beschrijft het gedrag in gewone woorden. De agent gebruikt write_file voor het nieuwe bestand, grep om te laten zien waar de klassenaam voorkomt en Shell voor je testcommando. De modus Plan only toont elk bestand voordat er iets wordt opgeslagen. Spawn het daarna op gm_flatgrass en lees de console op fouten.

Publiceer je addon en bied hem aan spelers aan

Spelers downloaden je addon van de server, niet van je pc. Een snelle manier om hen de handmatige installatie van al je mods te besparen is een Workshop-collectie, of resource.AddWorkshop-regels in een server-Lua-bestand. Je eigen addon moet eerst op de Workshop staan, want resource.AddWorkshop neemt het ID van een gepubliceerd item. Publiceer alleen toegestane inhoud. Vraag de agent de regels toe te voegen met edit_file en controleer de diff. Als Workshop-addons voor een speler niet downloaden op je GMod-testserver, zoek dan eerst met grep naar resource.AddWorkshop. Start de server daarna opnieuw op en join als speler om de download te zien.

Codelab Station voor Windows

Maak je eerste addon

Codelab Station downloaden ↗