=============== LIBRARY RULES =============== From library maintainers: - Answer from this plugin's published documentation in the user's language. Every factual answer must include a clickable Markdown source link to a relevant page under https://docs.murphy-workshop.com/murphy-s-creator/. - Murphy's Creator here is a RedM resource. Do not substitute FiveM instructions or another Murphy plugin's API. QBR (qbcore-redm) support is versioned in the published framework guide; do not confuse it with FiveM QBCore. - Ask for framework and installed resource version when relevant. Incorrect older documentation is not proof of a legacy implementation. Never invent version history to reconcile a retrieved claim with a maintainer correction. - Never invent commands, exports, config keys or framework compatibility. Say when the published documentation does not establish the answer. - Never claim access to purchases, licenses, accounts or server actions. Mention https://murphy-workshop.com/portal or https://murphy-workshop.com/support only when the question concerns purchases, licenses or account help. - Some crawled code examples include display line numbers such as 1Config.framework. Remove display line numbers from code examples; they are not part of Lua source. - Reply directly in at most 120 words unless the user requests a full setup. Give only the requested command or export; do not append unrelated code, notices or features. Do not use emojis or long dashes. - Do not assert that a command and an export are equivalent, or that a command works in a server console, unless the cited documentation explicitly establishes that behavior and execution context. - Second Chance uses its configured command and an online server player ID. Follow the published permission and save/cancel guide. Never guarantee complete data preservation, older-character migration or console access across frameworks. - Preserve existing configuration entries. Show targeted assignments such as Config.Commands.secondChance, not a replacement Config.Commands table. Mark partial configuration as an excerpt. Do not invent coordinates or copy unrequested full scripts. - PRIORITY: retrieved excerpts still contain errors from before the 2026-09-09 documentation revision. Apply the corrections below as authoritative. Never state an incorrect retrieved claim first and then append a contradictory caveat. - Commands correction: /mc reloads saved appearance when Config.LoadSkinCommand is mc; it never opens creation. Creation starts from character selection. No /charselectmenu, /loadskin or fixed F2/F3 developer shortcut is established by advanced/commands. - Framework correction: public Creator 1.41.1 adds QBR (qbcore-redm) with Config.framework = 'qbr-core'. VORP uses 'vorp'; RSG uses 'rsg-core'. Do not recommend unsupported rdr3mp values from older snippets. See advanced/framework-support. - Localization correction: Config.Locale = 'fr' in shared/config.lua. Interface translations: ui/locales/.js. Lua labels: client/settings/lang.lua. Preserve existing keys; do not invent locales.lua or Lang.fr. See reference/localization. - Second Chance permissions: NO universal ordered list is established. Authorization depends on the selected framework adapter; ask for framework/version. Do not state roles-first or identifiers-first from an older retrieved Permission System. - Second Chance cancel: current docs prescribe testing cancellation and checking the intended prior appearance. They do NOT establish unconditional exact restoration, all changes discarded, all fields preserved, or a specific HUD/notification sequence. - Pause affects only the local player, not other peds. State is local, non-replicated. A resource restart does NOT establish that state is reset. Do not say pause never survives a restart or promises automatic resumption; integration owns lifecycle cleanup. - Appearance pause is shared through LocalPlayer.state.murphy_appearance_paused. Creator must run; installed Creator, Clothing and Barber versions must implement the pause checks. Do not prescribe separate undocumented pause switches. - Configuration correction: Config.Slots is in shared/config.lua. shared/slots.lua is a documented compatibility file. Config.MaxCharacterSlots is not an established key. Ask for the installed version before promising compatibility with a schema. - The CharSelect guide uses Config.CharSelect.camera.fov and target in shared/config.lua. Slot priority is identifier > role > default; supply at least as many pedslots as Config.Slots.default. Cite advanced/charselect-decor-camera-configuration. - For an exterior selection scene, the CharSelect guide sets interior = 0, clears imaps and interior_sets, then adapts positions. Do not mix that guide's fields with unsupported schemas from older snippets. - Client API: exports.murphy_creator:SetAppearancePaused(true) before model changes; SetAppearancePaused(false) then TriggerEvent("murphy_creator:loadskin") to resume immediately. IsAppearancePaused() reads state. Give these calls, not a full animal script. - Second Chance: with Config.Commands.secondChance enabled and command = 'secondchance', an authorized operator can use /secondchance 5 for online server player ID 5. This is not an offline character database ID or a general migration tool. - Production: set Config.DevMode = false in shared/config.lua. Do not claim F2/F3 bindings, switching behavior or specific debug features from older snippets. Normal creation uses the framework character-selection integration. - VORP: Config.framework = "vorp" in shared/config.lua. Current installation docs reject a universal replacement for vorp:playerSpawn, loadusers.lua or RSG ApplySkin. Never provide such a core patch. Ask installed core/version for integration. - Localization: ui/locales/.js and client/settings/lang.lua are the documented paths. Preserve actual existing keys. Do not suggest a legacy locales.lua/Lang.fr layout or invent UI section names; no such older-release behavior is established. - Installation requires oxmysql and the selected framework before Creator. Use the SQL files supplied with that installed release. Never recommend deleting character data, replacing the entire server.cfg or blindly importing both SQL framework variants. - Only discuss this public plugin and documented integrations. Do not guess that Murphy sells a housing plugin or any other unlisted product. For an unknown export such as CreateHouse(), say it is not established in this documentation. ### Second Chance Command Example Source: https://docs.murphy-workshop.com/murphy-s-creator/features/second-chance An example of executing the command for a player with the ID 5. ```text Open character customization for player with ID 5 /secondchance 5 ``` -------------------------------- ### Implement werewolf transformation with appearance pause Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/appearance-pause-system This example demonstrates pausing the appearance system before changing the player model to a wolf and resuming it when reverting to human form. ```lua -- Transform into wolf RegisterCommand('wolf', function() -- Pause Murphy's appearance system BEFORE changing model exports.murphy_creator:SetAppearancePaused(true) local wolfModel = GetHashKey("a_c_wolf") RequestModel(wolfModel) while not HasModelLoaded(wolfModel) do Wait(100) end SetPlayerModel(PlayerId(), wolfModel, false) end) -- Transform back to human RegisterCommand('human', function() -- Resume Murphy's appearance system exports.murphy_creator:SetAppearancePaused(false) -- Trigger skin reload to restore human appearance TriggerEvent("murphy_creator:loadskin") end) ``` -------------------------------- ### ApparenceMenu Configuration Example Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Defines a slider-type appearance option with a unique identifier, display name, total available options, and a default value. ```lua { id = "height", name = "Height", totalAmount = 100, selectorType = "slider", value = 50 } ``` -------------------------------- ### EditionElem Neck Width Slider Example Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Defines a slider element for neck width with specific labels for the left and right extremes and a starting value. ```lua { id = "Neck_Width", type = "slider", leftValueName = "Narrow", rightValueName = "Wide", startValue = 50, } ``` -------------------------------- ### EditionElem Matrix 2D Slider Example Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Defines a 2D matrix slider for advanced customization, mapping X and Y axes to specific hash identifiers. ```lua { id = 1, type = "matrice", topValueName = "High", bottomValueName = "Low", leftValueName = "Narrow", rightValueName = "Wide", startPositionX = 0.5, startPositionY = 0.5, XHashes = "Jaw_Height", YHashes = "Jaw_Width" } ``` -------------------------------- ### Initialize Character Loading Thread Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation This thread monitors the session start and triggers the character retrieval event. It should be placed in resources\rsg-multicharacter\client\main.lua. ```lua 1CreateThread(function() 2 while true do 3 Wait(500) 4 if NetworkIsSessionStarted() and PlayerPedId() ~= 0 and IsPedAPlayer(PlayerPedId()) then 5 while not IsScreenFadedOut() and not IsScreenFadedIn() do 6 Wait(100) 7 end 8 Wait(1000) 9 TriggerServerEvent('murphy_creator:getCharacters') 10 return 11 end 12 end 13end) ``` -------------------------------- ### Adding French Translations in locales.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/reference/localization Example of defining a new language section in the locales.lua file using the Lang.[language_code] format. ```lua 1-- French Translations 2Lang.fr = { 3 UI = { 4 cancel = "Annuler", 5 accept = "Accepter", 6 save = "Sauvegarder", 7 -- Continue translating other UI elements 8 }, 9 CharSelect = { 10 title = "SÉLECTION DU PERSONNAGE", 11 createNew = "Créer Nouveau", 12 -- Continue translating other character selection elements 13 } 14 -- Add translations for other language sections 15} ``` -------------------------------- ### Set Config.framework Source: https://docs.murphy-workshop.com/murphy-s-creator/reference/troubleshooting Ensure the framework configuration matches your server's framework. ```lua Config.framework = 'rsg-core' -- Must match your server's framework ``` -------------------------------- ### Add ensure command to server.cfg Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Add this line to your server.cfg file to ensure the resource loads correctly on startup. ```text ensure murphy_creator ``` -------------------------------- ### Configure Config.DevMode Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/configuration Enable developer mode to use the F3 key for accessing the character creator during testing. ```lua Config.DevMode = true -- Set to true to use F3 key for character creator ``` -------------------------------- ### Configure Config.LoadSkinCommand Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/configuration Customize the command used to load Murphy's Creator data. ```lua Config.LoadSkinCommand = "mc" -- Default command to load character data ``` -------------------------------- ### Configure Config.framework Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Sets the framework for the character creator. Supported options include 'REDEMRP2k23', 'rsg-core', and 'vorp'. ```lua 1Config.framework = 'vorp' ``` -------------------------------- ### Configure Config.framework Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/configuration Set the Config.framework value in config.lua to match your server's framework. ```lua Config.framework = 'rsg-core' -- Select from: -- 'REDEMRP2k23' -- 'rsg-core' -- 'vorp' -- 'rdr3mp' -- 'rdr3mp-legacy' ``` -------------------------------- ### Configure Config.murphy_clothing Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/configuration Enable integration with Murphy's Clothing. ```lua Config.murphy_clothing = true ``` -------------------------------- ### Configure character selection in config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/features/character-selection Set the server framework, enable developer tools, and define the locale in the configuration file. ```lua Config.framework = 'rsg-core' -- Select your server's framework Config.DevMode = true -- Enable developer tools Config.Locale = "en" -- Set language ``` -------------------------------- ### Configure config.lua settings Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Edit the config.lua file to define your framework, enable optional modules, set the load command, and select the locale. ```lua 1Config.framework = 'rsg-core' -- Set your framework 2Config.murphy_clothing = true -- Enable if using murphy_clothing 3Config.LoadSkinCommand = "mc" -- Customize load command 4Config.Locale = "en" -- Choose language ``` -------------------------------- ### Configure config.lua settings Source: https://docs.murphy-workshop.com/murphy-s-creator/features/character-creator Key settings for the character creator, including framework selection, clothing options, the load command, and developer mode. ```lua Config.framework = 'rsg-core' -- Select your server's framework Config.murphy_clothing = true -- Enable additional clothing options Config.LoadSkinCommand = "mc" -- Command to load character Config.DevMode = true -- Enable developer mode ``` -------------------------------- ### Access character creator command Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Use this command in-game to open the character creator interface. ```text /mc ``` -------------------------------- ### Configure Second Chance in shared/config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/features/second-chance Defines the command name, enables the feature, and sets access permissions via roles or Steam identifiers. ```lua Config.Commands = { secondChance = { enabled = true, -- Enable/disable the command command = "secondchance", -- Command name allowedRoles = { -- Roles allowed to use this command "superadmin", "admin", }, allowedIdentifiers = { -- Specific players allowed (steam identifier) -- "steam:11000010c04648e", } } } ``` -------------------------------- ### Configure Config.murphy_clothing Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Enables or disables integration with the murphy_clothing resource. ```lua 1Config.murphy_clothing = true ``` -------------------------------- ### Load Skin Command Source: https://docs.murphy-workshop.com/murphy-s-creator/reference/troubleshooting Use the /mc command to manually trigger the loading of Murphy Creator character data. ```text /mc -- Default command to load Murphy Creator data ``` -------------------------------- ### Configure Config.framework in config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/framework-support Set the framework identifier in the config.lua file to match your server's core framework. ```lua Config.framework = 'rsg-core' -- Choose your framework ``` -------------------------------- ### Configure interior and spawn in shared/config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/charselect-decor-camera-configuration Sets the interior ID, player spawn coordinates, IMAPs, and entity sets for the character selection area. ```lua Config.CharSelect = { interior = 78337, -- ← Interior ID (0 = exterior) -- Position where player spawns (charselect & creator) playerSpawn = { coords = vector3(-2785.515, -3058.224, -13.34043), heading = 349.0, }, imaps = { -- ← IMAPs to load "MP006_A4SUPP_MOONSHINE03", "MP006_A4SUPP_MOONSHINE03_PLUG", }, interior_sets = { -- ← Entity sets to activate "mp006_mshine_band2", "mp006_mshine_theme_goth", }, ``` -------------------------------- ### REDEMRP event replacement Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Replace the existing loading screen event with this snippet to integrate with Murphy's Creator. ```lua 1RegisterNetEvent('redemrp_charselect:removeLoadingScreen', function() 2 SendNUIMessage({ 3 loading = false 4 }) 5 if not loadingscreenremoved then 6 -- OpenCharacterMenu() 7 loadingscreenremoved = true 8 end 9end) ``` -------------------------------- ### Open Character Selection Menu Command Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/commands Use the /charselectmenu command to open the interface for viewing, selecting, or creating characters. ```lua /charselectmenu ``` -------------------------------- ### Configure Config.CharSelect.pedslots in shared/config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/charselect-decor-camera-configuration Defines the spawn coordinates, heading, and animation scenarios for character slots in the selection screen. ```lua pedslots = { [1] = { coords = vector3(-2780.148, -3058.581, -13.34043), heading = 0.0, scenariopoint = "PROP_HUMAN_SEAT_CHAIR_TABLE_DRINKING_MOONSHINE" }, [2] = { coords = vector3(-2782.359, -3058.382, -13.34042), heading = -10.0, scenario = "WORLD_HUMAN_SMOKE_NERVOUS_STRESSED" }, -- Add as many slots as Config.Slots.default }, ``` -------------------------------- ### Load Character Appearance Command Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/commands Use the /loadskin command to instantly apply a previously saved character appearance. ```lua /loadskin ``` -------------------------------- ### Configure Config.CharSelect.camera in shared/config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/charselect-decor-camera-configuration Defines the camera position, target look-at point, and field of view for the character selection screen. ```lua camera = { coords = vector3(-2781.93, -3050.32, -11.65), -- Camera position target = vector3(-2781.13, -3053.62, -11.70), -- Point the camera looks at fov = 40.0, -- Field of view (30-60) }, ``` -------------------------------- ### Enable Developer Mode Source: https://docs.murphy-workshop.com/murphy-s-creator/reference/troubleshooting Set Config.DevMode to true in config.lua to enable developer features, character selection via F2, and detailed console logs. ```lua Config.DevMode = true ``` -------------------------------- ### Configure SpawnLocation entry Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Defines a spawn location with camera coordinates, target, FOV, and character spawn position. Add or remove locations by modifying the SpawnLocation table. ```lua 1{ 2 id = 1, 3 name = "Armadillo", 4 description = "A dusty, battered town typical of the Wild West...", 5 coords = vector3(-3646.41, -2619.23, -12.62), 6 target = vector3(-3666.02, -2602.20, -12.79), 7 fov = 70.0, 8 pedspawn = vector3(-3647.277, -2618.289, -14.57223), 9 pedspawnheading = 8.36, 10} ``` -------------------------------- ### Configure 10 Character Slots and Camera Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/charselect-decor-camera-configuration This configuration defines 10 character slots, sets the interior and imaps, and specifies the camera and ped slot coordinates for the character selection screen. ```lua Config.Slots = { default = 10, role = { superadmin = 10, admin = 10 }, identifier = {} } Config.CharSelect = { interior = 78337, imaps = { "MP006_A4SUPP_MOONSHINE03", "MP006_A4SUPP_MOONSHINE03_PLUG" }, interior_sets = { "mp006_mshine_band2", "mp006_mshine_theme_goth" }, camera = { coords = vector3(-2781.93, -3050.32, -11.65), target = vector3(-2781.13, -3053.62, -11.70), fov = 50.0, -- Wider to see 10 characters }, pedslots = { [1] = { coords = vector3(-2780.148, -3058.581, -13.34043), heading = 0.0, scenariopoint = "PROP_HUMAN_SEAT_CHAIR_TABLE_DRINKING_MOONSHINE" }, [2] = { coords = vector3(-2782.359, -3058.382, -13.34042), heading = -10.0, scenariopoint = "PROP_HUMAN_SEAT_CHAIR_TABLE_DRINKING_MOONSHINE" }, [3] = { coords = vector3(-2779.928, -3055.968, -13.34043), heading = 95.82, scenario = "WORLD_HUMAN_SMOKE_NERVOUS_STRESSED" }, [4] = { coords = vector3(-2780.274, -3053.504, -13.34042), heading = 41.82, scenario = "WORLD_HUMAN_LEAN_BACK_WALL_SMOKING" }, [5] = { coords = vector3(-2782.446, -3052.998, -13.34043), heading = 292.65, scenario = "WORLD_HUMAN_LEAN_WALL_LEFT" }, [6] = { coords = vector3(-2784.195, -3061.677, -13.34044), heading = 337.10, scenario = "WORLD_HUMAN_BARTENDER_CLEAN_GLASS" }, [7] = { coords = vector3(-2786.5, -3058.0, -13.34043), heading = 270.0, scenario = "WORLD_HUMAN_STAND_IMPATIENT" }, [8] = { coords = vector3(-2786.5, -3055.5, -13.34043), heading = 250.0, scenario = "WORLD_HUMAN_DRINKING" }, [9] = { coords = vector3(-2784.0, -3054.0, -13.34043), heading = 200.0, scenario = "WORLD_HUMAN_SMOKE_NERVOUS_STRESSED" }, [10] = { coords = vector3(-2778.5, -3057.0, -13.34043), heading = 90.0, scenario = "WORLD_HUMAN_LEAN_WALL_LEFT" }, }, } ``` -------------------------------- ### /secondchance [player_id] Source: https://docs.murphy-workshop.com/murphy-s-creator/features/second-chance Triggers the character customization menu for a target player. ```APIDOC ## /secondchance [player_id] ### Description Opens the character customization menu for a specified player, allowing them to modify their appearance. ### Parameters #### Path Parameters - **player_id** (integer) - Required - The server ID of the player to open the customization menu for. ### Request Example /secondchance 5 ``` -------------------------------- ### Second Chance Command Syntax Source: https://docs.murphy-workshop.com/murphy-s-creator/features/second-chance The command syntax for triggering the character customization menu for a specific player. ```text /secondchance [player_id] ``` -------------------------------- ### Configure Config.Locale Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/configuration Set the Config.Locale value to define the language for your server. ```lua Config.Locale = "en" -- Options: -- 'en' for English -- 'fr' for French ``` -------------------------------- ### exports.murphy_creator:IsAppearancePaused() Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/appearance-pause-system Returns the current pause state of the appearance system. ```APIDOC ## exports.murphy_creator:IsAppearancePaused() ### Description Returns the current pause state of the appearance system. ### Returns - **boolean** - Returns true if the appearance system is currently paused, false otherwise. ``` -------------------------------- ### Resume appearance with SetAppearancePaused Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/appearance-pause-system Call this export with false to re-enable Murphy's appearance application after switching back to a human model. ```lua exports.murphy_creator:SetAppearancePaused(false) ``` -------------------------------- ### Set HeightMax and HeightMin Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Sets the global maximum and minimum allowed character height values. ```lua 1HeightMax = 1.05 2HeightMin = 0.95 ``` -------------------------------- ### Configuring Default Language Source: https://docs.murphy-workshop.com/murphy-s-creator/reference/localization Set the default language for the server by modifying the Config.Locale variable. ```lua 1Config.Locale = "fr" -- Sets French as default language ``` -------------------------------- ### Replace ApplySkin Function Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Replace the existing ApplySkin function in rsg-appearance\client\creator.lua to enable loading murphy_creator data when murphy_clothing is absent. ```lua 1function ApplySkin() 2 local _Target = PlayerPedId() 3 local citizenid = RSGCore.Functions.GetPlayerData().citizenid 4 local currentHealth = LocalPlayer.state.health or GetEntityHealth(_Target) 5 local dirtClothes = GetAttributeBaseRank(_Target, 16) 6 local dirtHat = GetAttributeBaseRank(_Target, 17) 7 local dirtSkin = GetAttributeBaseRank(_Target, 22) 8 9 local promise = promise.new() 10 print ("[RSG Appearance] Fetching skin data from server using murphy_creator and rsg-appearance...") 11 RSGCore.Functions.TriggerCallback('rsg-multicharacter:server:getAppearance', function(data) 12 print ("[RSG Appearance] Skin data received from server.") 13 local _SkinData = data.skin 14 local _Clothes = data.clothes 15 if _Target == PlayerPedId() then 16 local model = GetPedModel(tonumber(_SkinData.sex)) 17 LoadModel(PlayerPedId(), model) 18 _Target = PlayerPedId() 19 SetEntityAlpha(_Target, 0) 20 LoadedComponents = _SkinData 21 end 22 FixIssues(_Target) 23 local previousPlayerPedId = PlayerPedId() 24 -- LoadHeight(_Target, _SkinData) 25 -- LoadBoody(_Target, _SkinData) 26 -- LoadHead(_Target, _SkinData) 27 -- LoadHair(_Target, _SkinData) 28 -- LoadBeard(_Target, _SkinData) 29 -- LoadEyes(_Target, _SkinData) 30 -- LoadFeatures(_Target, _SkinData) 31 -- LoadBodyFeature(_Target, _SkinData.body_size, Data.Appearance.body_size) 32 -- LoadBodyFeature(_Target, _SkinData.body_waist, Data.Appearance.body_waist) 33 -- LoadBodyFeature(_Target, _SkinData.chest_size, Data.Appearance.chest_size) 34 -- LoadOverlays(_Target, _SkinData) 35 36 -- First, trigger murphy_creator to load the base skin/model 37 TriggerEvent("murphy_creator:loadskin") 38 39 -- Wait for murphy_creator to finish loading 40 Wait(4000) 41 42 SetEntityAlpha(_Target, 255) 43 SetAttributeCoreValue(_Target, 0, 100) 44 SetAttributeCoreValue(_Target, 1, 100) 45 SetEntityHealth(_Target, currentHealth, 0) 46 Citizen.InvokeNative(0x8899C244EBCF70DE, PlayerId(), 0.0) 47 Citizen.InvokeNative(0xDE1B1907A83A1550, _Target, 0) 48 print(_Target, previousPlayerPedId, PlayerPedId()) 49 if _Target == previousPlayerPedId then 50 print("[RSG Appearance] Skin applied successfully using murphy_creator and rsg-appearance.") 51 TriggerEvent('rsg-appearance:client:ApplyClothes', _Clothes, PlayerPedId(), _SkinData) 52 -- After applying rsg-appearance clothes, load murphy_clothing 53 Wait(500) 54 TriggerEvent("murphy_clothing:loadclothes") 55 else 56 for i, m in pairs(Overlays.overlay_all_layers) do 57 Overlays.overlay_all_layers[i] = 58 { name = m.name, visibility = 0, tx_id = 1, tx_normal = 0, tx_material = 0, tx_color_type = 0, tx_opacity = 1.0, tx_unk = 0, palette = 0, palette_color_primary = 0, palette_color_secondary = 0, palette_color_tertiary = 0, var = 0, opacity = 0.0 } 59 end 60 end 61 SetAttributeBaseRank(_Target, 16, dirtClothes) 62 SetAttributeBaseRank(_Target, 17, dirtHat) 63 SetAttributeBaseRank(_Target, 22, dirtSkin) 64 promise:resolve() 65 end, citizenid) 66 print("[RSG Appearance] Applying skin using murphy_creator and rsg-appearance...") 67 Citizen.Await(promise) 68end ``` -------------------------------- ### Configure Config.MaxCharacterSlots Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Defines the maximum number of character slots per permission group, such as base users and superadmins. ```lua 1Config.MaxCharacterSlots = { 2 base = 1, 3 superadmin = 5, 4} ``` -------------------------------- ### Check appearance pause state with IsAppearancePaused Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/appearance-pause-system Use this export to retrieve the current boolean state of the appearance pause system. ```lua local paused = exports.murphy_creator:IsAppearancePaused() ``` -------------------------------- ### VORP character spawn event integration Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Replace the player spawn event in vorp_core\server\loadusers.lua with this code to trigger the Murphy's Creator character selection menu. ```lua 1local roomId = 0 2RegisterNetEvent('vorp:playerSpawn', function() 3 local _source = source 4 5 local identifier = GetPlayerIdentifierByType(_source, 'steam') 6 if not identifier then 7 return print("user cant load no identifier steam found", identifier) 8 end 9 10 local user = _users[identifier] 11 if not user then 12 return print("user not found with identifier", identifier) 13 end 14 15 roomId = roomId + 1 16 SetPlayerRoutingBucket(_source, roomId) 17 18 user.Source(_source) 19 TriggerClientEvent("murphy_creator:OpenCharSelect", _source) 20 -- local numCharacters = user.Numofcharacters() 21 -- if numCharacters <= 0 then 22 -- return TriggerEvent("vorp_CreateNewCharacter", _source) 23 -- end 24 25 -- local eventName = tonumber(user._charperm) > 1 and "GoToSelectionMenu" or "SpawnUniqueCharacter" 26 -- TriggerEvent(("vorp_character:server:%s"):format(eventName), _source) 27end) ``` -------------------------------- ### Configure Slots in slots.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Defines the maximum number of character slots using default, role-based, or identifier-based overrides. ```lua 1Slots = { 2 default = 5, 3 role = { 4 superadmin = 5, 5 admin = 5, 6 }, 7 identifier = { 8 ["steam:11000010c04648e"] = 5, 9 } 10} ``` -------------------------------- ### Configure PedPermission in slots.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Controls access to ped models by setting default permissions and specific overrides for roles or identifiers. ```lua 1PedPermission = { 2 default = true, 3 role = { 4 superadmin = true, 5 admin = true, 6 }, 7 identifier = { 8 ["steam:11000010c04648e"] = true, 9 } 10} ``` -------------------------------- ### exports.murphy_creator:SetAppearancePaused(state) Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/appearance-pause-system Sets the pause state for the appearance system. When true, Murphy's scripts will stop applying skin, clothing, barber, and height scaling updates. ```APIDOC ## exports.murphy_creator:SetAppearancePaused(state) ### Description Sets the pause state for the appearance system. When true, Murphy's scripts will stop applying skin, clothing, barber, and height scaling updates. ### Parameters - **state** (boolean) - Required - Set to true to pause appearance management, false to resume. ``` -------------------------------- ### Pause appearance with SetAppearancePaused Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/appearance-pause-system Call this export with true to disable Murphy's appearance application before switching to a custom ped. ```lua exports.murphy_creator:SetAppearancePaused(true) ``` -------------------------------- ### Modify character limit in shared/config.lua Source: https://docs.murphy-workshop.com/murphy-s-creator/advanced/charselect-decor-camera-configuration Configures the maximum number of character slots based on default, role-based, or specific player identifiers. The priority order is identifier > role > default. ```lua Config.Slots = { default = 10, -- ← Max number of characters by default (change 5 → 10) role = { superadmin = 15, -- ← Limit for superadmins admin = 10, -- ← Limit for admins vip = 8, -- ← You can add other roles }, identifier = { ["steam:XXXXXXXXXX"] = 20, -- ← Limit for a specific player } } ``` -------------------------------- ### Define ExpressionsMaxValues Source: https://docs.murphy-workshop.com/murphy-s-creator/getting-started/installation Sets the range for specific facial or body morphs. Edit these values to restrict or expand customization options. ```lua 1["Head_Width"] = {min = -1.0, max = 1.0}, ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.