Introduction
Welcome to the MBT Emote Menu documentation!
MBT Emote Menu is a premium NUI replacement for the rpemotes-reborn emote engine. It replaces the default NativeUI menu with a fully custom React interface while keeping full compatibility with rpemotes-reborn's emote library — no emote data migration needed, no breaking changes to existing setups.
Key Features
1800+ Emotes, 8 Categories
Supports the full rpemotes-reborn emote library split into eight browseable categories: Emotes, Props, Dances, Shared, Expressions, Walk Styles, Animals, and Emojis. Each category can be individually shown or hidden from the menu.
Favorites & Recent Emotes
Players can mark any emote as a favourite with a single click. The Favourites tab preserves both the selection and the custom sort order across sessions using KVP storage (no SQL required). A separate Recent tab automatically tracks the last 12 played emotes (configurable). Favourites can be reordered by dragging.
Quick Bind (NUM1–NUM6)
Drag any emote onto a numbered slot in the menu to bind it to a numpad key. Pressing the bound key plays the emote immediately without opening the menu.
Emote Wheel
Hold K (configurable) to open an 8-slot wheel. Two modes available: radial (flick the mouse toward a slot — default, like a weapon wheel) and linear (scroll to cycle through slots). Release to play the selected emote. Emotes are removed from a slot by pressing X while the wheel is open.
Personas
Create up to 4 named loadouts (configurable) that each bundle a complete Quick Bind slot set and Emote Wheel assignment. Switch between personas instantly from the settings panel — one click replaces all NUM1–NUM6 and wheel slots. Stored per-player via KVP.
Two Layouts
| Layout | Description |
|---|---|
cinematic | Edge-docked, full-height panel that blends into the scene through a soft vignette |
default | Bounded, draggable floating panel — repositionable anywhere on screen |
Panel position (left/right) is independently configurable.
Trending This Week
The browse view opens with a hero spotlight showing the single most-played emote across the whole server, on a rolling 7-day window. Purely aggregate — the server counts plays, never who played what. One click plays it. Configurable via MBT.Trending.
Emote Placement
A 📍 button on each emote card lets you place an emote anywhere in the world before playing it. Click the pin, a transparent preview ped appears — move it with WASD, rotate with Q/E, raise or lower with R/G, then press Enter to walk over and play. Backspace cancels. Available on Emotes, Props, Dances, and Animals.
Open Join — Anonymous Group Emotes
When you start a dance or shared emote, every player within a configurable radius gets a small anonymous pill ("Join: [emote] [Y]"). One key and they're doing the same emote. Your name is never shown. Each player can opt out with /mbt_openjoin off. Pills dismiss automatically when you stop the emote or walk away.
What's That Emote?
Walk near someone who is emoting and a floating bubble appears above their head with the emote name and a hotkey to copy it. Off by default — enable it with MBT.Features.WhatsThat = true.
Nearby Ribbon
When at least one other player is in range, a ribbon surfaces your most-played shared emotes at the top of the menu. One click opens the Partner Finder pre-aimed at the closest player.
Playlists
Players can create named emote sequences that play automatically one after another. Playlists are stored client-side via KVP.
Partner Finder
The Shared emotes category includes a built-in partner finder panel. Players search for nearby partners directly from the UI. When a partner is selected, the shared emote invitation is sent and tracked inline with an accept/decline popup.
Animated Preview Ped
Clicking the eye icon on any emote renders a live animated ped preview in your view only, showing exactly what the emote looks like before activating it. Other players keep seeing your character normally — the hide is local-only.
Full Theme Customization
Six color tokens (Accent, Background, Card, Text, SubText, Border) are applied from MBT.Theme in config.lua. Every surface re-tints: the menu, the emote wheel, and all on-screen pills share the same accent color.
Six Languages
Built-in localization for English, Italian, Spanish, French, German, and Portuguese. Set MBT.Language in config.lua to the desired locale. Additional languages can be added by creating a new file in the locales/ folder.
Job Permissions
Individual emotes can be restricted to specific server jobs. Players without the required job see the emote greyed out with a lock icon. Framework detection is automatic (ESX → QBox → QBCore → standalone) or can be forced explicitly.
Security & Safety
- Banned emotes —
MBT.BannedEmotesfilters specific emotes from the catalog and from Open Join broadcasts, server-side - Adult / abusable emote filtering —
MBT.Features.AdultEmotesandMBT.Features.AbusableEmotes(both off by default) - Per-source rate limiting — every NetEvent is throttled per server ID to prevent flooding
- Anti-spam cooldown — short delay between back-to-back emote plays (
MBT.AntiSpam.CooldownMs, default 250ms) - Crowd protection — Open Join caps invites at the 30 closest players by default (
MBT.OpenJoin.MaxRecipients) - Anti-spoofing — server validates the initiator's state bag against the announced emote before relaying
RP Text — /me and /do Channels
Configurable chat commands that float a styled pill above the author's head, visible to nearby players within a configurable range. Multiple pills per player stack vertically. Both the command name, range, label, and pill accent color are configurable per channel. The ProvidesRpText export lets other MBT resources detect and defer to this system automatically — no duplicate command conflicts.
Photo Mode
A cinematic orbit camera opened from a camera button inside the menu. Drag to orbit around your ped, scroll to zoom, adjust FOV, toggle depth-of-field background blur, and switch between six timecycle look filters (None, Cinematic, Noir, Warm, Vibrant, Cool). Optional: post the shot to a Discord channel webhook with screenshot-basic. The Discord embed includes the player location, in-game time, a configurable server logo, and a caption.
MBT Ecosystem Integration
Optional integration with mbt_meta_clothes and mbt_wearable_props. When enabled, the UI can surface relevant outfit/prop context while browsing emotes.
Requirements
| Dependency | Notes |
|---|---|
| rpemotes-reborn | Required — MBT Emote Menu is a NUI frontend for this engine |
| OneSync | Required |
| FiveM Server Build 6116+ | Required |
| ox_lib | Optional — used for notifications if configured |
| screenshot-basic | Optional — required only for Photo Mode's "Send to Discord" button |
oxmysql is not required. All player data (favorites, recent, binds, playlists, wheel) is stored client-side via KVP — no database tables, no .sql files.
Target Audience
Designed for server owners who want a modern, polished emote interface without rebuilding their emote engine. If you already run rpemotes-reborn, you can install this resource alongside it in minutes — no configuration migration required.