Garry's Mod

Garry's Mod

Horde : Wave Survival Gamemode
Schmucko Fcko 6. apr. 2021 kl. 14:54
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
}
}
Sidst redigeret af Schmucko Fcko; 7. apr. 2021 kl. 12:59
< >
Viser 1-5 af 5 kommentarer
Gorlami  [udvikler] 6. apr. 2021 kl. 15:15 
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  [udvikler] 6. apr. 2021 kl. 15:23 
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 kl. 15:30 
Oprindeligt skrevet af 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  [udvikler] 6. apr. 2021 kl. 15:59 
Oprindeligt skrevet af EpicBruhSauce:
Oprindeligt skrevet af 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 kl. 16:48 
Oprindeligt skrevet af Gorlami:
Oprindeligt skrevet af 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.
< >
Viser 1-5 af 5 kommentarer
Per side: 1530 50