API & Configuration
API & Configuration
Ranks
Location: Handler > Ranks
Assign custom tags and colors to players based on their UserId or Group Rank.
Ranks.new()
:forUser(123456789) -- userId or {userId, userId...}
:setTag("VIP") -- tag name
:setTagColor(Color3.fromRGB(255, 0, 255)) -- tag color
:setNameColor(Color3.fromRGB(0, 255, 255)) -- main message color
:register() -- register
Channels
Location: Handler > Channels
Create custom chat channels with flexible access controls.
Channel.new()
:setName("General")
:setAccess("everyone") -- "everyone" | "friends" | UserId | {UserId, ...}
:setRemovable(false)
:setTabColor(Color3.new(1, 0, 0))
:register(onChannelSwitch) -- Must be LAST
Access Options:
"everyone"- All players"friends"- Friends onlyUserId- Single user{UserId, ...}- Multiple users
Commands
Location: Handler > Commands
Create custom chat commands with aliases and descriptions.
Command.new()
:setName("help")
:setAliases({"?"})
:setDescription("Show available commands")
:bindAction(function(args, uiRefs)
_G.Message.new()
:setMessage("Commands: /w, /clear, /console, /help")
:send()
return true
end)
:register() -- Must be LAST
System Messages
Location: Handler > SystemMessages
Send styled system messages to any channel.
local Message = _G.Message
Message.new()
:setSender("NovaChat")
:setNameColor(Color3.fromRGB(255, 215, 0))
:setBodyColor(Color3.fromRGB(255, 215, 0))
:setMessage('<font color="#d4d4d4">Welcome to the server!</font>')
:setChannel("General")
:setCore(true) -- Survives /clear
:setLifetime(5) --d Auto-remove after 5 seconds
:send() -- Must be LAST
Configuration
Location: Handler > Data > Config
You can edit chat using configurations.
local config = {
NovaChatEnabled = true, -- If false, disables NovaChat entirely
CoreChatEnabled = true, -- If false, disables original ROBLOX chat entirely
ChannelsEnabled = true, -- If false, disables all NovaChat channels
BubbleChatEnabled = true, -- If false, disables bubble chat
MarkdownEnabled = true, -- If false, disables markdown
RanksEnabled = true, -- If false, disables ranks
VerifiedBadgeEnabled = true, -- If false, disables verified badges
PremiumBadgeEnabled = true, -- If false, disables premium badges
CoreBridgeEnabled = true, -- If false, disables a "bridge" between NovaChat and the ROBLOX Core Chat
AutoScrollEnabled = true, -- If false, disables autoscrolling when receiving messages
AgeGroups = false, -- Requires Chat & Voice Groups API in: Experinece Settings > Communication > Enable Text & Voice Chat groups APIs
RegionalRestrictions = false, -- If false, doesnt allow players from the restricted regions to chat
ProximityChat = false, -- If true, only allows players within a certain distance to chat (UNFINISHED)
ProximityDistance = 30, -- Distance in studs for ProximityChat (UNFINISHED)
SettingsEnabled = true, -- If false, disables the Settings UI
PlayerPrefix = "DN", -- DN: DisplayName, UN: Username, if DN, then shows displayname in chat, elseif UN, then shows username in chat.
MentionHighlightEnabled = true, -- If true, highlights your name in chat messages
MentionColor = "#FFD700", -- Hex color for mentions
Highlights = {
Mention = { Color = Color3.fromRGB(255, 170, 0), Transparency = 0.85, Pulse = true }, -- Mention highlight settings
System = { Color = Color3.fromRGB(50, 50, 50), Transparency = 0.7, Pulse = false }, -- System message settings
Admin = { Color = Color3.fromRGB(255, 0, 0), Transparency = 0.8, Pulse = true }, -- Admin message settings
Team = { Color = Color3.fromRGB(0, 255, 100), Transparency = 0.9, Pulse = false }, -- Team message settings
}, -- Highlights for different message types
AntiFloodEnabled = true, -- If true, enables the anti-flood system
-- Spam Settings
FloodDecayTime = 4, -- Time while flooding
MaxMessagesPerDecay = 4, -- Max messages per decay
-- Timing
FadeDelay = 5, -- Time in seconds for fading out
TextFadeDelay = 25, -- Time in seconds for fading out the text
BubbleLifetime = 15, -- Lifetime (in seconds) of bubbles
BubbleHideDistance = 40, -- Studs. Beyond this text becomes "..."
MaxViewDistance = 100, -- Studs. Beyond this the bubble is invisible (Optional)
-- official codes from core scripts
VerifiedEmoji = utf8.char(0xE000), -- Verified Emoji, Dont change
PremiumEmoji = utf8.char(0xE001), -- Premium Emoji, Dont change
-- Visuals
SystemColor = Color3.fromRGB(200, 200, 200), -- System messages color
WhisperColor = Color3.fromRGB(170, 0, 255), -- Whisper messages color
ErrorColor = Color3.fromRGB(245, 50, 50), -- Error messages color
CodeColor = "#FF7800", -- Code block color
CodeFont = "Michroma", -- Code block font
MaxBubbleWidth = 250, -- Max bubble width
}
return config