Configuration File

Preview of config.lua file

Config = {}
Config.AddMessageEvent = 'chat:addMessage'
Config.AddSuggestionEvent = 'chat:addSuggestion'
Config.AddSuggestionsEvent = 'chat:addSuggestions'
Config.RemoveSuggestionEvent = 'chat:removeSuggestion'
Config.ClearEvent = 'chat:clear'

Config.Distance3DTextDisplay = 50 
Config.MaxCharactersInInput = 400
Config.IdentifierType = 'license'
Config.AntiCapitalLetters = false
Config.SettingsCommand = 'settings'
Config.ClearCommand = 'clear'
Config.BannedWords = {'rape'}

Config.Commands = {
    looc_ = {
        command = 'looc',
        enabled = true,
        customizable = true,
        use3DText = false,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d looc_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
                 return {template = '<div class = "message looc"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Ooc</div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
                args = { name, text }}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = false,
        onlyFirstName = false,
        coolDown = 1000
        
    },
    gooc_ = {
        command = 'gooc',
        enabled = true,
        customizable = true,
        use3DText = false,
        hide3DTextAfter = 8000,
        distanceMessage = -1,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d gooc_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
                 return {template = '<div class = "message gooc"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Gooc</div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
                args = { name, text }}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = false,
        onlyFirstName = false,
        coolDown = 1000
        
    },
    me_ = {
        command = 'me',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, text)
            return {template = '<div class ="message_3d me_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
               return {template = '<div class = "message me"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Me</div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
                args = { name, text }}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 100
        
    },
    do_ = {
        command = 'do',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d do_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
               return {template = '<div class = "message do"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Do</div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
                args = { name, text }}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 100

    },
    doc_ = {
        command = 'doc',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, number, number_max)
            return {template = '<div class = "message_3d doc_3d">{0}/{1}</div>', args = {number, number_max}}
        end,
        templateMessage = function(name, number, number_max)
               return {template = '<div class = "message doc"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Doc</div><div class = "name">{0}</div></div><div class = "text">{1}/{2}</div></div>', args = { name, number, number_max }}
        end,
        suggestion = {help = '', params = {{name="number"}}},
        useCharacterName = true,
        onlyFirstName = false,
        maxDocNumber = 10,
        coolDown = 1000
    },
    img_ = {
        command = 'img',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, url)
            return {template = '<img class = "message_3d img_3d" src = {0}>', args = {url}}
        end,
        templateMessage = function(name, url)
               return {template = '<div class = "message img"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Img</div><div class = "name">{0}</div></div><img class = "content" src = {1}></div>', args = { name, url }}
        end,
        suggestion = {help = '', params = {{name="URL address"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 4000

    },
    here_ = {
        command = 'here',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 600000,
        distanceMessage = -1,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d here_3d">{0} <div class = "time">'..Config.GetTime()..'</div></div>', args = {text}}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 100
        
    },
    clear_here_ = {
        command = 'clearhere',
        enabled = true,
        customizable = true,
        suggestion = {help = '', params = {}},
        
    },
    clear_here_all_ = {
        command = 'clearhereall',
        enabled = true,
        customizable = true,
        suggestion = {help = '', params = {}},
        allowed_groups = {'admin'}
    },
    status_ = {
        command = 'status',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 600000,
        distanceMessage = -1,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d status_3d">{0}</div>', args = {text}}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 100
        
    },
    clear_status_ = {
        command = 'clearstatus',
        enabled = true,
        customizable = true,
        suggestion = {help = '', params = {}},
        
    },
    clear_status_all_ = {
        command = 'clearstatusall',
        enabled = true,
        customizable = true,
        suggestion = {help = '', params = {}},
        allowed_groups = {'admin'}
    },
    dice_ = {
        command = 'dice',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, number)
            return {template = '<div class = "message_3d dice_3d"><i class="fa-solid fa-dice"></i>   {0}</div>', args = {number}}
        end,
        templateMessage = function(name, number)
               return {template = '<div class = "message dice"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Dice</div><div class = "name"> {0}</div></div><div class = "text"><i class="fa-solid fa-dice"></i>   {1}</div></div>',
                args = { name, number }}
        end,
        suggestion = {help = '', params = {}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 1000,
        min_number = 1,
        max_number = 6
    },

    try_ = {
        command = 'try',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, number)
            local try = (tonumber(number) == 1) and 'True' or 'False'
            return {template = '<div class = "message_3d try_3d">{0}</div>', args = {try}}
        end,
        templateMessage = function(name, number)
            local try = (tonumber(number) == 1) and 'True' or 'False'
               return {template = '<div class = "message try"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Try</div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
                args = { name, try }}
        end,
        suggestion = {help = '', params = {}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 1000
    },

    coin_ = {
        command = 'coin',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, number)
            local coinSide = (tonumber(number) == 1) and 'Head' or 'Tail'
            return {template = '<div class = "message_3d coin_3d"><i class="fa-solid fa-coins"></i>   {0}</div>', args = {coinSide}}
        end,
        templateMessage = function(name, number)
            local coinSide = (tonumber(number) == 1) and 'Head' or 'Tail'
            return {template = '<div class = "message coin"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Coin</div><div class = "name">{0}</div></div><div class = "text"><i class="fa-solid fa-coins"></i>   {1}</div></div>',
            args = { name, coinSide }}
        end,
        suggestion = {help = '', params = {}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 1000
    },
    random_ = {
        command = 'random',
        enabled = true,
        customizable = true,
        use3DText = true,
        hide3DTextAfter = 8000,
        distanceMessage = 20,
        template3DText = function(name, number, min_number, max_number)
            return {template = '<div class = "message_3d random_3d">{1}<b>| {0} |</b>{2}</div>', args = {number, min_number, max_number}}
        end,
        templateMessage = function(name, number, min_number, max_number)
               return {template = '<div class = "message random"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Random</div><div class = "name">{0}</div></div><div class = "text">{2}<b> | {1} | </b>{3}</div></div>',
                args = { name, number, min_number, max_number }}
        end,
        suggestion = {help = '', params = {{name="Min Number"}, {name="Max Number"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 1000,
        min_number = -10000000,
        max_number = 10000000
    },
    announce_ = {
        command = 'announce',
        enabled = true,
        customizable = false,
        use3DText = false,
        hide3DTextAfter = 8000,
        distanceMessage = -1,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d announce_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
            return {template = '<div class = "message announce"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title">Announcement</div></div><div class = "text">{1}</div></div>',
            args = { name, text }}
        end,
        suggestion = {help = '', params = {}},
        allowed_groups = {'admin'},
        coolDown = 100
    },
    tweet_ = {
        command = 'tweet',
        enabled = true,
        customizable = true,
        use3DText = false,
        hide3DTextAfter = 8000,
        distanceMessage = -1,
        template3DText = function(name, text)
            return {template = '<div class = "message_3d tweet_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
            return {template = '<div class = "message tweet"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title"><i class="fa-solid fa-dove"></i></div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
            args = { name, text }}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        useCharacterName = true,
        onlyFirstName = false,
        coolDown = 1000

    },
    blackmarket_ = {
        command = 'blackmarket',
        enabled = true,
        customizable = true,
        use3DText = false,
        hide3DTextAfter = 8000,
        distanceMessage = -1,
        template3DText = function(name, text)
            name = 'Anonymous'
            return {template = '<div class = "message_3d blackmarket_3d">{0}</div>', args = {text}}
        end,
        templateMessage = function(name, text)
            name = 'Anonymous'
            return {template = '<div class = "message blackmarket"><div class = "time">'..Config.GetTime()..'</div><div class = "header"> <div class = "title"><i class="fa-solid fa-user-ninja"></i></div><div class = "name">{0}</div></div><div class = "text">{1}</div></div>',
            args = { name, text }}
        end,
        suggestion = {help = '', params = {{name="message"}}},
        coolDown = 1000

    },
}

Config.GetTime = function()
    local year, month, day, hour, minute, second = GetLocalTime()

    return string.format("%02d:%02d:%02d", hour, minute, second)
end

Config.GetName = function(source, characterName, onlyFirstName)
    if characterName then
        local firstName
        if GetResourceState('es_extended') == 'started' then
            local ESX = exports['es_extended']:getSharedObject()
            local xPlayer = ESX.GetPlayerFromId(source)
            if onlyFirstName then
                return string.match(xPlayer.name, "([^%s]+)") or GetPlayerName(source)
            else
                return xPlayer.name or GetPlayerName(source)
            end
        elseif GetResourceState('qb-core') == 'started' or GetResourceState('qbx_core') == 'started' then
            local qb = exports['qb-core']:GetCoreObject()
            local xPlayer = qb.Functions.GetPlayer(source)
            if onlyFirstName then
                return xPlayer.PlayerData.charinfo.firstname or GetPlayerName(source)
            else
                return xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname or GetPlayerName(source)
            end
        else
            return GetPlayerName(source)
        end
    else
    return GetPlayerName(source)
  end
end

Config.CooldownMessage = 'You can\'t use this command right now!'
Config.Notify = function(text, type)
    if GetResourceState('es_extended') == 'started' then
        local ESX = exports['es_extended']:getSharedObject()
        ESX.ShowNotification(text, type, 1200)
    elseif GetResourceState('qb-core') == 'started' or GetResourceState('qbx_core') == 'started' then
        local QBCore = exports['qb-core']:GetCoreObject()
        QBCore.Functions.Notify(text, type, 1200)
    end
end

Last updated