Configuration
This is the doc that contains the full config.lua for Zombies, so you can get a full look at what is all configurable.
-- If you are looking for support or wanting to suggest features, please visit our Discord: https://discord.gg/VTjZDgV95y
Config = {}
-- Debugging: set to true to enable server-console debug prints
Config.Debug = false
-- Death/Revive Events (for better death detection with ambulance scripts)
Config.DeathEvent = "hospital:client:CheckIn" -- Event triggered when player dies/checked in
Config.ReviveEvent = "hospital:client:Revive" -- Event triggered when player is revived
-- Horde System
Config.HordeRadius = 15.0 -- Radius for zombies to join horde when another zombie targets a player
-- General Settings
Config.GlobalSpawning = true -- Global spawning: when false, zombies only spawn in RedZones and Nest spawns
Config.MaxZombiesPerPlayer = 8 -- Max zombies spawned per player
-- Spawn distance range from player (randomized between min and max for immersion)
Config.SpawnDistance = {
min = 30, -- Minimum distance to spawn zombies from player
max = 60 -- Maximum distance to spawn zombies from player
}
Config.DespawnDistance = 180.0 -- Distance to despawn zombies
Config.ZombieSpawnDelay = 70000 -- Delay between spawn checks (ms)
-- Regular Zombie Settings
Config.ZombieSettings = {
health = 200, -- Base health
damage = 15, -- Base damage
vehicleDamage = 15, -- Base vehicle damage
speed = 1.4, -- Base speed multiplier
attackRange = 2.0, -- Melee attack range
attackDelay = 1500 -- MS between attacks
}
-- Zombie Appearance Settings
Config.ZombieAppearance = {
-- Movement clipsets (randomly chosen)
clipsets = {
"move_m@drunk@verydrunk",
"move_m@injured",
"move_m@hobo@a",
"move_m@alien"
},
-- Base movement settings
movementRate = 0.70, -- Base movement rate override
maxSpeed = 4.0, -- Max entity speed
-- Damage and blood effects
damagePack = "Fall", -- Damage pack to apply
bloodDamage = 3, -- Blood damage level
-- Animation settings
disableAmbientAnims = true, -- Disable ambient animations
disableAmbientBaseAnims = true,
disableGestures = true,
disableVisemeAnims = true,
-- Combat attributes
fleeAttributes = 0, -- 0 = no flee
combatMovement = 0, -- 0 = stationary
combatAbility = 0, -- 0 = poor
accuracy = 1, -- Low accuracy
-- Animation pool (upper body overlays)
anims = {
{ dict = "special_ped@zombie@base", anim = "base" },
{ dict = "special_ped@zombie@monologue_6@monologue_6c", anim = "iamthevinewoodzombie_2" },
{ dict = "special_ped@zombie@monologue_6@monologue_6b", anim = "iamthevinewoodzombie_1" },
{ dict = "special_ped@zombie@monologue_6@monologue_6g", anim = "iamthevinewoodzombie_6" },
{ dict = "special_ped@zombie@monologue_6@monologue_6d", anim = "iamthevinewoodzombie_3" },
{ dict = "special_ped@zombie@monologue_6@monologue_6f", anim = "iamthevinewoodzombie_5" },
{ dict = "special_ped@zombie@monologue_6@monologue_6a", anim = "iamthevinewoodzombie_0" }
},
-- Thread intervals (in ms)
headTiltInterval = {min = 3000, max = 7000}, -- Random head tilt
speedPulseInterval = {min = 1200, max = 2600}, -- Speed variation
animCheckInterval = 2000 -- Ensure animation is playing
}
-- Hearing and Vision Settings
Config.ZombieHearing = {
enabled = true, -- Enable hearing system
gunshot = 100.0, -- Range zombies can hear gunshots
gunshotSuppressed = 40.0, -- Range zombies can hear suppressed gunshots
sprinting = 20.0, -- Range zombies can hear running
walking = 10.0, -- Range zombies can hear walking
crouching = 5.0, -- Range zombies can hear crouching
vehicle = 85.0, -- Range zombies can hear vehicles
shout = 30.0 -- Range zombies can hear shouting
}
-- Day/Night Settings
Config.DayNightEnabled = true
Config.NightStart = 20 -- 8 PM
Config.NightEnd = 6 -- 6 AM
Config.NightZombieMultiplier = 1.4 -- 40% more zombies at night
Config.NightZombieDamageMultiplier = 1.3 -- 30% more damage at night
Config.NightZombieSpeedMultiplier = 1.4 -- 40% faster zombies at night
-- Combat options
Config.InstantHeadshots = true -- If true, headshots instantly kill zombies (client must send headshot flag)
Config.InstantHeadshotsExcludeBosses = true -- If true, bosses are immune to instant headshots
Config.AllowZombieLadderClimbing = true -- If true, zombies are allowed to use ladders when pathing
Config.AllowZombieClimbovers = true -- If true, zombies are allowed to use climbovers when pathing (low obstacles)
-- Sync/networking options
Config.Sync = {
interpolationTime = 200 -- ms to interpolate between position updates for synced entities
}
-- AI Behavior
Config.AI = {
updateRate = 200, -- ms between AI updates (faster reaction)
attackDelay = 1000, -- ms between attacks (faster attacks)
targetSwitchCooldown = 2000 -- ms before switching targets to prevent erratic behavior
}
-- Safezones (No zombie spawns)
Config.SafeZones = {
{
name = "Yellowjack",
coords = vector3(1991.07, 3047.72, 54.53),
radius = 50.0,
disableWeapons = true, -- Disable weapons in this safezone
disableZombieAttacks = true, -- Prevent zombies from attacking players in this zone
takeDamage = false, -- If true, players will still take damage (for contested zones)
-- Damage protection options:
protectFromFire = true, -- Prevent fire/environmental damage
protectFromPlayers = true, -- Prevent damage from other players
showWarning = false, -- Show a warning message when entering
warningText = "Safe Zone - Weapons Disabled", -- Custom warning text
blip = {
enabled = true,
sprite = 60,
iconSprite = 304,
color = 3,
scale = 0.8,
shortRange = true,
text = "Safe Zone - Yellowjack"
}
}
}
-- Red Zones (High zombie density, stronger zombies)
Config.RedZones = {
{
name = "Military Base",
coords = vector3(-2047.8, 2955.6, 32.8),
radius = 300.0,
zombieMultiplier = 2.0, -- 2x more zombies
healthMultiplier = 1.5, -- 50% more health
damageMultiplier = 1.8, -- 80% more damage
bossChance = 0.15, -- 15% chance to spawn boss
blip = {
enabled = true,
sprite = 161,
color = 1,
scale = 1.0,
shortRange = true,
alpha = 120,
text = "Red Zone - Military"
}
},
{
name = "Prison",
coords = vector3(1679.0, 2513.0, 45.5),
radius = 200.0,
zombieMultiplier = 1.7,
healthMultiplier = 1.4,
damageMultiplier = 1.6,
bossChance = 0.12,
blip = {
enabled = true,
sprite = 161,
color = 1,
scale = 0.95,
shortRange = true,
alpha = 120,
text = "Red Zone - Prison"
}
}
}
-- Zombie Models (used for normal zombie spawns)
Config.ZombieModels = {
{model = "a_m_y_runner_01", weight = 20},
{model = "a_m_y_runner_02", weight = 20},
{model = "a_f_y_runner_01", weight = 15},
{model = "a_m_m_hillbilly_01", weight = 15},
{model = "a_m_y_beachvesp_01", weight = 10},
{model = "a_m_y_hipster_01", weight = 10},
{model = "a_f_m_beach_01", weight = 10},
{model = "a_m_m_business_01", weight = 12},
{model = "a_f_m_business_02", weight = 12},
{model = "a_m_y_business_01", weight = 8},
{model = "a_f_y_business_01", weight = 8},
{model = "a_f_y_juggalo_01", weight = 10},
{model = "a_m_m_beach_01", weight = 10},
{model = "a_m_m_eastsa_02", weight = 10},
{model = "a_m_m_hillbilly_01", weight = 10},
{model = "a_m_m_malibu_01", weight = 10},
{model = "a_m_m_mexlabor_01", weight = 10},
{model = "a_m_m_polynesian_01", weight = 10},
{model = "a_m_m_rurmeth_01", weight = 10},
{model = "a_m_m_salton_02", weight = 10},
{model = "a_m_m_skater_01", weight = 10},
{model = "a_m_m_skidrow_01", weight = 10},
{model = "a_m_m_soucent_04", weight = 10},
{model = "a_m_m_tennis_01", weight = 10},
{model = "a_m_o_acult_02", weight = 10},
{model = "a_m_y_genstreet_01", weight = 10},
{model = "a_m_y_genstreet_02", weight = 10},
{model = "a_m_y_methhead_01", weight = 10},
{model = "a_m_y_salton_01", weight = 10},
{model = "a_m_y_stlat_01", weight = 10},
{model = "s_m_y_cop_01", weight = 10},
{model = "s_m_y_prismuscl_01", weight = 10}
}
-- Boss Zombie Settings
Config.BossZombies = {
enabled = true,
spawnChance = 0.05, -- 5% chance to spawn a boss
models = {
{model = "u_m_y_zombie_01", weight = 50},
{model = "ig_dale", weight = 30},
{model = "u_m_m_jesus_01", weight = 20}
},
health = 1000,
damage = 50,
vehicleDamage = 60,
speed = 1.2,
scale = 1.3, -- Make them bigger
attackRange = 3.0
}
--- SECTION: Nest System ---
-- Nest System
Config.NestSystem = {
enabled = true,
nestLocations = {
vector3(1679.0, 2513.0, 45.5),
vector3(240.0, -880.0, 30.0),
vector3(1747.84, 3045.42, 60.87),
vector3(1398.89, 3005.31, 39.55),
vector3(617.58, 2714.12, 41.04),
vector3(745.15, 1284.34, 359.3),
vector3(326.01, 96.44, 98.72),
vector3(226.38, -99.65, 68.89),
vector3(-106.65, -56.61, 55.36),
vector3(-433.06, -433.98, 31.8),
vector3(-48.37, -1078.2, 25.78),
vector3(-187.34, -1393.64, 29.83),
vector3(152.6, -1291.31, 28.07),
vector3(479.07, -1277.23, 28.55),
vector3(355.05, -665.81, 28.34),
vector3(-542.49, -658.51, 32.27),
vector3(-698.19, -984.24, 19.39),
vector3(-579.44, -1154.05, 21.18),
vector3(-81.43, -1480.27, 31.27),
vector3(1679.0, 2513.0, 45.5),
vector3(240.0, -880.0, 30.0),
vector3(1747.84, 3045.42, 60.87),
vector3(1398.89, 3005.31, 39.55),
vector3(617.58, 2714.12, 41.04),
vector3(745.15, 1284.34, 359.3),
vector3(326.01, 96.44, 98.72),
vector3(226.38, -99.65, 68.89),
vector3(-106.65, -56.61, 55.36),
vector3(-433.06, -433.98, 31.8),
vector3(-48.37, -1078.2, 25.78),
vector3(-187.34, -1393.64, 29.83),
vector3(152.6, -1291.31, 28.07),
vector3(479.07, -1277.23, 28.55),
vector3(355.05, -665.81, 28.34),
vector3(-542.49, -658.51, 32.27),
vector3(-698.19, -984.24, 19.39),
vector3(-579.44, -1154.05, 21.18),
vector3(-81.43, -1480.27, 31.27),
vector3(229.62, -1726.6, 28.06),
vector3(487.88, -2060.16, 24.14),
vector3(1416.13, -1761.63, 64.92),
vector3(1161.36, -949.2, 47.39),
vector3(1016.97, -193.23, 69.27),
vector3(-1786.24, 73.37, 68.81),
vector3(-2169.54, -399.93, 12.38),
vector3(91.46, 3629.87, 38.69),
vector3(-921.55, 5410.71, 36.44),
vector3(-1640.32, 4851.74, 59.84),
vector3(-2204.98, 4253.64, 46.52),
vector3(-2145.77, 3477.22, 28.84),
vector3(-1549.14, 2396.2, 24.97),
vector3(221.94, 2988.56, 41.55),
vector3(-236.7, 3916.54, 37.24),
vector3(1907.19, 4931.93, 47.97),
vector3(2423.49, 5126.5, 45.86),
vector3(119.08, 6547.2, 30.44),
vector3(-326.59, 6274.94, 30.49),
vector3(-1154.19, 2665.12, 17.09),
vector3(1560.88, 6448.96, 22.86),
vector3(1483.76, 3589.16, 34.38),
vector3(1626.44, 3566.87, 34.15),
vector3(1847.67, 3924.07, 32.05),
vector3(887.29, 3655.04, 31.84),
vector3(913.94, 3546.12, 32.79),
vector3(1343.31, 3130.99, 40.05),
vector3(715.04, 3210.9, 38.13),
vector3(1103.26, 3446.55, 32.92),
vector3(2046.59, 3445.44, 42.77),
vector3(2802.66, 3472.48, 54.19),
vector3(2754.87, 4423.67, 47.58),
vector3(2679.39, 3899.85, 41.24),
vector3(2450.04, 4040.16, 36.61),
vector3(2458.86, 4589.91, 35.91),
vector3(2671.5, 4861.87, 43.68),
vector3(3785.84, 4435.09, 4.1),
vector3(2892.96, 5027.41, 30.6),
vector3(-662.95, 5257.91, 75.44),
vector3(762.9, 4179.81, 39.59),
vector3(1012.72, 4455.63, 50.34),
vector3(1670.99, 4519.19, 35.31),
vector3(1683.78, 3917.54, 31.95),
vector3(2258.75, 5611.66, 53.45),
vector3(2483.44, 5584.43, 43.85),
vector3(1957.99, 3770.16, 31.2),
vector3(2534.24, 2618.72, 36.94),
vector3(2787.21, 1655.15, 23.49),
vector3(2718.68, 1364.48, 23.52),
vector3(2585.6, 389.82, 107.46),
vector3(2408.55, -460.53, 70.79),
vector3(1715.45, -1648.61, 111.52),
vector3(1442.45, -2595.74, 47.21),
vector3(184.78, -2617.84, 5.02),
vector3(-301.32, -2588.52, 5.0),
vector3(-910.49, -2926.52, 12.94),
vector3(-1465.81, -3102.96, 13.14),
vector3(-983.08, -2992.24, 12.94),
vector3(-1251.81, -2298.26, 12.95),
vector3(-1091.29, -1689.56, 3.6),
vector3(-1318.14, -1220.7, 3.83),
vector3(-1372.11, -573.19, 29.25),
vector3(-1025.33, -509.87, 35.44),
vector3(-734.09, -194.71, 36.0),
vector3(-833.87, 438.42, 86.88),
vector3(-716.49, 984.21, 236.99),
vector3(438.94, 881.07, 197.25),
vector3(-3108.1, 1295.54, 19.23),
vector3(133.85, 4460.4, 79.7),
vector3(195.04, 1882.39, 171.7),
vector3(860.42, 1952.33, 87.87)
},
nestRadius = 25.0, -- Radius of nest influence
zombiesPerNest = 8, -- Zombies that spawn from a nest
maxZombiesFromNests = 40, -- Max total zombies that can be active from nests
OnlyNightSpawning = false, -- If true, nests won't be active in the day. (edit start/end night settings above.)
NightZombiesPerNestMultiplier = 1.2, -- Multiplier for number of zombies spawned per nest at night
-- Particle/smoke settings for nest visuals
particle = {
enabled = true,
asset = "core", -- ptfx asset name
effect = "exp_grd_grenade_smoke", -- particle effect name (gas-like smoke)
scale = 2.0, -- particle scale
offsetZ = 0.0, -- vertical offset from nest coords
emitters = 5, -- number of particle emitters per nest (for denser effect)
color = { r = 0.5, g = 0.5, b = 0.5 }, -- color in RGB format - note: not all ptfx support color changes, may be ignored.
distance = 100.0 -- distance from player to show particles
},
blip = {
enabled = false,
sprite = 310, -- Skull blip
color = 1, -- Red
scale = 0.8,
shortRange = true,
text = "Zombie Nest"
},
respawnTime = 300 -- Time in seconds before nest can respawn zombies if player is still nearby (5 minutes)
}
--- SECTION: Special Zombies and Settings ---
-- Special Zombie Types
Config.SpecialZombies = {
fire = {
name = "Fire Zombie",
health = 300,
damage = 20,
vehicleDamage = 25,
speed = 1.1,
attackRange = 2.5,
models = {
{model = "a_m_y_runner_01", weight = 50},
{model = "a_m_y_runner_02", weight = 50}
},
effects = {
fire = true -- Could add fire effects later
}
},
gas = {
name = "Gas Zombie",
health = 250,
damage = 18,
vehicleDamage = 22,
speed = 0.9,
attackRange = 2.0,
models = {
{model = "a_m_m_hillbilly_01", weight = 50},
{model = "a_m_m_rurmeth_01", weight = 50}
},
effects = {
gas = true -- Could add gas effects later
}
},
armored = {
name = "Armored Zombie",
health = 400,
damage = 25,
vehicleDamage = 30,
speed = 0.8,
attackRange = 2.2,
models = {
{model = "s_m_y_cop_01", weight = 50},
{model = "s_m_y_prismuscl_01", weight = 50}
},
effects = {
armored = true
}
}
}
-- Special Nest System
Config.SpecialNestSystem = {
enabled = true,
specialNestLocations = {
{coords = vector3(-2047.8, 2955.6, 32.8), type = "fire"}, -- military base
{coords = vector3(3516.28, 3783.46, 28.92), type = "gas"}, -- humane labs
{coords = vector3(240.0, -880.0, 30.0), type = "armored"} -- prison
},
nestRadius = 25.0, -- Radius of nest influence
zombiesPerNest = 8, -- Zombies that spawn from a special nest
maxZombiesFromNests = 40, -- Max total zombies that can be active from special nests
OnlyNightSpawning = false, -- If true, special nests won't be active in the day. (Night: 20pm - 6am)
-- Particle/smoke settings for nest visuals (different colors for special)
particle = {
enabled = false,
asset = "core",
effect = "exp_grd_grenade_smoke",
scale = 2.5, -- Larger scale for special
offsetZ = 0.0,
emitters = 7, -- More emitters
color = { r = 1.0, g = 0.0, b = 0.0 }, -- Red for special
distance = 100.0
},
blip = {
enabled = true,
--sprite = 310,
color = 49, -- Orange for special
scale = 1.0,
shortRange = true,
text = "Special Zombie Nest"
}
}
--- SECTION: Other Settings ---
-- Audio Settings
Config.Audio = {
enabled = true,
maxDistance = 20.0, -- max range zombie sounds can be heard
volume = 0.2, -- master volume for zombie sounds (0.0 to 1.0)
playerUpdateInterval = 250, -- ms for listener updates
}
-- Performance Settings
Config.Performance = {
updateRate = 500, -- How often to update zombie AI (ms)
maxSpawnAttempts = 5, -- Max attempts to find valid spawn
cleanupDeadZombies = true,
cleanupDelay = 30000 -- Remove dead zombies after 30 seconds
}
-- Apocalypse Mode (disables world density & ambience when enabled)
Config.Apocalypse = {
-- If true players will start with Apocalypse mode active on resource start
enabled = true, -- if false it will disable "Apocalypse mode completely"
disableDensity = true, -- if true, it will disable world density.
disableDispatch = true, -- if true, ambience when enabled.
}
-- Looting System
Config.Looting = {
enabled = true,
-- Use target system (qb-target/ox_target/qtarget/bt-target) or press E prompt
useTarget = true,
-- Max items per corpse (to prevent over-looting)
maxItemsPerCorpse = 3,
-- Loot tables for zombies (chance-based items)
lootTables = {
regular = {
{item = "water", chance = 30, amount = {1,3}}, -- 30% chance - Common drink
{item = "sandwich", chance = 25, amount = {1,2}}, -- 25% chance - Food item
{item = "bandage", chance = 20, amount = {1,2}}, -- 20% chance - Medical supply
{item = "pistol_ammo", chance = 15, amount = {1,5}}, -- 15% chance - Ammunition
{item = "metalscrap", chance = 10, amount = {1,3}}, -- 10% chance - Crafting material
},
boss = {
{item = "water", chance = 40, amount = {2,5}}, -- 40% chance - Common drink
{item = "sandwich", chance = 35, amount = {2,4}}, -- 35% chance - Food item
{item = "bandage", chance = 30, amount = {2,4}}, -- 30% chance - Medical supply
{item = "pistol_ammo", chance = 25, amount = {5,10}}, -- 25% chance - Ammunition
{item = "metalscrap", chance = 20, amount = {3,6}}, -- 20% chance - Crafting material
{item = "antidote", chance = 10, amount = {1,1}}, -- 10% chance - Infection cure
{item = "advancedrepairkit", chance = 15, amount = {1,1}}, -- 15% chance - Rare repair item
}
},
-- Corpse despawn delay after looting is complete (seconds)
corpseDespawnDelay = 30,
}
-- Infection System
Config.Infection = {
enabled = true,
-- Infection timer (time until death if not cured) in seconds
infectionTime = 300, -- 5 minutes in seconds
-- Chance to infect on bite (0.0 to 1.0)
biteChance = 0.02, -- 2%
-- Cure item name
cureItem = "antidote",
-- Allow zombie to the an infected player
allowZombiesToAttackInfected = false,
-- Symptoms
symptoms = {
blur = true, -- Screen blur
heartbeat = true, -- Heartbeat sound
walkStyle = "move_m@injured", -- Walking animation clipset
screenEffect = true, -- Custom HTML screen effect
periodicDamage = 0.3 -- HP drain per second
}
}
return Config
-- End of Config.luaLast updated