Production Ready

Custom Chat Text Formatting Framework

The complete configuration-driven chat system for Roblox. Role tags, dynamic leaderboards, and server-wide notifications—all from one central config.

3
Core Features
100%
Config-Driven
Auto
DataStore Sync

Framework Structure

CCTFF is organized into three script locations for clean separation of concerns:

ReplicatedStorage
CustomChatTagsAPI CustomChatTagsClientAPI CustomChatTagsConfig
ServerScriptService
CustomChatTagsDataStore.server CustomChatTagsServer.server
StarterPlayerScripts
CustomChatTagsClient.client

Player Tags

Role-based or achievement tags displayed before usernames. Players can equip multiple tags (configurable max slots).

Live Preview
[DEVELOPER] PlayerName: Check out the new update!
[Owner] GameOwner: Welcome to the server!
[TESTER] BetaTester: Found a bug in the new map.
Configuration
CustomChatTagsConfig.Tags = {
  Developer = {
    TagText = "[DEVELOPER]",
    TagColor = Color3.fromRGB(100, 255, 100),
    UsernameColor = Color3.fromRGB(255, 255, 255),
    TextColor = Color3.fromRGB(100, 255, 100),
  },
}
Server Usage
local TagAPI = require(game.ReplicatedStorage.CustomChatTagsAPI)
TagAPI:Give(player, "Developer")
TagAPI:Equip(player, "Developer")

Leaderboard Tags

Dynamic rank positions that update in real-time. Perfect for top players, VIP tiers, or seasonal events. Use %s to inject rank text.

Live Preview
[💰 Coins #1] TopPlayer: I'm first place!
[💰 Coins #2] Runner-Up: Getting closer to #1!
[💰 Coins #3] ThirdPlace: Top 3 let's go!
Configuration
CustomChatTagsConfig.LeaderboardTags = {
  TopCoins = {
    TagText = "[💰 Coins #%s]",
    TagColor = Color3.fromRGB(255, 215, 0),
    UsernameColor = Color3.fromRGB(255, 215, 0),
    TextColor = Color3.fromRGB(255, 215, 0),
  },
}
Server Usage
local TagAPI = require(game.ReplicatedStorage.CustomChatTagsAPI)
TagAPI:GiveLeaderboardTag(player, "TopCoins", "1")
-- Update when rank changes
TagAPI:UpdateLeaderboardTag(player, "TopCoins", "2")

System Messages

Server-wide notifications without a player sender. Perfect for announcements, alerts, errors, and event start/stop messages. Players can toggle visibility per message type.

Live Preview
[SYSTEM] Server restart in 5 minutes. Save your progress!
[⚠️ ALERT] Double XP event starting now!
[✓ SUCCESS] Your purchase was successful!
[✗ ERROR] Unable to connect to game server.
Configuration
CustomChatTagsConfig.SystemTags = {
  System = {
    TagText = "[SYSTEM]",
    TagColor = Color3.fromRGB(255, 255, 0),
  },
  Alert = {
    TagText = "[⚠️ ALERT]",
    TagColor = Color3.fromRGB(255, 100, 0),
  },
}
Server Usage
local TagAPI = require(game.ReplicatedStorage.CustomChatTagsAPI)
TagAPI:SendSystemMessage("ServerRestart", "System", "Server restart in 5 minutes!")

-- Client can toggle messages
local ClientAPI = require(game.ReplicatedStorage.CustomChatTagsClientAPI)
ClientAPI:UpdateClientSettings({ ServerRestart = false })

Why Choose CCTFF?

Zero Hardcoding

All tags defined in one config table. No scattered script edits.

🔄
Automatic Sync

Changes update instantly for all clients. No manual refreshes.

💾
DataStore Persistence

Tags and preferences saved automatically with retry logic.

🎨
Rich Styling

Control colors, strokes, chat bubbles, and text effects per tag.

🏆
Dynamic Leaderboards

Update player ranks in real-time without re-giving tags.

🔔
Flexible Notifications

Per-player visibility controls for system messages.

Ready to Transform Your Chat?

Get CCTFF for just $4.99 and start building professional chat experiences in minutes. Complete documentation, support, and lifetime updates included.

Purchase Now