I'll teach you how to create your very own custom NPC for Gmod2007. It's not very hard, quite simple, actually.

So I'll start out with a default citizen NPC:

Citizen NPC

local Category = "Your NPC Category"

local NPC = { Name = "Your NPC",

            Class = "npc_citizen",      
            Model = "models/yourmodelname.mdl",
            Health = "100",
            KeyValues = { citizentype = 4 },
            Category = Category    }

list.Set( "NPC", "npc_yourfirstNPC", NPC )

Then I'll go over what each one is:

local NPC = { Name = "Your NPC",

//This is your NPC's name, shown on the spawnmenu. Just replace 'Your NPC" with the name you want.

Class = "npc_citizen",

// This is the class of your NPC ( combine, citizen, vortigaunt, etc.)

You can't make any NPC type. You can only make NPCs with the following classes. This is because the rest of the npcs ( gman, fast zombie, others I didn't mention) do not have preset keyvalues.

npc_combine_s //Combine Soldier npc_vortigaunt //Vortigaunt ( pretty self explanatory) npc_alyx //Alyx npc_strider // Strider npc_citizen // A basic citizen who can follow you.

Model = "models/yourmodelname.mdl",

// This is the NPC's model directory. Make sure it's right or your NPC will spawn as a big whopping ERROR sign. Oh, and one very important thing:


If your model does not have the correct animations they will spawn in a T shape and not move whatsoever. If you want to modify a ragdoll to have animations, you must decompile the model and edit the .qc file's animations( I will soon make a tut of this later).

Health = "100",

//This is already quite self-explanatory, no need to go over this.

KeyValues = { citizentype = 4 },

//This part of the code only applies to citizens. These are the keyvalues of the citizen to show what type of citizen it is ( If I can remember, i think it was Citizen, DownTrodden, Rebel, and medic). Experiment with those to see if I am right.

Category = Category }

//This part validates the NPC so it's in the category.

list.Set( "NPC", "npc_yourfirstNPC", NPC )

// Finally, this will set the NPC into the list and this creates the NPC's in-name game ( not the one in the spawnlist, just the "console" name. just change "Npcyourfirstnpc" to anything, but make sure npc is there at all times.

That's it! Stick it all together and you've got your first NPC done!

Combine NPC ( enemy NPC)

local NPC = { Name = "Enemy",

            Class = "npc_combine_s",
            Model = "models/enemy.mdl",
            Squadname = "squad",
            Numgrenades = "4",
            Category = Category    }

list.Set( "NPC", "npc_enemy", NPC )

I won't go over the first 2 or the ones I've gone over, but I'll go over the ones you haven't seen:

Squadname = "squad",

//The squad name. If 2 have the same, I think both NPCS will stick together at all times. You can change it to anything you like, or not have it.

Numgrenades = "4",

//The number of grenades the enemy has. Change the number to anything you like.

That should do it. Well, have fun creating NPCS!

Oh noes! You're not a Member!

Want access to cool stuff? As a member you can:

  • Post. Give the submitter your thoughts on this Tutorial.
  • Say Thanks. Show your appreciation by sending the submitter points.
  • Stamp Posts. Let other posters know what you think of their posts.
  • Rate. Give this Tutorial a rating out of 10.
  • Flag. Alert moderators and warn members of a problem with this Tutorial.
  • Vote. Vote the submitter for the Monthly Awards.
  • Subscribe. Get notified when this submitter submits again.

Interested? Register or Login

  • shcfyd avatar
    shcfyd Offline
    Member Joined 3 years ago

    Posted by LucasHenkel When I try to make a zombie npc but with a different model it always has the same thing, everything works but it doesn't use the model I inserted. Can someone help?

    As the tutorial says, you are limited to npc_combine_s, npc_citizen, vortiguant and so on. Zombie, metropolice and some others can not have their model swapped via lua. I think you will need to compile a new Zombie model in order to make a custom npc_zombie

  • LucasHenkel avatar
    LucasHenkel Offline
    445 points Ranked 7749th
    Member Joined 4 years ago

    When I try to make a zombie npc but with a different model it always has the same thing, everything works but it doesn't use the model I inserted. Can someone help?

  • asteroidrules avatar
    asteroidrules Offline
    6,360 points Ranked 585th
    Member Joined 5 years ago

    The category thing doesn't change no matter what you type in. It also doesn't work with custom models.

  • asteroidrules avatar
    asteroidrules Offline
    6,360 points Ranked 585th
    Member Joined 5 years ago

    What do you save the file as and where do you put it? I'm trying to make a scanner.

  • zeppoking avatar
    zeppoking Offline
    Member Joined 5 years ago

    When I spawn my Npc they are invisible

  • chrisspyb avatar
    chrisspyb Offline
    Member Joined 6 years ago

    Great tutorial man!

    The cake is a lie- IS A LIE!
  • Ghost07 avatar
    Ghost07 Offline
    Member Joined 5 years ago

    ¿Can I open LUA, with wordpad?

  • Dot. avatar
    Dot. Offline
    115 points Ranked 20189th
    Member Joined 7 years ago

    This is all great info that could be useful if you added a few more things for the average n00bs as myself:

    o Where are we putting all this? Do we create a file? If so what do we name it? Also, where are we putting this file?

    o Do we structure the file just like you have it? Are there no brackets () , {}, [] ?

    28RL.NET avatar
    User Title
  • Corhunger avatar
    Corhunger Offline
    Member Joined 7 years ago

    Is there any kleiner npc that fights? If not can i just take his normal model and throw it on a citizen/rebel? and where do i put all that text, in lua as a txt file?

  • juggalo83 avatar
    juggalo83 Offline
    5,473 points Ranked 687th
    9 medals 1 rare
    • 6 years a member Medal icon
    • Reached 1,000 Points Medal icon
    • Reached 2,500 Points Medal icon
    • One month a member Medal icon
    • 6 months a member Medal icon
    • 1 year a member Medal icon
    • 2 years a member Medal icon
    • 4 years a member Medal icon
    • Unlocked Treehouse VIP clearance Medal icon
    Member Joined 9 years ago
    Posted by zaks88
    Posted by juggalo83 Good work on this but im still having trouble finding them ingame
    Make sure you put the lua file in lua/autorun and if it still doesnt work make sure u have no spaces in the name , instead of spaces use _

    no i figured it out, it was a case of the misspelling of a word that was giving me a problem but its fixed now


    donate points to the poor avatar
    User Title
    donate points to the poor


Shareable Image:
Share banner
HTML embed code:
BB embed code:
Markdown embed code:

More embeddable images

Bookmark and Share


Key Authors


Pwnz0r avatar
Pwnz0r Offline
241 points Ranked 12244th
Member Joined 8 years ago






Difficulty Level


Date Added
8 years ago

More from Pwnz0r

None found

WiPs by Pwnz0r

None found