Skip to the content
Docs

Face Implant & Clinics

On this page9

A face implant is a surgery. New face, new name, new voice — and everybody forgets that character. Money, items and job stay exactly where they were.

The basics

KeyDefaultAllowedWhat it does
Config.Implant.Enabledtruetrue / falseThe clinic and the implant exports, on or off.
Price500000dollarsPrice. A clinic entry or an export call may override it.
Account'bank''bank' · 'cash' · 'bank_or_cash'Which account pays. bank_or_cash = bank if there is enough, else cash. On ESX, cash means money.
CooldownDays60real daysBetween two implants of the same character.
AdminSetsCooldownfalsetrue / falseWhether an admin identity reset also starts the wait.

Renaming

KeyDefaultAllowedWhat it does
Renametruetrue / falseAsk for a new first and last name. Skipped when the framework cannot rename.
RequireNewNametruetrue / falseThe new full name must differ from the old one.
NameRules.MinLength2characters
NameRules.MaxLength16characters16 is the ESX default size of users.firstname / users.lastname.
NameRules.Pattern"^[%a][%a '%-]*$"a Lua patternChecked on the server. Letters, space, apostrophe and hyphen.
NameRules.Capitalizetruetrue / falseUpper-case the first letter.
NameRules.Blocked{}list of wordsWords not allowed inside a name, case-insensitive.

Identity

KeyDefaultAllowedWhat it does
RotateVoicetruetrue / falseGive the character a new voice frequency too.
ReturnToSelectorfalsetrue / falseSend the player back to the character selector after surgery.
RemoveItems{}e.g. { 'id_card', 'driver_license' }Items taken from the patient afterwards. Empty = they keep everything.
StandaloneFreetruetrue / falseStandalone servers have no money, so the surgery is free unless you wire Hooks.StandaloneCharge.
NoEditorPolicy'skip''skip' · 'block'No usable face editor on the server: skip = new identity and name, face unchanged. block = the clinic refuses.

Interaction and timing

KeyDefaultAllowedWhat it does
Interaction'auto''auto' · 'target' · 'prompt'How the player starts it. auto = the target script if one runs, else E.
InteractDistance2.0metresDistance from the clinic NPC or point at which the prompt shows.
ClinicRadius5.0metresThe server refuses to begin or commit further away than this.
PedSpawnDistance60.0metresThe clinic NPC only exists inside this range.
TokenSeconds1200 (20 min)secondsHow long a started implant stays valid — consent, editor and name form together.
SurgerySeconds15secondsLength of the surgery black screen.

Clinics

One entry per clinic. price and account are optional per-clinic overrides.

lua
Clinics = {
    {
        id     = 'zonah',
        label  = 'Face Clinic',
        coords = vector4(-449.67, -340.83, 34.50, 85.0),
        ped    = { model = 's_m_m_doctor_01', scenario = 'WORLD_HUMAN_CLIPBOARD' },
        blip   = { sprite = 61, color = 27, scale = 0.8, name = 'Face Clinic' },
        -- price   = 350000,
        -- account = 'cash',
    },
}
FieldRequiredWhat it does
idyesA unique key for this clinic. Used in logs.
labelyesShown in the prompt and the UI.
coordsyesvector4(x, y, z, heading). Stand where you want the NPC and paste the numbers.
pedno{ model = …, scenario = … }, or false for no NPC — a marker plus E at coords instead.
blipno{ sprite, color, scale, name }, or false for a secret clinic with no map icon.
pricenoOverrides Config.Implant.Price at this clinic.
accountnoOverrides Config.Implant.Account at this clinic.

The face editor

The implant opens whatever face editor your appearance script provides. Which one is used comes from Config.AppearanceSystem.

Appearance scriptFace editor
illenium-appearancefull face editor
17mov Character Systemthrough its Skin module
qs-appearanceeditor stub — we never call its own surgeon shop, which has its own price
rcore_clothing, crm-appearanceeditor stub
fivem-appearanceillenium-style API
qb-clothingno face-only editor
esx_skin / skinchangerrestricted face menu
nonenothing to open

Where there is no usable editor, NoEditorPolicy decides: 'skip' gives the character a new identity and name with the same face, 'block' makes the clinic refuse the surgery.

See Appearance & Tattoo Scripts.

Admin commands

CommandLevelWhat it does
/recognition:freeimplant <id> <reason>identityStart a free implant for a player.
recognition:implantcooldown <id|charKey> <days> <reason>identitySet or clear the wait.
recognition:resetidentity <id|charKey> <reason>identityA free identity reset with no surgery.

All three require a written reason when Config.Admin.RequireReason is on (the default), and all three are written to the admin log and, optionally, to Discord.

For surgeon scripts

If you run your own surgery shop, plastic surgeon job or story event, call the server export instead of building a second clinic:

lua
exports['5code-recognition']:StartFaceImplant(source, opts)

Add your resource to ServerConfig.Api.TrustedResources first, and call it from your server code after your own checks — never straight from a client event.

Signatures and options: Developers → Server Exports.

An interrupted surgery

The identity reset row is written before money moves. If the server crashes mid-surgery, the row is still there and the reset can be found and finished. Nothing is ever charged for a surgery that did not complete.