by Avenida Team ESX Β· QBCore Β· vRP Β· Standalone Β· oxmysql

Barber shop

A barbershop staged like a scene, with a camera the player actually controls. The character walks in, sits down, and the barber gets to work while an orbit camera frames the head. Hair, beard, overlays and the full skin-detail set, previewed live before a single dollar is spent.

Delivery Instant
Updates Free for life
Support Daily on Discord
01 Β· FEATURES

What it does

02 Β· SPECS

Technical
specifications

Framework Auto-detected QBCore Β· ESX Β· vRP Β· Standalone Β· Custom
Dependencies oxmysql ox_lib Β· ox_target Β· ox_inventory supported
In-game locales 15 included ar Β· cs Β· de Β· en Β· es Β· fr Β· id Β· it Β· nl Β· pl Β· pt-br Β· ro Β· ru Β· th Β· tr
Source Tebex Escrow Configs, locales and bridges open
Performance 0.00ms idle Nothing runs while no one is in a shop
03 Β· INCLUDED

Everything you
get

  • Fifteen locale files, shipped filled

    Your players read the script in their own language from the first start, and the files sit outside escrow so you can edit any line in production. Honest note: they are translated and reviewed by us, not proofread by native speakers of all fifteen. Tell us what reads wrong in yours and it gets fixed.

  • Seven bridges, one file each

    Framework, notifications, interaction, clothing, inventory, decorations and compat. Every file documents its targets, what it detects, and what each target costs you. Detection probes the actual export rather than the resource state, so a renamed export degrades quietly instead of throwing at boot.

  • Everything tunable stays open

    Shops, prices, blips, chair behaviour, camera sensitivity, lighting, depth of field, tutorial, sounds and every bridge. `config/*.lua`, `locales/*.lua` and `bridges/*.lua` are escrow exempt and editable in production.

  • An install report you can paste into support

    `/avenida_barber_check` prints which bridge was picked for each category, whether the tables and columns exist, and what your game build actually ships. It answers most integration questions before you have to ask them.

04 Β· DOCUMENTATION

Integration guide

01

Installation

  1. Drop the resource

    Grab the script from your Tebex account, then copy the avenida_barber/ folder into your resources directory and add ensure avenida_barber to your server config, after ensure oxmysql.

  2. Run the SQL

    Run section [A] of INSTALL.sql on your database. Section [B] is conditional, the file header says when you need it.

  3. Check the config

    Open config/config.lua. The defaults work on most servers, the one line worth checking is Config.Locale. Prices, shops and chair behaviour live next door in config/barber.lua.

  4. Verify the integrations

    Set Config.Debug = true, restart, and read the console: one line per bridge category names the target that was picked. Set it back to false once the lines match your server, the diagnostic commands it unlocks cost a frame hitch.

  5. Grant yourself the admin features

    Add add_ace group.admin avenida_barber.admin allow to your server config, then run /avenida_barber_check in game for the full install report.

02

Quickstart

Force an integration instead of detecting it

Auto-detection covers most servers, and it probes the real export rather than the resource state. On a custom stack, force the target and detection is skipped entirely.

lua
-- config/config.lua
Config.Locale    = 'en'
Config.UseOxLib  = true

Config.Framework = 'auto'   -- 'qbcore' | 'esx' | 'vrp' | 'standalone' | 'custom'
Config.Notif     = 'ox_lib' -- 'qbcore' | 'esx' | 'ox_lib' | 'okok' | 'vrp' | 'chat' | 'custom'
Config.Interact  = 'auto'   -- 'avenida' | 'ox_target' | 'qb-target' | 'standalone' | 'custom'
Config.Clothing  = 'auto'   -- 'qb' | 'illenium' | 'fivem-appearance' | 'esx_skin' | 'vrp' | 'table' | 'custom'

Config.Camera = {
    Sensitivity = 1.0,      -- rotation, zoom and height, clamped to 0.1 - 5.0
    InvertY     = false,
}
03

API Reference

Public exports grouped by domain. Each row shows the call signature and what it does, not how it does it.

Client

  • GetHairbase
    exports['avenida_barber']:GetHairbase() --> { c = collection, t = nameHash } | nil

    The hair base decoration the ped wears right now, or nil when the haircut needs none. Read it before you call ClearPedDecorations, hand it back afterwards, and the hair keeps its shading instead of turning into a flat cap.

  • GetTattoos
    exports['avenida_barber']:GetTattoos() --> { { c, t }, ... }

    Every tattoo decoration this resource owns on the ped. The barber shares the single decoration slot with the ink, so a redraw that forgets this list wipes the tattoos a player paid for.

  • GetSkinData
    exports['avenida_barber']:GetSkinData()

    The character exactly as the barber holds it in memory, hair, beard, eyebrows and their colours included. Useful to snapshot a look before a job outfit takes over.

  • ApplySkin
    exports['avenida_barber']:ApplySkin(data, ped)

    Writes a full appearance onto a ped. Pass the ped you want to dress, which can be a preview clone rather than the player, so a mirror or a character select can show the same face.

  • ApplyClothing
    exports['avenida_barber']:ApplyClothing(data, ped, temporary)

    Applies the clothing part only, and leaves face and hair untouched. Set temporary to true for a costume that must not be written to the database, a prison outfit or a disguise.

04

Recipes

Real-world copy-paste examples. Drop them into your own resource, tweak the values, ship.

The camera pivots on the head, so the same height values work whether the ped stands or sits. Negative height goes down the body. The lighting and the depth of field are what make the character read as the subject rather than a ped in a dark room.

lua
-- config/config.lua
Config.Camera = {
    Sensitivity = 1.4,          -- faster drag
    InvertY     = true,
}

Config.UI = {
    Tutorial          = true,   -- first-run tour, replayable from the toolbar
    Sounds            = true,
    Blips             = true,

    Timecycle         = 'casino_brightroom',
    TimecycleStrength = 1.0,
    TimecycleFadeMs   = 400,    -- 0 makes it snap like a light switch

    DofStrength       = 0.1,    -- false drops the per-frame SetUseHiDof call
    DofPlanes         = { 0.4, 0.7, 2.2, 4.5 },
}
05

Troubleshooting

  • QBCore, ESX and vRP, plus a standalone mode that needs no framework at all and a `custom` branch in `bridges/framework.lua` for anything else. Detection runs at startup and probes the real export. Qbox and ox_core have no dedicated branch: they run through the standalone or custom path, not through a tested target.
REVIEWS

What buyers say

5.0 16 verified reviews

  • 🐊 Benaz Spirit Roleplay

    Script de grande qualitΓ©, nos joueurs apprΓ©cient Γ©normΓ©ment ce barber shop. Ils s'en servent depuis plusieurs mois, il a Γ©tΓ© testΓ© et Γ©prouvΓ© en conditions rΓ©elles sur notre serveur. Je recommande !

    View on Discord β†—
  • Vroum Rex Studio
    View on Discord β†—
  • CarniceroDeZaun Los Santos 2080
    View on Discord β†—
  • || !xAyuβ™₯ ||
  • π•„π• π•Ÿπ•₯π•–β„‚π•£π•šπ•€π•₯𝕠 π•π€π‹π„ππ“πˆππ„ 𝐂𝐅𝐖
  • Leny.M Redstart V2

    Un support au top !

Cart
Spirit RP
Discord