[QBCore] Tattoo Shops

Thumbnail

Don't forget to like and comment on the video to join the update channel.

Features

  • JSON-based fast data logging
  • Tattoo removal and addition
  • Q and E keys for right - left directional transitions
  • Responsive design responsive interface

  • based on qb-tattooshop and tailored to files compatible with it
    Basically ESX support can be added depending on the support status of the project

Join Us on Discord
Watch on YouTube
Shop on Tebex
GitHub

14 Likes

Nice work !

1 Like

Nice !:fire:

1 Like

can you make iit work with esx ?

1 Like

Of course, if I have time, I will look at this, probably it will be enough to just select the framework from the config and connect the character loading trigger, but since I have not tested it, we have added it for QBCore for now.

2 Likes

Amazing job

1 Like

Good one, i wanted like this release

1 Like

Nice work !

1 Like

Definetly an awesome one man, though having trouble moving my character in the menu. Can occasionally do so by using the left and right arrow key but gets a bit buggy. Is it meant to be a hold right mouse to turn your body as per your photo? just curious.

1 Like

Can you throw a sample video in the character part, we can make orientations such as right and left with the mouse according to the situation that should not normally do this

1 Like

Came to find a tattoo shop script and as soon as I saw the logo, I was excited. Same people I picked up my HUD from!

1 Like

Can you add custom tattoo textures/ytd files with his system? I ask as those screenshots have non-basegame tattoos and names, so my curiosity is piqued for sure! Any hopes or plans for functions like that in the future if it’s not an included function presently?

everything works good. only issue i cant figure out is how to save tattoos. after any server restart or skinrefresh they vanish. Im using it with qbcore. no error codes pop up the tatts just remove themselves and arent saving for me. Any help or suggestions to fix would be greatly appreciated!

1 Like

Hello mate you need to create a simple tunnel I prepared an example for you

RegisterCommand("refresh", function()
    local playerPed = PlayerPedId()
    local maxhealth = GetEntityMaxHealth(playerPed)
    local health = GetEntityHealth(playerPed)

    QBCore.Functions.TriggerCallback("SmallTattoos:GetPlayerTattoos", function(tattoo)
        if tattoo then
            TriggerEvent('Apply:Tattoo', tattoo)
        else
            print("No tattoos found for this player.")
        end
    end)

    reloadSkin(health, maxhealth) 
end)

function reloadSkin(health, maxhealth)
    local model = nil
    local gender = QBCore.Functions.GetPlayerData().charinfo.gender
    if gender == 1 then 
        model = GetHashKey("mp_f_freemode_01") 
    else
        model = GetHashKey("mp_m_freemode_01") 
    end
    RequestModel(model)
    while not HasModelLoaded(model) do 
        Citizen.Wait(500)
    end
    SetPlayerModel(PlayerId(), model)
    SetModelAsNoLongerNeeded(model)
    Citizen.Wait(1000) 
    TriggerServerEvent("qb-clothes:loadPlayerSkin")
    TriggerServerEvent("qb-clothing:loadPlayerSkin")
    SetPedMaxHealth(PlayerId(), maxhealth)
    Citizen.Wait(1000) 
    SetEntityHealth(playerPed, health)
end

The only thing you need to add between RegisterCommand. here please don’t get confused I will also add this tunnel to github for your benefit

    QBCore.Functions.TriggerCallback("SmallTattoos:GetPlayerTattoos", function(tattoo)
        if tattoo then
            TriggerEvent('Apply:Tattoo', tattoo)
        else
            print("No tattoos found for this player.")
        end
    end)

forgive my ignorance as im new to all of this but which folder do i open and ass the register command? is that within the actual script or is it something within qbcore?

find refreshskin and enter the callback between the code, it will contact the last tatto I threw and apply it to the karatere that will load it