[PAID] [RSG/VORP/REDEMRP] RCO-Chat

:scroll: RCO Chat — Next-Gen Roleplay Chat System

TEBEX: 4.99EUR - Link Here

A complete and modern chat system for RedM, featuring multiple channels, smooth animations, customizable history, and framework integration.
Built with React + TypeScript (NUI).


:rocket: Key Features

:artist_palette: Modern Interface

  • UI built with React + TypeScript
  • Inspired by RDR2 HUD design
  • Smooth open/close animations
  • Custom input box with themed background
  • Chat history with fading effect & infinite scroll

:speech_balloon: Communication Channels

  • Commands → dedicated channel for /commands
  • OOC → global out-of-character chat
  • OOC Local → local OOC within a configurable radius (Config.LocalRadius)
  • /me → character actions, yellow text + 3D text above head
  • /do → environment descriptions, red text + 3D text above head

All channels can be enabled/disabled in config.lua .

:magnifying_glass_tilted_right: Command Suggestions

  • Auto-suggestions when typing /
  • Smart filtering while typing
  • Custom icons for each suggestion
  • Automatic updates for available commands

:joystick: Controls & Navigation

  • Switch channels with [TAB]
  • Chat history with auto-close option
  • Infinite scroll for older messages
  • Re-send recent messages with ↑↓ keys
  • Close chat with ESC

:globe_showing_europe_africa: Localization

  • Multi-language support (Config.Locale)
  • JSON-based translations (pt-br, en, es , etc…)
  • Channel-specific placeholders

:shield: Security & Control

  • Anti-spam protection (SpamCooldown, SpamThreshold)
  • Message length limit (MaxLength)
  • Permission system with AceAllowed
  • Framework notifications: VORP, RedEM, QBR, RSG, QR, RPX

:gear: Configuration (config.lua)

Config = {
  OOC = true,         -- Enable OOC channel
  OOCLocal = true,    -- Enable OOC Local channel
  ME = true,          -- Enable /me
  DO = true,          -- Enable /do
  LocalRadius = 10.0, -- Local chat radius in meters
  METext3DDuration = 6, -- /me 3D text duration (seconds)
  DOText3DDuration = 6, -- /do 3D text duration (seconds)
  Locale = 'en',
  Debug = false
}

:wrench: Dependencies

  • jo_libs
  • ox_lib

:camera_with_flash: Visual Features

  • Stylish message backgrounds
  • Animated slide-in/out for chat history and messages
  • Minimal custom scrollbar
  • Unique icons for command suggestions

:white_check_mark: Why Choose RCO Chat?

:check_mark: Modern, lightweight UI (React + animated CSS)
:check_mark: Fully configurable multi-channel system
:check_mark: Framework integrations (RSG, VORP, RedEM, etc.)
:check_mark: Smart chat history with auto-close
:check_mark: Immersive 3D text for /me and /do
:check_mark: Anti-spam protections & permission system


Have you seen our last releases?

:person_in_tuxedo: RCO - Multicharacter + Spawnselector

:speech_balloon: [FREE] RCO - Dialog System

:dollar: RCO - Owned Stores

Code is accessible No (config.lua)
Subscription-based No
Lines (approximately) 1k+
Requirements ox_lib / jo_libs
Support Yes
6 Likes

Amazing!

2 Likes

Would you be able to change the location of the /do to be in the middle of the body or allow the option the change were to place it? if not its all good, Currently using the one that has a dog breeds name and its just not great and the native chat for VORP stays on users screens

1 Like

is opensource you can do it by yourself

Hello, thanks for the feedback guys, gonna do few updates today/tomorrow, such a resizermanager tool and i can for sure put the x,y,z of do and me in config.lua

1 Like

:scroll: Changelog — RCO-Chat

:new_button: Added

  • Resize Options: chat window can now be resized, with automatic cache saving.
  • Scroll in history: scrolling enabled to navigate through past messages.

:wrench: Adjusted

  • History: limited to show 4 messages at a time, improving readability and performance.

:gear: Improved

  • DrawText3D: the Z position is now adjustable, allowing more flexibility in 3D display.
2 Likes

:clipboard: CHANGELOG - RCO Chat System

:sparkles: NEW FEATURES

:confetti_ball: Configurable Color System
Text3D Color Settings:
Config.METext3DColor - Text3D color for /me commands
Config.DOText3DColor - Text3D color for /do commands
Config.METext3DFont - Text3D font for /me commands
Config.DOText3DFont - Text3D font for /do commands
UI Color Settings:
Config.MEUIColor - ME messages color in interface
Config.DOUIColor - DO messages color in interface
Config.OOCUIColor - OOC messages color in interface
Config.OOCLocalUIColor - OOC Local messages color in interface

:round_pushpin: Advanced Z-Positioning System
Separate Z offsets for each channel:
Config.METext3DZOffset - Text3D height for /me commands
Config.DOText3DZOffset - Text3D height for /do commands
Correct Text3D positioning - Now appears above the correct player
:broom: Text3D Cleanup System
Empty commands clear Text3D:
/me (no text) - Removes ME channel Text3D
/do (no text) - Removes DO channel Text3D
Perfect for status system - Allows setting long duration and clearing when needed

:wrench: TECHNICAL IMPROVEMENTS
Positioning Fix
Issue resolved: Text3D appeared above wrong player
Solution: System now uses correct coordinates for each player
Result: Each player sees Text3D in the right position
:art: Color Consistency
Unified color system between Text3D and UI
Server-side color management - All colors controlled from config.lua
Real-time color updates - Changes apply immediately without restart

:iphone: React Integration
Enhanced message handling for server messages
Dynamic color application using message.color from server
Improved event system for rco_chat:receiveMessage

:gear: CONFIGURATION OPTIONS
:art: Color Customization
:round_pushpin: Positioning Control
:gear: Font Customization

:bug: BUG FIXES
:bug: Text3D Positioning
Fixed: Text3D appeared above nearest player instead of sender
Fixed: Incorrect coordinate calculation for remote players
Fixed: Z-offset not being applied correctly

:art: Color Display
Fixed: UI colors not matching Text3D colors
Fixed: Hardcoded colors in server code
Fixed: Color inconsistency between different message types

1 Like