Solos Multicharacter (Character Selection)

Multicharacter - into_1_2_2

FiveM | Character Selection Resource


Framework:

  • QBCore
  • ESX
  • Custom

- Supports Custom clothing, apartments, and spawn resources
- Custom (and optional) color and style options
- Customizable Events
- Supports up to 5 characters per player (configurable)
- Set custom variables for specific players (Allow higher number of characters for a specific license)

  • config located at end of this post

Get it here :point_right: Solos | Tebex :shopping_cart:



Gallery:


Config.lua
config = {}

config.framework = {
    qb      = true,
    esx     = false,
    custom  = false,
}

config.Starting_Apartments = true -- requires an apartment resource that supports this feature

config.character_creation = vector4(-1037.47, -2737.34, 20.17, 329.74) -- must be vector4, where player spawns & creates character if starting apartments is false

config.Starting_Items = { -- items that NEW characters will receive upon character creation
    ['money'] = 500,
    ['phone'] = 1,
}

---------------------------------------------------------------------------------------
---------------------------------  CUSTOM EVENTS --------------------------------------
---------------------------------------------------------------------------------------

RegisterNetEvent('solos-multicharacter:client:Starting-Apartment-Event', function(newData)
    
    TriggerEvent('apartments:client:setupSpawnUI', newData)

end)

RegisterNetEvent('solos-multicharacter:client:Spawn-Event', function(Data)
    -- logic for your spawn select resource

    -- TriggerEvent('solos-spawn:client:OpenUI')
    -- TriggerEvent('ps-housing:client:setupSpawnUI', Data)

    TriggerEvent('apartments:client:setupSpawnUI', Data)
end)

RegisterNetEvent('solos-multicharacter:client:New-SpawnEvent', function(data) -- only triggered if starting apartments is false

    TriggerEvent('solos-multicharacter:client:ESX-Character-Creation', data)

    ---- QBCORE EXAMPLE: ----

    -- local ped = PlayerPedId()

    -- DoScreenFadeOut(500)
    -- Wait(2000)
    -- SetEntityCoords(ped, config.character_creation.x, config.character_creation.y, config.character_creation.z)
    -- TriggerServerEvent('QBCore:Server:OnPlayerLoaded')
    -- TriggerEvent('QBCore:Client:OnPlayerLoaded')
    -- TriggerServerEvent('qb-houses:server:SetInsideMeta', 0, false)
    -- TriggerServerEvent('qb-apartments:server:SetInsideMeta', 0, 0, false)
    -- Wait(500)
    -- SetEntityVisible(ped, true)
    -- Wait(500)
    -- DoScreenFadeIn(250)
    -- TriggerEvent('qb-weathersync:client:EnableSync')
    -- TriggerEvent('qb-clothes:client:CreateFirstCharacter')
end)


---------------------------------------------------------------------------------------

config.max_characters = 3 -- max characters allowed (for everyone)

config.prefix = 'char' -- ESX ONLY

config.license_max = { -- cannot be greater than 5

-- any players whose license is here will be allowed the amount of characters defined
    -- ['license'] = 5, -- allows 5 characters at a time. 
    ['license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'] = 4,

    ['license:a6880df1cbd1261d327afaba27f6504d1ec467ea'] = 5,

}


--------------------------------------------------------------------------------
------ DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING ----------
--------------------------------------------------------------------------------

config.camcoords = vector4(-781.65, 335.38, 187.11, 46.38) -- must be vector4

config.peds =  {
    -- half circle 
    [1] = {
        coords = vector4(-786.12, 337.52, 187.11, 284.88), --sit tv (couch)
        scenario = false,
        dict = "anim@heists@heist_safehouse_intro@variations@male@tv",
        clip = "tv_part_one_loop",
        flag = 1,

        prop = "v_res_tre_remote",
        bone = 28422,
        pos = vector3(0.0990, 0.0170, -0.0300),
        rot = vector3(-64.760, -109.544, 18.717),
    },
    [2] = {
        coords = vector4(-787.83, 338.76, 187.11, 272.51), --leanbar behind couch
        scenario = "PROP_HUMAN_BUM_SHOPPING_CART",
        dict = false,
        clip = false,
        flag = 1,

        prop = false,
        bone = false,
        pos = false,
        rot = false,
    },
    [3] = {
        coords = vector4(-785.86, 341.29, 187.11, 178.95), --idle 7 behind couch
        scenario = false,
        dict = "anim@mp_corona_idles@male_d@idle_a",
        clip = "idle_a",
        flag = 1,

        prop = false,
        bone = false,
        pos = false,
        rot = false,

    },
    [4] = {
        coords = vector4(-784.32, 339.66, 187.11, 191.12), -- impatient behind couch, musician? party?
        scenario = false,
        dict = "timetable@reunited@ig_10",
        clip = "base_amanda",
        flag = 1,

        prop = false,
        bone = false,
        pos = false,
        rot = false,

    },
    [5] = {
        coords = vector4(-785.85, 339.38, 187.11, 233.79), -- sit 
        scenario = false,
        dict = "timetable@ron@ig_5_p3",
        clip = "ig_5_p3_base",
        flag = 1,

        prop = false,
        bone = false,
        pos = false,
        rot = false,

    },
}

config.Default = { --esx only
    ["m"] = {
    mom = 43,
    dad = 29,
    face_md_weight = 61,
    skin_md_weight = 27,
    nose_1 = -5,
    nose_2 = 6,
    nose_3 = 5,
    nose_4 = 8,
    nose_5 = 10,
    nose_6 = 0,
    cheeks_1 = 2,
    cheeks_2 = -10,
    cheeks_3 = 6,
    lip_thickness = -2,
    jaw_1 = 0,
    jaw_2 = 0,
    chin_1 = 0,
    chin_2 = 0,
    chin_13 = 0,
    chin_4 = 0,
    neck_thickness = 0,
    hair_1 = 76,
    hair_2 = 0,
    hair_color_1 = 61,
    hair_color_2 = 29,
    tshirt_1 = 4,
    tshirt_2 = 2,
    torso_1 = 23,
    torso_2 = 2,
    decals_1 = 0,
    decals_2 = 0,
    arms = 1,
    arms_2 = 0,
    pants_1 = 28,
    pants_2 = 3,
    shoes_1 = 70,
    shoes_2 = 2,
    mask_1 = 0,
    mask_2 = 0,
    bproof_1 = 0,
    bproof_2 = 0,
    chain_1 = 22,
    chain_2 = 2,
    helmet_1 = -1,
    helmet_2 = 0,
    glasses_1 = 0,
    glasses_2 = 0,
    watches_1 = -1,
    watches_2 = 0,
    bracelets_1 = -1,
    bracelets_2 = 0,
    bags_1 = 0,
    bags_2 = 0,
    eye_color = 0,
    eye_squint = 0,
    eyebrows_2 = 0,
    eyebrows_1 = 0,
    eyebrows_3 = 0,
    eyebrows_4 = 0,
    eyebrows_5 = 0,
    eyebrows_6 = 0,
    makeup_1 = 0,
    makeup_2 = 0,
    makeup_3 = 0,
    makeup_4 = 0,
    lipstick_1 = 0,
    lipstick_2 = 0,
    lipstick_3 = 0,
    lipstick_4 = 0,
    ears_1 = -1,
    ears_2 = 0,
    chest_1 = 0,
    chest_2 = 0,
    chest_3 = 0,
    bodyb_1 = -1,
    bodyb_2 = 0,
    bodyb_3 = -1,
    bodyb_4 = 0,
    age_1 = 0,
    age_2 = 0,
    blemishes_1 = 0,
    blemishes_2 = 0,
    blush_1 = 0,
    blush_2 = 0,
    blush_3 = 0,
    complexion_1 = 0,
    complexion_2 = 0,
    sun_1 = 0,
    sun_2 = 0,
    moles_1 = 0,
    moles_2 = 0,
    beard_1 = 11,
    beard_2 = 10,
    beard_3 = 0,
    beard_4 = 0
    },
    ["f"] = {
        mom = 28,
        dad = 6,
        face_md_weight = 63,
        skin_md_weight = 60,
        nose_1 = -10,
        nose_2 = 4,
        nose_3 = 5,
        nose_4 = 0,
        nose_5 = 0,
        nose_6 = 0,
        cheeks_1 = 0,
        cheeks_2 = 0,
        cheeks_3 = 0,
        lip_thickness = 0,
        jaw_1 = 0,
        jaw_2 = 0,
        chin_1 = -10,
        chin_2 = 10,
        chin_13 = -10,
        chin_4 = 0,
        neck_thickness = -5,
        hair_1 = 43,
        hair_2 = 0,
        hair_color_1 = 29,
        hair_color_2 = 35,
        tshirt_1 = 111,
        tshirt_2 = 5,
        torso_1 = 25,
        torso_2 = 2,
        decals_1 = 0,
        decals_2 = 0,
        arms = 3,
        arms_2 = 0,
        pants_1 = 12,
        pants_2 = 2,
        shoes_1 = 20,
        shoes_2 = 10,
        mask_1 = 0,
        mask_2 = 0,
        bproof_1 = 0,
        bproof_2 = 0,
        chain_1 = 85,
        chain_2 = 0,
        helmet_1 = -1,
        helmet_2 = 0,
        glasses_1 = 33,
        glasses_2 = 12,
        watches_1 = -1,
        watches_2 = 0,
        bracelets_1 = -1,
        bracelets_2 = 0,
        bags_1 = 0,
        bags_2 = 0,
        eye_color = 8,
        eye_squint = -6,
        eyebrows_2 = 7,
        eyebrows_1 = 32,
        eyebrows_3 = 52,
        eyebrows_4 = 9,
        eyebrows_5 = -5,
        eyebrows_6 = -8,
        makeup_1 = 0,
        makeup_2 = 0,
        makeup_3 = 0,
        makeup_4 = 0,
        lipstick_1 = 0,
        lipstick_2 = 0,
        lipstick_3 = 0,
        lipstick_4 = 0,
        ears_1 = -1,
        ears_2 = 0,
        chest_1 = 0,
        chest_2 = 0,
        chest_3 = 0,
        bodyb_1 = -1,
        bodyb_2 = 0,
        bodyb_3 = -1,
        bodyb_4 = 0,
        age_1 = 0,
        age_2 = 0,
        blemishes_1 = 0,
        blemishes_2 = 0,
        blush_1 = 0,
        blush_2 = 0,
        blush_3 = 0,
        complexion_1 = 0,
        complexion_2 = 0,
        sun_1 = 0,
        sun_2 = 0,
        moles_1 = 12,
        moles_2 = 8,
        beard_1 = 0,
        beard_2 = 0,
        beard_3 = 0,
        beard_4 = 0
        }
}

Other Resources:

Code is accessible Partially
Subscription-based No
Lines (approximately) ~1000
Requirements QB, ESX, Custom Framework
Support Yes

1.1 configurable ped placement and location

Shop down ?

should be fixed