Biyei Scripts
Biyei Radio menu and members overlay preview

Radio

v1.0.0

Compact pma-voice radio with a live members overlay, talking animations, custom sounds, and full framework/inventory auto-detection.

ESXQBCoreQboxStandalonepma-voicebiyei_notificacionesoptional

A compact radio for FiveM, fully compatible with pma-voice, with a Vite + React + Tailwind UI.

The menu sits on the right (power, join/leave frequency, volume, animation and sound pickers, anonymous/streamer toggles) and a members overlay sits left-center, always visible while connected, showing who's on the frequency and who's currently talking (animated equalizer).

Note

public/framework.lua and public/inventory.lua are the only files you're expected to touch to adapt this to your server — the rest of the resource doesn't hardcode any framework or inventory. See the Configuration section below.

Features

  • ⚙️ Plug & Play Auto-Detection — native compatibility with ESX, QBCore, and QBox, plus ox_inventory, qb-inventory, qs-inventory, and origen_inventory. No configuration switches needed.

  • 🎨 Modern UI Design — compact dark-theme menu where every border, glow, slider, and scrollbar is derived from a single accent color in the config.

  • 📊 Live Members Overlay — see everyone on your frequency in real time, with an animated equalizer next to whoever is talking.

  • 🕵️ Anonymous Mode — hides your real name from the frequency, showing a randomized Anonimo ### tag instead.

  • 🔒 Streamer Mode — masks the frequency itself like a password, both in the input and in the overlay, safe to show on stream.

  • 🎬 Talking Animations & Props — 3 editable presets (standard, hand-to-mouth, shoulder mic), each applied to pma-voice and paired with a prop attached to the ped's hand while transmitting.

  • 🎵 Custom Radio Sounds — 11 ready-to-use start/finish sound effects (beep, Motorola, police, military, click…), kept outside the web bundle so rebuilding the UI never wipes them out.

  • 🚑 Smart Death Handling — auto-compatible "downed/incapacitated" detection (native checks, plus wasabi_ambulance, qb-ambulancejob, and esx_ambulancejob out of the box) that can auto-disconnect you or block the radio while downed. Toggle it on/off with a single Config.DeadDetection switch, or replace the check in public/dead.lua with your own integration.

  • 🎮 Walk While Using — optional setting to keep moving with the menu open; the mouse still drives the UI, and movement only locks while typing in a field.

  • 🧩 Full Integration Layer — client & server exports, a replicated LocalPlayer.state.biyeiRadio state bag, and events (powerChanged, frequencyChanged, transmitting, membersChanged) so any other script can hook into the radio without touching the UI.

  • 🌐 Multi-Language Support — Spanish and English included out of the box, easily expandable via plain locales/<code>.lua files.

  • 🔢 Decimal Frequencies — configurable decimal precision (e.g. 1.1, 25.75) via Config.FrequencyDecimals.

  • 📦 Optional Item Requirement — gate the menu and frequency joins behind an inventory item, with a periodic server-side check that kicks you out if you lose it.

Requirements

  • pma-voice

    Must be started before this resource — handles all radio audio, volume, and talking animations.

  • ESX, QBCore, or QBox (auto-detected)

    Optional. Only used to resolve the player's full name for the members list — the radio itself works standalone.

  • ox_inventory, qb-inventory, qs-inventory, or origen_inventory (auto-detected)

    Only needed if Config.RequireItem = true.

  • biyei_notificaciones

    Optional. Falls back to a built-in notification if it isn't installed.