[ESX] Advanced Shot Spotter Perfect for your Roleplay Server! (Paid)

A script by JanisScripts

No reviews yet.
[ESX] Advanced Shot Spotter Perfect for your Roleplay Server! (Paid) main image

Full Description

Hey guys,

today I want to present my Advanced Shot-Spotter System for ESX.

Features :

  • Easy to configure
  • Job Whitelist (You can enter Jobs, which should be able to see the Shot Spotter Notification and Blip)
  • If a weapon is equipped with a suppressor, it wont be detected
  • Weapon Blacklist
  • Picture Notification (Changable Image/Title/Sutitle/Message)
  • Sound Notification (Changable Sounds)
  • Waypoint (You can set a Waypoint to the dispatch)

Showcase Video:
YouTube Preview

The script comes with a language config, so you can set up this script in any language you want. English, German and French configuration is already there.

If you’re selling your resource, please include the following information at the end of your post:

Code is accessible No (Open Soruce Version buyable)
Subscription-based No
Lines (approximately) 335
Requirements ESX
Support Yes (On Discord)

ESX v.1.1, ESX v.1.2 and ESX v.1 final and ESX-legacy are supported.

Config File:

Config File
Config = {}
NotificationSettings = {}

local Keys = {
    ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
    ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
    ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
    ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
    ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
    ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
    ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
    ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
    ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
}

Config.EnableDebug = true
Config.Locale = "en" -- Current available de/en/fr

Config.AutorizedJobs = {'police'} -- Add more if you want
Config.OnlyInVehicle = true -- If enabled you receive the waypoint notification only if you are inside a vehicle.

Config.NotifyTime = 1 -- Specifies the time after the shots when the Notify should show up (In seconds)
Config.NotifyCooldown = 1 -- The time in which no new notifications are shown in the zone if you get too many in a row. (In seconds)

Config.Notify = function(icon, message, title, subtitle, type, time) -- Configure your Notification Events (This is the default ESX Picture Notification )
	icon = icon or ""
    message = message or "No Input"
	title = title or "No Input"
	subtitle = subtitle or "No Input"
    type = type or "info"
    time = time or 3000
    if IsDuplicityVersion() then
        TriggerClientEvent('esx:showNotification', source, icon, message, title, subtitle, type, time) -- Server Side
	else
        ESX.ShowAdvancedNotification(title, subtitle, message, icon) -- Client Side
    end
end

Config.HelpNotify = function(msg) -- Configure your Notification Events (This is the default ESX Help Notification )
    msg = msg or "No Input"
    if IsDuplicityVersion() then
        TriggerClientEvent('esx:showHelpNotification', source, msg) -- Server Side
	else
        ESX.ShowHelpNotification(msg) -- Client Side
    end
end

Config.MsgsNotify = function(msgs) -- Configure your Notification Events (This is the default ESX Notification )
    msgs = msgs or "No Input"
    if IsDuplicityVersion() then
        TriggerClientEvent('esx:showNotification', source, msgs) -- Server Side
	else
        ESX.ShowNotification(msgs) -- Client Side
    end
end




Config.SoundOptions = { -- If you Disable both it won´t play a sound
	Default = true, 
	Custom = false,
	CustomSettings = { --Insert your Sound Names -- Find your sound here --> https://wiki.■■■■■■■■■■■/index.php?title=FrontEndSoundlist 
		SoundName = "TIMER_STOP", ---> Sound Name from Table "SoundName"
		SoundSetName = "HUD_MINI_GAME_SOUNDSET" ---> Sound Name from Table "SoundSetName"
	}
}

Config.BlipSettings = {
	FirstBlip = {
		Sprite = 161, -- First Blip | More Blips --> https://docs.fivem.net/docs/game-references/blips/#blips
		Color = 1, -- Default 1 = Red | More Colors https://docs.fivem.net/docs/game-references/blips/#blip-colors
		BlipRadius = 1000.0,
	},
	SecondBlip = {
		DetectionTime = 1,  --Sets the time the blip will remain on the map after a gunshot is detected. (In seconds)
		Sprite = 459, -- Second Blip | More Blips --> https://docs.fivem.net/docs/game-references/blips/#blips
		Color = 1, --  Default 1 = Red | More Colors https://docs.fivem.net/docs/game-references/blips/#blip-colors
		BlipRadius = 150.0,
	},
	RemoveBlips = 100 -- Specifies the time when the blips should be removed. (In seconds)
}

-- Blacklisted Weapons which won´t be detected. 
Config.BlacklistedWeapons = {
	'WEAPON_STUNGUN',
	'WEAPON_BZGAS',
	'WEAPON_SNOWBALL',
	'WEAPON_BALL',
	'WEAPON_FLARE',
	'WEAPON_PETROLCAN',
	'WEAPON_FIREEXTINGUISHER'
}



NotificationSettings = { 
    ['de'] = {
		MainNotification = {
        	picture = 'CHAR_CALL911',
			title = "Notruf",
			subtitle = "Schüsse gemeldet!",
			message = 'Standort: \n~y~',
			spacer = ' ~w~/~y~ ', 
		},
		WaypointNotification = {
        	key = Keys["G"], -- The key you press to setwaypoint
			cancelkey = Keys["X"],
			message = "Drücke [~y~G~w~] um eine Makierung zu setzen. \n[~r~X~w~] um zu erwiedern.",
		},
		SuccessNotification = {
			message = "~g~Ein Wegpunkt wurde zum Notruf gesetzt!",
		},
    },

	['en'] = {
        MainNotification = {
        	picture = 'CHAR_CALL911',
			title = "Dispatch",
			subtitle = "Shots Reported!",
			message = 'Location: \n~y~', 
			spacer = ' ~w~/~y~ ',
		},
		WaypointNotification = {
        	key = Keys["G"], -- The key you press to setwaypoint
			cancelkey = Keys["X"],
			message = "Press [~y~G~w~] to set a Waypoint. \n[~r~X~w~] to cancel.",
		},
		SuccessNotification = {
			message = "~g~A Waypoint has been set!",
		},
    },

	['fr'] = {
        MainNotification = {
        	picture = 'CHAR_CALL911',
			title = "Appel d'urgence",
			subtitle = "Coups de feu signalés !",
			message = 'Emplacement: \n~y~', 
			spacer = ' ~w~/~y~ ', 
		},
		WaypointNotification = {
        	key = Keys["G"], -- The key you press to setwaypoint
			cancelkey = Keys["X"],
			message = "Appuie sur [~y~G~w~] pour mettre une marque. \n[~r~X~w~] pour répliquer.",
		},
		SuccessNotification = {
			message = "~g~Un waypoint a été placé sur l'appel de détresse !",
		},
    }
}

You can buy it here:
My Shop

Updates

Update 1.5

  • Fixed a few bugs
  • Optimized Script to a maximum of 0.1 ms
    image

Update 1.6

  • Fixed that it´s now visible for everyone
  • Optimized the code

Config Merger
Have you tried Config Merger? Merge your configs easily