Skip to content

StyledStrike/gmod-custom-chat

Repository files navigation

Custom Chat

A simple and customizable chat box that can format text, display images and emojis.

GLuaLint Workshop Page

Features

  • Customizable
  • Has built-in emojis
  • Supports text formatting (bold, italic, fonts, code blocks, etc.)
  • Embed image/audio files (Only loads from trusted websites by default)
  • Find text with Ctrl+F
  • Shows icons for prop models
  • Keeps the default "hands on ear when the chat is open" behaviour
  • Can be enabled/disabled at any time (Using the customchat_disable console variable)
  • (Admin Only) Suggest a theme to be used on your server
  • (Admin Only) Set custom emojis
  • (Admin Only) Set custom chat tags
  • (Admin Only) Set custom join/leave messages

⚠ A major refactor was implemented recently.

Heres some of the more notable changes:

  • Moved and renamed files, now using more appropriate names
  • Replaced all references of SChat with CustomChat
  • Made functions from the CustomChat global table use : only when necessary
  • Implemented new data save formats, save data to a separate folder
  • Written a data migration script
  • Use a dedicated library to synchonize server theme/emojis/tags across clients
  • Made the chat history panel able to be used separately
  • Store emojis in a more readable format
  • Vastly faster way to access emoji properties
  • Moved the main chat interface to a separate vgui panel
  • Made the right-click menu options work independently (so now it can show both "Copy text..." and "Copy link...", for example)
  • Theme editor overhaul & the ability to save multiple themes
  • All text is stored in language files now

Text Formatting Options

||Spoilers here||
*Italic text here*
**Bold text here**
***Bold & Italic text here***
$$rainbow text here$$
`line of code here`
{{block of code here}}
```block of code here```
[[Marquee-like advert here]]
[Link text Here](https://link-url-here.org)
<255,0,0>Red text here, and <0,0,255>blue text here

Fonts

You can change the font by typing ;fontname; before the text. (A list of fonts can be found on the workshop page.)

;comic; This will be displayed as Comic Sans

Whitelisted Sites

By default, the chat box will only load pictures from trusted websites. You can open a pull request to add more, or send a request here.

For developers

You can prevent links from certain players from embedding, by using the CanEmbedCustomChat hook on the clientside.

hook.Add( "CanEmbedCustomChat", "override_chat_embed_access", function( ply, url, urlType )
    -- return false to block embeds from "url"

    -- "urlType" will be one of these strings:
    -- "image", "audio", and "url" for other stuff

    -- example: only allow super admins to use embeds
    if not ply:IsSuperAdmin() then return false end

    -- example: prevent audio from embedding for everyone
    if urlType == "audio" then return false end
end )

Contributing

Before you open a pull request, please read this.

About

A customizable chat box for Garry's Mod.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages