Five Emergency
Five Emergency is an advanced online police simulation for FiveM that offers a fully immersive law enforcement experience. Players take on the role of police officers and interact with a wide range of in-game systems designed to simulate real-life police duties.
Installation
Download the Script
Download the script using keymaster.
Download the Dependencies
Download the latest oxmysql GitHub
Download the latest ox_lib GitHub.
Download the latest ScaleformUI_Lua GitHub.
Download the latest ScaleformUI_Assets GitHub.
Download the latest Loaf_Headshot GitHub.
Download the latest RPEMOTES-REBORN GitHub.
ScaleformUI_Lua
Delete the example.lua file from the ScaleformUI_Lua folder
example.lua <-- delete this
fxmanifest.lua
ScaleformUI.luaImport the database
Import the provided database file fiveemergency.sql into your database using your preferred database management tool (e.g., phpMyAdmin, HeidiSQL, or the MySQL CLI).
Server.cfg Configuration
Finally, if everything has been set up correctly, add the following lines to your server.cfg to ensure the required resources are loaded
ensure ScaleformUI_Lua
ensure ScaleformUI_Assets
ensure loaf_headshot
ensure ox_lib
ensure rpemotes-reborn
ensure fe-core
ensure fe-calloutsMake sure that all dependencies are installed before starting the server.
Configuration
Ace Permission Setup
To create departments in Five Emergency, you must grant the FiveEmergency.Admin ace permission to the appropriate users or groups. Without this permission, users will not be able to create departments. This permission will also let you manage every department.
add_ace group.admin "FiveEmergency.Admin" allowExample Server.cfg
## Ace Permissions
add_ace group.admin "FiveEmergency.Admin" allowFiveEmergency.Admin will grant full access and bypasses any permission
restrictions there may be. No rank is required.
General Config
Open the general.lua file, which you can find in the fe-core/config directory.
This section contains all general configuration settings for the script. Here you can adjust key bindings, language, framework type, and connected resources. You can also configure commands, callout behavior, Discord presence, menu banners, and AI services like ambulance or tow truck. Additionally, it includes settings for the scene menu, panic button, prison drop-off, and drug effects.
GeneralConfig = {}
GeneralConfig.MDT = {
Key = 'F3',
Language = 'en',
Framework = 'standalone', -- 'standalone', 'ndcore', 'qbcore', 'esx', 'ox'
Inventory = '', -- '', 'qb', 'ox', 'qs'
Interaction = '', -- '', 'oxtarget'
DateFormat = 'dd.MM.yyyy HH:mm',
EmployeeInactiveDays = 30,
}
GeneralConfig.Commands = {
fdv = { Enabled = true },
fdp = { Enabled = true },
fdo = { Enabled = true },
duty = { Enabled = true }
}
GeneralConfig.Integrations = {
Target = {
Enabled = false,
Resource = 'ox_target' -- 'ox_target'
}
}
GeneralConfig.Resources = {
NearestPostal = 'NearestPostal',
}
GeneralConfig.Callouts = {
AssignIntervalMin = 10,
AssignIntervalMax = 25,
}
GeneralConfig.DiscordPresence = {
Enabled = true,
ApplicationId = '1392901067943182538',
BigAsset = { AssetName = 'fe-big', AssetText = 'Five Emergency' },
SmallAsset = { AssetName = '', AssetText = '' },
Buttons = {
{ Label = 'Discord', URL = 'https://discord.gg/5emergency' }
}
}
GeneralConfig.MenuSettings = {
ArmoryMenu = { hasBanner = true, banner = 'https://i.ibb.co/4Z2hBfZM/armory.png' },
DutyMenu = { hasBanner = true, banner = 'https://i.ibb.co/PszVSS9T/duty.png' },
GarageMenu = { hasBanner = true, banner = 'https://i.ibb.co/G45DQVgM/garage.png' },
LockerMenu = { hasBanner = true, banner = 'https://i.ibb.co/4ZfrqJy3/banner3.png' },
PedInteractionMenu = { hasBanner = true, banner = 'https://i.ibb.co/LhNXTBLZ/eup-ped.png' },
SpeedZoneMenu = { hasBanner = true, banner = 'https://i.ibb.co/Lzg61Yzg/speedzone.png' },
TrunkMenu = { hasBanner = true, banner = 'https://i.ibb.co/wk1WmTs/trunk.webp' },
EquipmentSelectionMenu = { hasBanner = true, banner = 'https://i.ibb.co/wNJcTqdT/equipment.webp' },
}
GeneralConfig.NotificationSystem = 'scaleformui' -- 'scaleformui', 'ed_notify', 'ox_lib'
GeneralConfig.Services = {
Ambulance = { Ped = 's_m_m_paramedic_01', Vehicle = 'ambulance', DrivingStyle = 524604, ReviveChance = 100, TravelDistance = 10.0 },
Coroner = { Ped = 's_m_m_doctor_01', Vehicle = 'speedo', DrivingStyle = 786603, TravelDistance = 100.0 },
Mechanic = { Ped = 's_m_m_autoshop_02', Vehicle = 'UtilliTruck3', RepairVisualDamage = true, DrivingStyle = 786603, TravelDistance = 100.0 },
Towtruck = { Ped = 'S_M_M_TRUCKER_01', Vehicle = 'flatbed', DrivingStyle = 786603, TravelDistance = 15.0 },
Transport = { Ped = 's_m_y_cop_01', Vehicle = 'policet', DrivingStyle = 786603, TravelDistance = 100.0 },
}
GeneralConfig.SceneMenu = { Key = 'F10', RangeLimit = 125, SpeedLimit = 120 }
GeneralConfig.Tackle = {
Enabled = true,
Keys = {
Primary = 21, -- LEFT SHIFT
Secondary = 38 -- E
},
Cooldown = 5000
}
GeneralConfig.Panic = { Key = 'Y', MapDisplay = true, PanicCooldown = 60, BlipCooldown = 120 }
GeneralConfig.PrisonDropOff = {
Locations = { vector3(1690.91, 2604.96, 45.17) },
Marker = { Type = 1, Scale = vector3(5.0, 5.0, 2.0), Color = { r = 255, g = 255, b = 255, a = 100 } }
}
GeneralConfig.Drugs = {
Marijuana = { clipSet = 'move_f@depressed@c', probability = 0.2 },
Cocaine = { clipSet = 'move_m@swagger@b', probability = 0.2 },
Heroin = { clipSet = 'move_m@buzzed', probability = 0.2 },
Methamphetamine = { clipSet = 'move_m@buzzed', probability = 0.2 },
Ecstasy = { clipSet = 'move_m@swagger@b', probability = 0.2 }
}Settings
Open the settings.lua file, which you can find in the fe-core/config directory.
Settings = {}
-- Enable development settings (currently only used for going on-duty automatically)
Settings.Development = false
Settings.Discord = {
Enabled = false,
GuildId = '',
BotToken = '',
NicknameChange = false,
AllowedRoles = {}
}
Settings.WhitelistedImageDomains = {
'imgur.com',
'cdn.discordapp.com',
'media.discordapp.net',
'ibb.co',
'i.ibb.co'
}Weapon Armory
Open the armory.lua file, which you can find in the fe-core/config directory.
ArmoryConfig = {
{
Departments = { 'LSPD', 'SAHP' }, -- Departments that can access this armory (Department Shortname)
UseRanks = true, -- Whether equipment is restricted based on rank
PedHash = 's_m_y_cop_01', -- Ped model shown at the armory
Blip = {
Enabled = true, -- Show blip on the map
Name = 'Weapon Armory', -- Blip name
Sprite = 110, -- Blip icon sprite ID
Scale = 0.9, -- Blip scale on the map
Color = 3, -- Blip color ID
Alpha = 255 -- Blip transparency
},
UseArmoryAnimation = true, -- Enable weapon handover animation
Coordinates = {
Ped = vector4(454.11, -980.26, 30.69, 90), -- Ped spawn location and heading
Interaction = vector3(452.26, -980.0, 30.69) -- Position where the player interacts
},
Equipment = {
{
Ranks = { 'Officer I', 'Officer II' }, -- Allowed ranks
Label = 'Combat Pistol', -- Display name in menu
Item = 'WEAPON_COMBATPISTOL', -- Itemname or Weaponname (depending on the framework).
Amount = 250, -- Number of items or ammo (depending on the framework).
Type = 'weapon', -- Type of item
Animation = 'pistol' -- Animation category
},
{
Ranks = { 'Officer I', 'Officer II' },
Label = 'Carbine Rifle',
Item = 'WEAPON_CARBINERIFLE',
Amount = 250,
Components = {
'COMPONENT_AT_AR_SUPP' -- Weapon attachments (e.g., suppressor)
},
Type = 'weapon',
Animation = 'rifle'
},
{
Ranks = { 'Officer I', 'Officer II' },
Label = 'Armor', -- Bulletproof vest
Type = 'armor'
},
{
Ranks = { 'Officer I', 'Officer II' },
Label = 'Ammobox', -- Extra ammunition
Type = 'ammo'
},
{
Ranks = { 'Officer I', 'Officer II' },
Label = 'First-Aid-Kit', -- Healing item
Type = 'heal'
},
}
}
}To ensure weapon animations work perfectly, make sure the corresponding animation positions match exactly – especially the distance between player and npc must be aligned.
Make sure that all ranks and department shortname names used here already
exist and are configured in the MDT. Otherwise, access may not work as
expected.
Locker
Open the outfits.json file, which you can find in the fe-core/config/data directory.
[
{
"Name": "Male LSPD Uniform A",
"Gender": "Male", // "Male" or "Female"
"Category": "EUP",
"Category2": "Los Santos Police Department", // Department name required to see this uniform
"Hat": "0:0",
"Glasses": "0:0",
"Ear": "0:0",
"Watch": "0:0",
"Mask": "11:1",
"Top": "32:1",
"UpperSkin": "5:1",
"Decal": "9:1",
"UnderCoat": "46:1",
"Pants": "21:1",
"Shoes": "22:1",
"Accessories": "5:1",
"Armor": "0:0",
"Parachute": "10:1"
}
]Uniforms will only be visible to departments listed under Category2. Make
sure to enter the exact department name as defined in your MDT.
Duty
Open the duty.lua file, which you can find in the fe-core/config directory.
DutyConfig = {
Key = 'E',
Locations = {
vector3(433.3412, -981.1572, 31.02518), -- First Duty point
vector3(261.6609, -316.0813, 44.64938), -- Second Duty point
},
Marker = {
Enabled = true,
Type = 23,
Scale = vector3(0.9, 0.9, 2.0),
Color = { R = 255, G = 255, B = 255, A = 255 }
},
Blip = {
Enabled = true,
Name = 'Duty',
Sprite = 606,
Scale = 0.9,
Color = 3,
Alpha = 255
},
}Garage
Open the garage.lua file, which you can find in the fe-core/config directory.
GarageConfig = {
{
pedHash = 'ig_trafficwarden',
blip = {
enabled = true,
name = 'LSPD Garage',
sprite = 357,
scale = 0.9,
color = 3,
alpha = 255
},
pedAnimation = { enabled = true, dict = 'amb@world_human_hang_out_street@male_c@base', name = 'base' },
coordinates = {
interaction = vector4(457.9114, -1017.4764, 28.2777, 85.4488),
preview = vector4(405.13, -957.99, -99.54, 156.02),
spawns = {
vector4(446.0407, -1025.3114, 28.7758, 7.757),
vector4(442.2809, -1025.9348, 28.7775, 5.2337)
}
},
vehicles = {
{ label = 'Police Cruiser 1', model = 'police', useRanks = false, departments = { ['LSPD'] = { 'Officer 1' } } },
{ label = 'Police Cruiser 2', model = 'police2', useRanks = false, departments = { ['LSPD'] = { 'Officer 2' } } },
}
},
}Make sure that all ranks and department shortname names used here already
exist and are configured in the MDT. Otherwise, access may not work as
expected.
Trunk
Open the trunk.lua file, which you can find in the fe-core/config directory.
This configuration controls the trunk system for vehicles in Five Emergency. Adjust weights, categories, equipment, props, and pickup settings.
Item Types
- weapon: Standalone GTA weapons (e.g.,
WEAPON_PISTOL) - item: Inventory items (ox, qb, qs, etc.)
- armor: Standalone armor (Bulletproof vest)
- heal: Standalone healing item (First aid kit)
- spikestrips: Equip and place spike strips
- policetape: Equip and place police tape
TrunkConfig = {
GlobalTrunkMaxWeight = 50.0,
VehicleTrunkMaxWeights = {
['police'] = 50.0,
['police2'] = 50.0,
},
EquipmentBagMaxWeight = 15.0,
EquipmentPickup = {
Locations = {
vector3(456.75, -988.64, 30.69)
},
Marker = {
Enabled = true,
Type = 23,
Scale = vector3(0.9, 0.9, 2.0),
Color = { R = 255, G = 255, B = 255, A = 255 }
}
},
Categories = {
['Weapons'] = 'Weapons'
},
Equipment = {
{
Type = 'weapon',
Title = 'Pistol',
Item = 'WEAPON_PISTOL',
Weight = 1.0,
Ammo = 24,
Category = 'Weapons'
},
{
Type = 'weapon',
Title = 'Taser',
Item = 'WEAPON_STUNGUN',
Weight = 0.5
},
{
Type = 'armor',
Title = 'Bulletproof Vest',
Weight = 5.0
},
{
Type = 'heal',
Title = 'First Aid Kit',
Weight = 1.0
},
{
Type = 'spikestrips',
Title = 'Spike Strips',
SubTitle = '',
Weight = 5.0,
},
{
Type = 'policetape',
Title = 'Police Tape Roll',
SubTitle = '',
Weight = 0.3,
}
},
Props = {
['Barriers'] = {
{
Title = 'Small Traffic Cone',
Item = 'prop_roadcone02a',
MaxPickup = 3,
StopPeds = true,
Pickup = {
Enabled = true,
AnimDict = 'missfbi4prepp1',
AnimName = '_idle_garbage_man',
Position = vector3(0.03, 0.05, -0.28),
Rotation = vector3(0, 0, 0)
}
},
{
Title = 'Large Traffic Cone',
Item = 'prop_roadcone01a',
StopPeds = true
},
{
Title = 'Police Barrier',
Item = 'prop_barrier_work05',
MaxPickup = 3,
StopPeds = true,
Weight = 2.0,
Pickup = {
Enabled = true,
AnimDict = 'anim@heists@box_carry@',
AnimName = 'idle',
Position = vector3(0, -0.11, -1.02),
Rotation = vector3(0, 0, 0)
}
},
{
Title = 'Small Barrier',
Item = 'prop_barrier_work01c',
StopPeds = true
},
{
Title = 'Small Barrier (Light)',
Item = 'prop_barrier_work02a',
StopPeds = true
},
{
Title = 'Large Barrier',
Item = 'prop_barrier_work06a',
StopPeds = true
},
{
Title = "Barrier 'Street Closed",
Item = 'prop_barrier_work04a',
StopPeds = true
},
{
Title = "Barrier 'Slow",
Item = 'prop_barrier_sign_30',
StopPeds = false
},
{
Title = "Barrier 'Stop",
Item = 'prop_barrier_sign_stop',
StopPeds = false
}
},
['Traffic Signs'] = {
{
Title = 'Sign (25mph)',
Item = 'prop_sign_road_06d',
StopPeds = false
},
{
Title = 'Sign (35mph)',
Item = 'prop_sign_road_06e',
StopPeds = false
},
{
Title = 'Fire Activity Ahead',
Item = 'prop_barrier_sign_16',
StopPeds = false
}
},
['Lighting'] = {
{
Title = 'Large Work Light',
Item = 'prop_worklight_03b',
StopPeds = false
},
{
Title = 'Small Work Light',
Item = 'prop_worklight_04d',
StopPeds = false
}
},
['Medical'] = {
{
Title = 'Medical Bag',
Item = 'xm_prop_x17_bag_med_01a',
StopPeds = false
},
{
Title = 'ECG',
Item = 'prop_ld_case_01',
StopPeds = false
},
{
Title = 'Field Bed',
Item = 'gr_prop_gr_campbed_01',
StopPeds = false
},
{
Title = 'Evidence Marker',
Item = 'ch_prop_ch_fib_01a',
StopPeds = false
}
},
['Miscellaneous'] = {
{
Title = 'Tent',
Item = 'prop_gazebo_02',
StopPeds = false
},
{
Title = 'Chair',
Item = 'v_ilev_leath_chr',
StopPeds = false
},
{
Title = 'Target Black',
Item = 'gr_prop_gr_target_04a',
StopPeds = false
}
}
},
ObjectBlip = {
Enabled = true,
Name = 'Object',
Sprite = 128,
Color = 0,
Scale = 0.9
},
ObjectPickupAnimation = {
Dict = 'random@domestic',
Name = 'pickup_low'
},
PickupableProps = {
[-874338148] = true
}
}