Inicio › Documentación › Personalización · origen_titlemenu
La carpeta custom/ gestiona la integración con el framework, la aplicación de skins, la lógica de aparición y los logs sin tocar el núcleo. Todos los ficheros están en escrow_ignore, así que sobreviven a las actualizaciones.
custom/
├── client/
│ └── client.lua — notifications, skin application, character creation, post-spawn hook
└── server/
├── function.lua — last position query, ESX character creation query
├── server.lua — starter items, slot commands, phone number helpers
└── logs.lua — Discord webhook loggingShowNotification(msg)Muestra una notificación al jugador local. Delega en Config.Framework.
function ShowNotification(msg)
-- 'qbcore' → TriggerEvent('QBCore:Notify', msg)
-- 'esx' → ESX.ShowNotification(msg)
endCreatePlayer()Se llama cuando un personaje nuevo debe abrir el creador de apariencia. Delega en Config.Framework:
qbcore → abre qb-clothingesx → abre esx_skin:openSaveableMenuCambia esta función para usar otro sistema de ropa.
SetSkin(ped, skin)Aplica una skin/apariencia a un ped. Delega en Config.ClothSystem:
| Valor | Se aplica mediante |
|---|---|
qb-clothing |
qb-clothing:client:loadPlayerClothing |
fivem-appearance |
exports['fivem-appearance']:setPedAppearance |
illenium-appearance |
exports['illenium-appearance']:setPedAppearance |
codem-appearance |
qb-clothing:client:loadPlayerClothing |
skinchanger |
ApplySkinSkinChanger(ped, skin) — mezcla completa de cara/cuerpo con las natives de GTA |
rcore_clothing |
exports.rcore_clothing:setPedSkin (ESX) |
ShutDownLoadingScreenCustom()Se llama cuando hay que cerrar la pantalla de carga. Sobrescríbela para añadir una lógica de transición propia.
function ShutDownLoadingScreenCustom()
ShutdownLoadingScreen()
ShutdownLoadingScreenNui()
endPostSpawnPlayer()Se lanza cuando el jugador ya ha aparecido por completo en el mundo. Añade aquí cualquier lógica posterior a la aparición (por ejemplo, lanzar eventos para otros recursos).
function PostSpawnPlayer()
-- TriggerEvent('myresource:onPlayerSpawned')
endCustom.GetLastPosition(cid) → table | nilConsulta la tabla de jugadores del framework para obtener la última posición guardada de un personaje. Devuelve una tabla de posición decodificada o nil.
-- qbcore → SELECT position FROM players WHERE citizenid = ?
-- esx → SELECT position FROM users WHERE identifier = ?Custom.QueryCreatePlayer(src, data, id)Inserta un personaje ESX nuevo en la tabla users. Solo se ejecuta con Config.Framework == 'esx'. Gestiona nombre, apellidos, fecha de nacimiento, sexo, nacionalidad, skin y cuentas iniciales.
GiveStarterItems(source)Da a un jugador los objetos de Config.StarterItems en la primera creación de personaje (solo ESX). Rellena automáticamente los metadatos de id_card y driver_license.
GetCharInfoPhone(id) → string | nilObtiene el número de teléfono de un jugador de la tabla users. Admite tanto el formato charinfo de qs-smartphone como una columna phone_number directa.
SendDiscordLog(webhook, message)Envía un log en forma de embed de Discord al webhook indicado. Se llama automáticamente para los comandos /logout y /giveslot cuando está activado en Logs.Enabled.
function SendDiscordLog(webhook, message)
PerformHttpRequest(webhook, ..., json.encode({
username = "Title Menu Logs",
embeds = {{ title = "origen_titlemenu", description = message, ... }}
}), { ['Content-Type'] = 'application/json' })
end