Making NPC

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:

MAKE SURE YOUR MODEL HAS THE CORRECT ANIMATIONS.

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

Comments

  • shcfyd's Levels
    • P1: Beggar
      Points: 2
    • A3: Apprentice
      Account Age: 2 years
    Posted 1 year 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

    Bananite
  • LucasHenkel's Levels
    • P1: Beggar
      Points: 406
    • A4: Graduate
      Account Age: 2 years
    Posted 2 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?

    LucasGodzilla
  • asteroidrules's Levels
    • P2: Drudge
      Points: 3,778
    • A4: Graduate
      Account Age: 3 years
    Posted 3 years ago

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

  • asteroidrules's Levels
    • P2: Drudge
      Points: 3,778
    • A4: Graduate
      Account Age: 3 years
    Posted 3 years ago

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

  • zeppoking's Levels
    • A4: Graduate
      Account Age: 4 years
    Posted 3 years ago

    When I spawn my Npc they are invisible

    Bananite
  • chrisspyb's Levels
    • A5: Veteran
      Account Age: 4 years
    Posted 4 years ago

    Great tutorial man!

    The cake is a lie- IS A LIE!
  • Ghost07's Levels
    • A4: Graduate
      Account Age: 4 years
    Posted 4 years ago

    ¿Can I open LUA, with wordpad?

    Bananite
  • Dot.'s Levels
    • P1: Beggar
      Points: 100
    • E1: Helper
      EF: 1
    • A5: Veteran
      Account Age: 5 years
    Posted 5 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 () , {}, [] ?

    User Title
    www.Join28RL.net
  • Corhunger's Levels
    • A5: Veteran
      Account Age: 6 years
    Posted 5 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?

    Bananite
  • juggalo83's Levels
    • P2: Drudge
      Points: 5,456
    • A6: Elder
      Account Age: 7 years
    Posted 6 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

    User Title
    donate points to the poor

Credits

Submitter
Pwnz0r's Levels
  • P1: Beggar
    Points: 241
  • A6: Elder
    Account Age: 6 years
Pwnz0r (Creator/Co-creator)
Key Authors
Pwnz0r
Unknown

Rating

8.9/10
Based off 2 rating(s)

Additional Info

Genre
Coding/Scripting
Difficulty Level
Intermediate

Stats

Post Count
19
ViewCount
44,673
Date Added
6 years ago
Date Modified
6 years ago

Share

Embed Code
Code to use:

More embeddable images

Bookmark and Share