Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mythicframework.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Chat events allow resources to intercept messages, add suggestions, and control the chat UI.

Server Events

chatMessage

Fired when a player sends a chat message. Can be cancelled to prevent the message from being processed.
AddEventHandler('chatMessage', function(source, author, message)
    -- Handle or cancel message
    CancelEvent()  -- Prevents default processing
end)
Parameters:
source
number
Player server ID
author
string
Player name
message
string
Message content
Example:
-- Filter profanity
local bannedWords = { 'badword1', 'badword2' }

AddEventHandler('chatMessage', function(source, author, message)
    local lower = string.lower(message)

    for _, word in ipairs(bannedWords) do
        if string.find(lower, word) then
            CancelEvent()
            Chat.Send.System:Single(source, 'Message blocked: inappropriate language')
            return
        end
    end
end)

-- Log all chat messages
AddEventHandler('chatMessage', function(source, author, message)
    Logger:Info('Chat', string.format('%s: %s', author, message), {
        file = true
    })
end)

Client Events

chat:addMessage

Add a message to the chat UI.
TriggerClientEvent('chat:addMessage', source, type, message, author, time)
type
string
Message type (see Message Types below)
message
string
Message content
author
string
Sender name
time
number
Timestamp

chat:clearChat

Clear the chat for a specific player.
TriggerClientEvent('chat:clearChat', source)

chat:addSuggestion

Add a command suggestion to the player’s chat.
TriggerClientEvent('chat:addSuggestion', source, command, help, params)
command
string
Command name with / prefix
help
string
Help text
params
table
Parameter definitions

chat:removeSuggestion

Remove a command suggestion.
TriggerClientEvent('chat:removeSuggestion', source, command)

chat:resetSuggestions

Reset all command suggestions for a player.
TriggerClientEvent('chat:resetSuggestions', source)

Message Types

TypeDescriptionVisibility
serverServer messageAll players
systemSystem messageTarget player(s)
oocOut of characterAll players
broadcastBroadcast messageAll players
911Emergency callPolice/EMS on duty
311Non-emergency callPolice/EMS on duty
dispatchDispatch messageTarget player
testsTest resultTarget player

Middleware Events

Characters:Spawning

Chat refreshes available commands when a character spawns (priority 3).
-- Internally registered at priority 3
Middleware:Add('Characters:Spawning', function(source, character)
    -- Refreshes command suggestions based on job/permissions
end, 3)

Job:Server:DutyAdd / Job:Server:DutyRemove

Chat refreshes commands when duty status changes.
AddEventHandler('Job:Server:DutyAdd', function(source)
    Chat:Refresh:Commands(source)
end)

AddEventHandler('Job:Server:DutyRemove', function(source)
    Chat:Refresh:Commands(source)
end)

Next Steps

Chat - Exports

Command registration and messaging

Middleware API

Event middleware system

Jobs Events

Job-related events