[ESX V1 / ExM] esx_adminplus

hello everyone!
first of all , this my first time releasing something on forum , so take it easy on me!

i just make this script for ESX V1 Legacy [1.2] [WILL NOT WORK WITH ESX V2]
this script also will work on ExtendedMode , a community edition fork of ESX

all commands available in this script:

server console commands:

  • players | will return ID/name/group of online players
  • reviveall | will revive all dead players
  • say [message] | send announcement to all online players

ingame Admin commands

  • /admin | your exact rank on server

  • /tpm | teleport you to selected waypoint on map [thanks to qalle for his code]

  • /coords | print ped coords in serverconsole and F8

  • /report [message] | send message to all online admins [configurable cooldown]

  • /announce [message] | send announcement to all online players

  • /bring [ID] | bring a player to your location

  • /bringback [ID] | teleport player back to where he was before /bring

  • /goto [ID] | teleport you to player with given ID

  • /goback | teleport you back where you was before /goto

  • /kill [ID] | instantly kill player with given ID

  • /freeze [ID] | freezing and making player invincible

  • /unfreeze [ID] | opposite of what /freeze do

  • /reviveall | revive all dead player on server (completely serversided, so no exploit can be done)

  • /a [message] | admin only chat with ranks and names

  • /warn [ID] | warn a player and kick if execeed max warns [configurable]

  • /noclip | Noclip [thanks to riftwebdev] for his code

special thanks to Cold Cat!!!#8585 for helping me on debugging and testing

INSTALLATION

  1. download from github

  2. extract esx_adminplus-master to your resources folder and remove -master from folder name

  3. add start esx_adminplus AFTER es_extended(or ExtendedMode) and esx_ambulancejob in your server config

  4. open up config.lua in esx_adminplus folder and config it as you want [note: default ranking system as i know was : superadmin > admin > moderator [it could be different for you, check your server cfg and see what is yours]

dependencies :

ESX V1 final || alternative : ExtendedMode

esx_ambulancejob

notes:

there is no UI like es_admin , all commands are easy to use already

ESX version 1.1 and 1.2 both supported

Onesync needed for teleport / bring / goto / coords commands ( TLDR : anything that need coordination)

you can exclude rank(s) from accessing to a command by passing a table of ranks as second argument to havePermission()

if you don’t know what that means , lets do an example :
you want to exclude moderator from sending announcements , so :
first , find
RegisterCommand("announce", function(source, args, rawCommand)
then find
if havePermission(xPlayer) then
and add second argument to havePermission like below:
if havePermission(xPlayer, {'moderator'}) then
thats it!

my other scripts :
Better FPS | Dynamic FPS Booster
second hand vehicle Remastered
Advanced Spectate
ESX Advanced Needs
Advanced Kit System
ESX Advanced Job System

hope you like it!
have a good day :snail:

32 Likes

Damn man good job

how i can make my self super admin?

Very cool release. Installing it now.

long life ESX

4 Likes

Thank you very much, I will test it out tonight!

Don`t need essentialmode if using the last es_extended?

Obviously

1 Like

nice realease tho

1 Like

superadmin went back to his own planet now we are just admins

setgroup 1 admin

Should i remove es_admin2 to replace this or just keep es_admin2

1 Like

whats the different between admin and moderator?

How change the names of ranks for chat /a

Would be perfect if you added /noclip and /tp (coords)

1 Like

Great script for servers that ditched EssentialMode thank you so much for this release!

1 Like

Absolutely fantastic, super easy to install. Thanks for the share!

1 Like

There is lots of good noclip scripts already
Also /tp is changed to /setcoords on new ESX
[ noclip now is part of the script ]

can you add that?

esx_adminplus\client\main

local noclip = false
local noclip_speed = 1.0

RegisterNetEvent("esx_admin:noclip")
AddEventHandler("esx_admin:noclip", function()

	noclip = not noclip
	local ped = GetPlayerPed(-1)
	
	if noclip then -- activé
		SetEntityInvincible(ped, true)
		SetEntityVisible(ped, false, false)
		Notify("Noclip ~g~activé")
	else -- désactivé
		SetEntityInvincible(ped, false)
		SetEntityVisible(ped, true, false)
		Notify("Noclip ~r~désactivé")
	end
	
end)

function getPosition()
	local x,y,z = table.unpack(GetEntityCoords(GetPlayerPed(-1),true))
	return x,y,z
end

function getCamDirection()
	local heading = GetGameplayCamRelativeHeading()+GetEntityHeading(GetPlayerPed(-1))
	local pitch = GetGameplayCamRelativePitch()

	local x = -math.sin(heading*math.pi/180.0)
	local y = math.cos(heading*math.pi/180.0)
	local z = math.sin(pitch*math.pi/180.0)

	local len = math.sqrt(x*x+y*y+z*z)
	
	if len ~= 0 then
		x = x/len
		y = y/len
		z = z/len
	end

	return x,y,z
end

function isNoclip()
	return noclip
end

Citizen.CreateThread(function()
	
	while true do
	Citizen.Wait(0)
	
		if noclip then
			local ped = GetPlayerPed(-1)
			local x,y,z = getPosition()
			local dx,dy,dz = getCamDirection()
			local speed = noclip_speed

		-- reset du velocity
			SetEntityVelocity(ped, 0.0001, 0.0001, 0.0001)

		-- aller vers le haut
			if IsControlPressed(0,32) then -- MOVE UP
				x = x+speed*dx
				y = y+speed*dy
				z = z+speed*dz
			end

		-- aller vers le bas
			if IsControlPressed(0,269) then -- MOVE DOWN
				x = x-speed*dx
				y = y-speed*dy
				z = z-speed*dz
			end

			SetEntityCoordsNoOffset(ped,x,y,z,true,true,true)
		end
	end
	
end)

esx_adminplus\server/main

RegisterCommand("noclip", function(source, args, rawCommand)	-- /noclip
	if source ~= 0 then
		local xPlayer = ESX.GetPlayerFromId(source)
		if havePermission(xPlayer) then
			xPlayer.triggerEvent("esx_admin:noclip")
		end
	end
end, false)
1 Like

@ali_exacute
Thank you very much for this script, I was desperate, I couldn’t find anything, could you put / ban with time and reason? It would already be the perfect script since I can’t find one that works for es_extended.

1 Like

Why did not use the new sys of esx register command?