ZSX Development
  • Homepage to Innovation
  • User Interface V2
    • Installation
      • Introduce
      • Integration for Chat
      • ZSX_Multicharacter Integration
      • Auto Installer
        • About
        • Overextended Library
    • Exports
      • Interfaces
        • Default Notifications
        • Help Notification
        • Notifications
        • Progress Bar
        • TextUI
          • Updating text & key
        • Point
        • Chat
          • AddMessage
          • AddUserMessage
        • 3D DUI
      • Storage
        • Gathering Storage
          • Get Color
          • Get Type
          • Get Options
          • Is Configuration Done
        • Get Current Screen
        • Is UI Busy
        • Gathering position of the interface
      • Threads
        • Interrupting Thread
      • Other
        • DisplayRadar
        • OpenConfiguration
        • OpenMainMenu
        • OpenSettings
        • IsPauseMenuActive
        • IsUIBusy
        • GetCurrentScreen
        • Cinematic
    • Configurating
      • Handling UI
        • Show / Hide UI
        • Disabling Interfaces
        • Disabling Interfaces type
        • Disabling configuration for Interface
        • Creating new status for HUD
        • Changing links
        • Custom Pause Menu Navbar
        • Removing Pause Menu user data
        • Adjusting new voice states
        • Changing between voice indicators
        • Adding new blacklisted weapon
        • Adding blacklist for vehicle model
        • Changing currency
      • Commands
        • Adding commands
      • Translating
        • Translating the resource
        • Adding translation to custom weapons
        • Translating component's type label
      • Handling Data
        • Adding more accounts to Displayers
        • Adding addon elements to Displayers
        • Creating job2 functionality
        • Changing default keybinds
      • AIO Options
      • Camera stuff
        • Creating new preset for Cinematic Mode
        • Creating new scenes for Main Menu
    • Snippets
      • ESX
        • Notification
        • TextUI
        • ShowAdvancedNotification
        • ShowHelpNotification
      • QBCore
        • Notification
        • ProgressBar
  • Multicharacter
    • Installation
      • Setting up the Appearance
      • Setting up the logo
      • Setting up table removal
    • Exports
      • Client
        • GetConfigValue
        • GetUserStorage
        • Logout
        • SetLocationsDisabled
        • isInMulticharacter
        • Initialize
      • Server
        • isInMulticharacter
        • Logout
    • Workers
    • Baseevents
    • FAQ
    • Translating the resource
    • Open source files
    • Common Issues
      • Common
      • ESX
      • Database
      • Other
  • User Interface
    • About
    • Notifications
    • Progressbar
    • Custom Initialization
    • Functions
  • Dealership
    • About
    • Installation
    • Adding a Store
    • Using Exclusive Content
    • Listeners
    • Configuration
Powered by GitBook
On this page
  1. Multicharacter

Installation

How to properly install Multicharacter resource

PreviousProgressBarNextSetting up the Appearance

Last updated 4 months ago

Changing es_extended config

Firstly, we need to apply the changes to the config file. If you're on ESX Legacy 1.12 and above find es_extended/shared/config/main.lua Any other version, go to es_extended/config.lua Find this variable:

Config.Multichar = GetResourceState("esx_multicharacter") ~= "missing"

And change it to:

Config.Multichar = true

Now you applied the core changes to the framework!

Installing the resource

Drag resource into your /resources folder. Voila!

Installing the resource

Drag resource into your /resources folder. Voila!

Installing the resource

Drag resource into your /resources folder. Head over to the Multicharacter/server/functions/characters.lua directory and find function Characters.GetIdentifier and replace the content with:

Characters.GetIdentifier = function(src, noCut)
    local identifier = GetPlayerIdentifierByType(src, 'license2') or GetPlayerIdentifierByType(src, 'license')
    assert(identifier ~= nil, '^5Invalid identifier type for config value Config.Characters.IdentifierType!\n^2Please refer to the docs: https://zsx-development.gitbook.io/docs/multicharacter/common-issues/other\n\n')
    local convertedIdentifier
    if FrameworkSelected == 'ESX' then
        if not noCut then
            local colonIndex = string.find(identifier, ":")
            convertedIdentifier = string.sub(identifier, colonIndex + 1)
        elseif noCut then
            convertedIdentifier = identifier
        end
    elseif FrameworkSelected == 'QBCore' then
        convertedIdentifier = identifier
    end

    return convertedIdentifier
end

Voila! Why those changes are crucial? QBOX prioritize identifiers starting from the license2, that way we can't just set the identifier for license2 since some percentage of the users does not have that identifier.

🎉
🎉
🎉
🎉