make sure that’s a client.lua file
and also make sure your server files are up to date from https://docs.fivem.net/
OMG YES… im so stupid Thanksssss
im going to try to understand the full think and if it worked out i will close this 
1 question, so I don’t use a command to get them to send a message, it just changes the message with there rank in front. so how do i get the functions while it isn’t a command… i might just be stupid
i’m on my mac not my desktop give me a sec while i whip something up. i am not used to this keyboard lol
Appreciated
so you want something like rolesFX?
hmm kinda ye. but then i use ace’s to get there permission
ok so holdon i’ll see if i can whip something up like i said i’m on a mac so i can’t test it.
try this: rolesFX.zip (1.6 KB)
let me know if there are any errors because like i said i’m on a mac not my desktop.
make sure to add your ace perm 
example:
add_principal identifier.steam:steamid roles.owner
ok so i’ve used my previous version of the release.
and i’ve changed it
AddEventHandler('chatMessage', function(Source, Name, Msg)
SSMsg = stringsplit(Msg, " ")
if IsPlayerAceAllowed(Source, Owner) then
TriggerClientEvent('chat:addMessage', -1, "^7[ ^1Owner ^7] (^3 " .. Name.." ^7)", { 255, 255, 255 },"^1" .. Msg)
elseif IsPlayerAceAllowed(Source, Management) then
TriggerClientEvent('chat:addMessage', -1, "^7[ ^5Management ^7] (^3 " .. Name.." ^7)", { 0, 255, 247 },"^5" .. Msg)
elseif IsPlayerAceAllowed(Source, Senior_Admin) then
TriggerClientEvent('chat:addMessage', -1, "^7[ ^8Senior Admin ^7] (^3 " .. Name.." ^7)", { 255, 0, 0 },"^7" .. Msg)
elseif IsPlayerAceAllowed(Source, Admin) then
TriggerClientEvent('chat:addMessage', -1, "^7[ ^8Admin ^7] (^3 " .. Name.." ^7)", { 255, 0, 0 },"^7" .. Msg)
elseif IsPlayerAceAllowed(Source, Moderator) then
TriggerClientEvent('chat:addMessage', -1, "^7[ ^8Moderator ^7] (^3 " .. Name.." ^7)", { 0, 255, 247 },"^7" .. Msg)
elseif IsPlayerAceAllowed(Source, Tmod) then
TriggerClientEvent('chat:addMessage', -1, "^7[ ^8T-Mod ^7] (^3 " .. Name.." ^7)", { 0, 255, 247 },"^7" .. Msg)
else
TriggerClientEvent('chat:addMessage', -1, "^7[ ^4Member ^7] (^3 " .. Name.." ^7)", { 128,128,128 },"^7" .. Msg)
end
end)
but when i try to type it just says the default
I find the normal chatMessage way easier
same for rolesFX atleast
also idk why they would take it down for the deprecated version… it’s not like it’s against the ToS??? 
try
AddEventHandler('chatMessage', function(Source, Name, Msg, args)
args = stringsplit(Msg, " ")
CancelEvent()
if string.find(args[1], "/") then
local cmd = args[1]
table.remove(args, 1)
else
if IsPlayerAceAllowed(source, ownerace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Director | ", color = { 255, 0, 0}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, adminace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Admin | ", color = { 255, 0, 0}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, hpace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Highway Patrol | ", color = { 255, 0, 0}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, fdace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Fire | ", color = { 0, 0, 255}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, medace) then
TriggerClientEvent('chat:addMessage', -1, args = {"EMT | ", color = { 0, 0, 255}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, soace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Sheriff's Office | ", color = { 0, 0, 255}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, modace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Moderator | ", color = { 0, 255, 247}, .. Name, Msg})
elseif IsPlayerAceAllowed(source, stace) then
TriggerClientEvent('chat:addMessage', -1, args = {"State Troopers | ", .. Name, color = {255, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, testace) then
TriggerClientEvent('chat:addMessage', -1, args = {"State Troopers | Admin ", .. Name, color = { 222, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, "roles.creatorace") then
TriggerClientEvent('chat:addMessage', -1, args = {"Chat Roles Creator | ", .. Name, color = { 0, 255, 43}, Msg})
else
TriggerClientEvent('chat:addMessage', -1, args = {"Civilian | ", .. Name, color = { 235, 214, 51}, Msg})
end
end
end)
function stringsplit(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
return t
end
its the “quality” or something
config.lua
ownerace = "roles.owner" -- owner/director ace perm
adminace = "roles.admin" -- admin ace perm
hpace = "roles.hp" -- highway patrol ace perm
fdace = "roles.fd" -- fire ace perm
medace = "roles.med" -- EMT ace perm
soace = "roles.sheriff" -- sheriff ace perm
modace = "roles.mod" -- moderator ace perm
stace = "roles.state" -- state trooper ace perm
testace = "roles.test" -- not required
note you can add this to the top of sv_chat.lua
server.lua:41: ')' expected near '='
TriggerClientEvent('chat:addMessage', -1, args = {"Director | ", color = { 255, 0, 0}, .. Name, Msg})
try this:
AddEventHandler('chatMessage', function(Source, Name, Msg, args)
args = stringsplit(Msg, " ")
CancelEvent()
if string.find(args[1], "/") then
local cmd = args[1]
table.remove(args, 1)
else
if IsPlayerAceAllowed(source, ownerace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Director | ", .. Name, color = { 255, 0, 0}, Msg})
elseif IsPlayerAceAllowed(source, adminace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Admin | ", .. Name, color = { 255, 0, 0}, Msg})
elseif IsPlayerAceAllowed(source, hpace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Highway Patrol | ", .. Name, color = { 255, 0, 0}, Msg})
elseif IsPlayerAceAllowed(source, fdace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Fire | ", .. Name, color = { 0, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, medace) then
TriggerClientEvent('chat:addMessage', -1, args = {"EMT | ", .. Name, color = { 0, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, soace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Sheriff's Office | ", .. Name, color = { 0, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, modace) then
TriggerClientEvent('chat:addMessage', -1, args = {"Moderator | ", .. Name, color = { 0, 255, 247}, Msg})
elseif IsPlayerAceAllowed(source, stace) then
TriggerClientEvent('chat:addMessage', -1, args = {"State Troopers | ", .. Name, color = {255, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, testace) then
TriggerClientEvent('chat:addMessage', -1, args = {"State Troopers | Admin ", .. Name, color = { 222, 0, 255}, Msg})
elseif IsPlayerAceAllowed(source, "roles.creatorace") then
TriggerClientEvent('chat:addMessage', -1, args = {"Chat Roles Creator | ", .. Name, color = { 0, 255, 43}, Msg})
else
TriggerClientEvent('chat:addMessage', -1, args = {"Civilian | ", .. Name, color = { 235, 214, 51}, Msg})
end
end
end)
Still the same
i’ll figure it out when i get on my pc 
Take your time