Skip to main content
nex_scalemenu lets players resize their character’s height and build in real time through a modern NUI. A cinematic camera flies in around the ped, you can click-and-drag anywhere outside the menu to spin the ped 360 degrees, and a palette of presets gets you close before you fine-tune with the sliders. Nothing persists until you confirm, and everything saves per character to MySQL. The UI ships pre-built and ready to use — there is no build step, no Node, npm, or Bun, and no dependencies beyond oxmysql. Drop the folder in, ensure it, done.

Features

  • Two-axis scaling — independent height and body axes. Width and depth scale with body, vertical with height.
  • Cinematic camera — smooth fly-in / fly-out around the ped with vertical tracking that follows the height slider.
  • Drag-to-rotate — click anywhere outside the menu and drag to spin the ped a full 360 degrees.
  • Preset palette — Child, Petite, Default, Tall, Towering, Giant, fully configurable in config.lua.
  • Live preview — sliders update the ped immediately, and nothing persists until you confirm.
  • Multiplayer sync — other players see your scale, and new joiners receive all current scales on connect.
  • Per-character MySQL persistence — saved via oxmysql in the nex_scalemenu table, keyed by your framework’s character identifier.
  • Tiered permissions — disabled by default. When enabled, layered as defaultPermissions to ACE to identifier whitelist to Discord roles.
  • Gender lock — restrict the menu to male, female, or either.
  • Weapon block — disables attack, aim, melee, and weapon-wheel controls while the menu is open.
  • Drag-and-drop — single folder, single ensure, no build, no schema setup.

Requirements

RequirementNotes
FiveM serverAny recent artifacts
oxmysqlRequired. Must start before this resource
ESX / QBCore / QboxOptional. Auto-detected, falls back to standalone
Framework detection is automatic. Qbox and QBCore key persistence by citizenid, ESX by identifier, and standalone by the player’s license.

How it works

When a player joins, the resource reads their stored scale from MySQL and syncs it to everyone. Opening the menu with /scale shows a live preview driven by the sliders and presets. On confirm, the new scale is broadcast to all players and written to the nex_scalemenu table. A default scale (1.0 / 1.0) deletes the row instead of storing a no-op, so the table never fills with default entries.

In this section

  • Installation — drag-and-drop install and server.cfg order
  • Configuration — the config.lua table, presets, camera, UI tokens, and locales
  • Permissions — the layered permission stack and the four action names
  • Commands/scale and /resetscale, and their permissions
  • Troubleshooting — common issues and fixes