Garry's Mod

Garry's Mod

Horde : Wave Survival Gamemode
How do I set up the custom lua file?
D:\Games\steamapps\common\GarrysMod\garrysmod\addons\your-config\lua\horde\gamemode\custom\Halo.lua

Commands: I used: "horde_external_lua_config Halo" & "horde_external_lua_config Halo.lua"

Lua:

-- Example your-custom-config.lua
-- If you just want to configure items, leave enemies as empty. Vice versa.

CONFIG = {Halo}
CONFIG.name = "Halo" -- YOU MUST NAME IT! Used for horde_external_lua_config.
CONFIG.items = {

}

CONFIG.enemies = {
-- key and name must be the same!
-- Since key has to be unique, you can use npc name + wave for the key.
Elite = {
name = "Elite",
class = "npc_iv04_hr_elite_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 1,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Grunt = {
name = "Grunt",
class = "npc_iv04_hr_grunt_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 1,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(255,0,0),
weapon = ""
},
Jackal = {
name = "Jackal",
class = "npc_iv04_hr_jackal_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 1,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(255,0,0),
weapon = ""
},

Elite Major = {
name = "Elite Major",
class = "npc_iv04_hr_elite_major",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 2,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},


Skirmisher = {
name = "Skirmisher",
class = "npc_iv04_hr_skirmisher_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 2,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Elite = {
name = "Elite Minor",
class = "npc_iv04_hr_elite_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 2,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Brute Minor = {
name = "Brute Minor",
class = "npc_iv04_hr_brute_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 3,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Brute Captain = {
name = "Brute Captain",
class = "npc_iv04_hr_brute_captain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 3,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Brute Chieftain = {
name = "Brute Captain",
class = "npc_iv04_hr_brute_chieftain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 3,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Elite Ultra = {
name = "Elite Ultra",
class = "npc_iv04_hr_elite_ultra",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 6,
},
Drone Minor = {
name = "Drone Minor",
class = "npc_iv04_hr_drone_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
},

Elite General = {
name = "Elite General",
class = "npc_iv04_hr_elite_general",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 4,
},

Grunt Heavy = {
name = "Grunt Heavy",
class = "npc_iv04_hr_grunt_heavy",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 5,
},

Champion = {
name = "Champion",
class = "npc_iv04_hr_skirmisher_champion",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 5,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",

},

Skirm = {
name = "Skirm",
class = "npc_iv04_hr_skirmisher_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 5,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",

},

Chieftain = {
name = "Chieftain",
class = "npc_iv04_hr_brute_chieftain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 5,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 3,
},

Elite Major = {
name = "Elite Major",
class = "npc_iv04_hr_elite_major",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 6,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",

},

Elite Ultra = {
name = "Elite Ultra",
class = "npc_iv04_hr_elite_ultra",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 6,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",

},

Elite Zealot = {
name = "Elite Zealot",
class = "npc_iv04_hr_elite_zealot",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 6,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 8,

},

drop pod = {
name = "drop pod",
class = "npc_iv04_hr_droppod",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 7,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 8,

},
Elite = {
name = "Elite",
class = "npc_iv04_hr_elite_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 7,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",


},

Elite Zealot = {
name = "Elite Zealot",
class = "npc_iv04_hr_elite_zealot",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 8,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,
color = Color(0,255,0),
weapon = "",


},

Chieftain = {
name = "Chieftain",
class = "npc_iv04_hr_brute_chieftain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 8,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,
color = Color(0,255,0),
weapon = "",


},

Murmillo = {
name = "Murmillo",
class = "npc_iv04_hr_skirmisher_murmillo",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 8,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
color = Color(0,255,0),
weapon = "",


},

Elite Zealot = {
name = "Zealot",
class = "npc_iv04_hr_elite_zealot",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 9,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,
color = Color(0,255,0),
weapon = "",


},

Field Marshall = {
name = "Field Marshall",
class = "npc_iv04_hr_elite_field_marshall",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 9,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,
color = Color(0,255,0),
weapon = "",


},

Scarab = {
name = "Scarab",
class = "npc_iv04_hr_scarab",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 10,
is_elite = true,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 2,
color = Color(255,0,0),
weapon = "",
spawn_limit = 1
boss_properties = {is_boss=true, end_wave=true, unlimited_enemies_spawn=false, enemies_spawn_threshold=0.5, music_duration=105}, -- optional, boss settings

},

Field Marshall = {
name = "Field Marshall",
class = "npc_iv04_hr_elite_field_marshall",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 10,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,
color = Color(0,255,0),
weapon = "",
spawn_limit = 20


},
}

--------------------------------------------------------------------------------------------------------------------

Below is working version of the lua if anyone wants to use it.

--------------------------------------------------------------------------------------------------------------------
-- Example your-custom-config.lua
-- If you just want to configure items, leave enemies as empty. Vice versa.

CONFIG = {}
CONFIG.name = "Halo3" -- YOU MUST NAME IT! Used for horde_external_lua_config.
CONFIG.items = {}

CONFIG.enemies = {
-- key and name must be the same!
-- Since key has to be unique, you can use npc name + wave for the key.
Elite1 = {
name = "Elite1",
class = "npc_iv04_hr_elite_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 1,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Grunt1 = {
name = "Grunt1",
class = "npc_iv04_hr_grunt_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 1,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Jackal1 = {
name = "Jackal1",
class = "npc_iv04_hr_jackal_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 1,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Elite_Major = {
name = "Elite_Major",
class = "npc_iv04_hr_elite_major",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 2,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Skirmisher = {
name = "Skirmisher",
class = "npc_iv04_hr_skirmisher_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 2,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Elite_Minor = {
name = "Elite_Minor",
class = "npc_iv04_hr_elite_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 2,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Brute_Minor1 = {
name = "Brute_Minor1",
class = "npc_iv04_hr_brute_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 3,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Brute_Captain1 = {
name = "Brute_Captain1",
class = "npc_iv04_hr_brute_captain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 3,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Brute_Captainn1 = {
name = "Brute_Captainn1",
class = "npc_iv04_hr_brute_chieftain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 3,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Elite_Ultra1 = {
name = "Elite_Ultra1",
class = "npc_iv04_hr_elite_ultra",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",

},

GM1 = {
name = "GM1",
class = "npc_iv04_hr_grunt_minor",
weight = 2.4, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",

},

Elite_General1 = {
name = "Elite_General1",
class = "npc_iv04_hr_elite_general",
weight = .5, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",

},
Grunt_Heavy1 = {
name = "Grunt_Heavy1",
class = "npc_iv04_hr_grunt_heavy",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 4,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",

},
Champion = {
name = "Champion",
class = "npc_iv04_hr_skirmisher_champion",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 5,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Skirm = {
name = "Skirm",
class = "npc_iv04_hr_skirmisher_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 5,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Chieftain2 = {
name = "Chieftain",
class = "npc_iv04_hr_brute_chieftain",
weight = .2, -- Relative weight to other enemies in the same wave.
wave = 5,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",

},
Elite_Major2 = {
name = "Elite_Major2",
class = "npc_iv04_hr_elite_major",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 6,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Elite_Ultra2 = {
name = "Elite_Ultra2",
class = "npc_iv04_hr_elite_ultra",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 6,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Elite_Zealot1 = {
name = "Elite_Zealot1",
class = "npc_iv04_hr_elite_zealot",
weight = .4, -- Relative weight to other enemies in the same wave.
wave = 6,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",

},

Elite3 = {
name = "Elite3",
class = "npc_iv04_hr_elite_minor",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 7,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Elite_Zealot2 = {
name = "Elite_Zealot2",
class = "npc_iv04_hr_elite_zealot",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 8,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,

weapon = "",
},
Chieftain4 = {
name = "Chieftain4",
class = "npc_iv04_hr_brute_chieftain",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 8,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,

weapon = "",
},
Murmillo = {
name = "Murmillo",
class = "npc_iv04_hr_skirmisher_murmillo",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 8,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,

weapon = "",
},
Zealot3 = {
name = "Zealot3",
class = "npc_iv04_hr_elite_zealot",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 9,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,

weapon = "",
},
Field_Marshall5 = {
name = "Field_Marshall5",
class = "npc_iv04_hr_elite_field_marshall",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 9,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,

weapon = "",
},
Field_Marshall6 = {
name = "Field_Marshall6",
class = "npc_iv04_hr_elite_field_marshall",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 10,
is_elite = false,
health_scale = 1,
damage_scale = 1,
reward_scale = 1000,
model_scale = 1,

weapon = "",
spawn_limit = 20
},
Scarab = {
name = "Scarab",
class = "npc_iv04_hr_scarab",
weight = 1, -- Relative weight to other enemies in the same wave.
wave = 10,
is_elite = true,
health_scale = 1,
damage_scale = 1,
reward_scale = 100,
model_scale = 1,
boss_properties = {is_boss=true, end_wave=true, unlimited_enemies_spawn=false, enemies_spawn_threshold=0.5}, -- optional, boss settings
weapon = "",
spawn_limit = 1
}
}
Last edited by Schmucko Fcko; 7 Apr, 2021 @ 12:59pm
< >
Showing 1-5 of 5 comments
Gorlami  [developer] 6 Apr, 2021 @ 3:15pm 
1. CONFIG = {}, not CONFIG = {halo}
2. You have duplicate keys in your lua config.
3. Refer to your console for any errors. You definitely have console errors.
Gorlami  [developer] 6 Apr, 2021 @ 3:23pm 
I also suggest you use an editor for this, so you can know what's wrong. This is Lua, not some random txt file. You have some grammar problems with your code.
Schmucko Fcko 6 Apr, 2021 @ 3:30pm 
Originally posted by Gorlami:
I also suggest you use an editor for this, so you can know what's wrong. This is Lua, not some random txt file. You have some grammar problems with your code.
Do I need to restart the game when I mess with the configs or no?
Gorlami  [developer] 6 Apr, 2021 @ 3:59pm 
Originally posted by EpicBruhSauce:
Originally posted by Gorlami:
I also suggest you use an editor for this, so you can know what's wrong. This is Lua, not some random txt file. You have some grammar problems with your code.
Do I need to restart the game when I mess with the configs or no?

You don't have to if you are just editing it. But if you want to load it you need to restart.
Schmucko Fcko 6 Apr, 2021 @ 4:48pm 
Originally posted by Gorlami:
Originally posted by EpicBruhSauce:
Do I need to restart the game when I mess with the configs or no?

You don't have to if you are just editing it. But if you want to load it you need to restart.
Ah okay yeah, that explains a lot after I fixed some things, I did have to restart the game for it to work.
< >
Showing 1-5 of 5 comments
Per page: 1530 50