This is something I made for my server a couple months ago I take no credit for the UI all I’ve done is make the LUA side with clothing shops, barber shops and saved outfits the original post was from [release] fivem-appearance



This rescorce is meant to replace these two so it cannot be used while these rescorces are running

  • esx_skin
  • skinchanger


  • Delete brp- from the file name
  • Run Outfits.sql

If you’r using esx_multicharacter or most rescorces using esx_skin or skinchanger this should work out of the box thansk to edits made by Linden however if it doeas not you can use the trigger below on the client side after the player loads in order to set their skin

ESX.TriggerServerCallback('fivem-appearance:getPlayerSkin', function(appearance)

Server Config

ensure fivem-appearance
setr fivem-appearance:locale "en"



looks god man

Nice I use this on DRP currently and it’s awesome.

1 Like
  • Get this error in testing it. Also get this when picking characters

Seems that the identifier in the database for outfits is not capturing. All the other stuff in there did save.

for the first one I forgot that I slightly edited nh-context and made it so you could send more than one argument in client.lua anything else that uses it should function the same with this alteration

RegisterNUICallback("dataPost", function(data, cb)


    TriggerEvent(data.event, data.arg1, data.arg2, data.arg3)



For the second one are you triggering it on the client side?

Is the identifier int instead of varchar on my server we have a separate column for users called uid and that’s what I was using for that so when I first pushed this it was still set to int and you may have downloaded it before I fixed that

That fixed that part! Nice!

Now the other issue is where in my multicharacter should I trigger that event you included. I use esx_multicharacters by Linden if that helps.

1 Like

I haven’t switched to that yet I you should be putting it wherever skinchanger or esx skin currently is I’ll take a look at that in a bit and see if I can find where

Going to adapt for skinchanger & esx_skin. Amazing release!

I was thinking, maybe this would be easier. If you are going to do it, could you share it to me when you get it done?

How do I replace like “TriggerEvent(‘skinchanger:loadSkin’, skin)”?

Great release btw : )

1 Like


Okay, thank you!

Not sure when I’m going to switch but I think with the way he has it set up you could just replace
You’d need to test that out though

Uploading: image.png…

Yeah its just because the character preview wont load

1 Like

What about this

TriggerEvent('skinchanger:loadSkin', skin, function()
                playerPed = PlayerPedId()
                SetPedAoBlobRendering(playerPed, true)
                TriggerEvent('esx_skin:openSaveableMenu', function()
                    finished = true end, function() finished = true

Like what should this be changed to?

TriggerEvent(‘skinchanger:loadSkin’, Characters[index].skin)

I think it should be


Did you fix the issue where we had to restart the script every time we restart server?