Inicio › Documentación › Personalización · origen_titlemenu

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.

text
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 logging

custom/client/client.lua

ShowNotification(msg)

Muestra una notificación al jugador local. Delega en Config.Framework.

lua
function ShowNotification(msg)
    -- 'qbcore' → TriggerEvent('QBCore:Notify', msg)
    -- 'esx'    → ESX.ShowNotification(msg)
end

CreatePlayer()

Se llama cuando un personaje nuevo debe abrir el creador de apariencia. Delega en Config.Framework:

Cambia 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.

lua
function ShutDownLoadingScreenCustom()
    ShutdownLoadingScreen()
    ShutdownLoadingScreenNui()
end

PostSpawnPlayer()

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).

lua
function PostSpawnPlayer()
    -- TriggerEvent('myresource:onPlayerSpawned')
end

custom/server/function.lua

Custom.GetLastPosition(cid) → table | nil

Consulta 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.

lua
-- 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.


custom/server/server.lua

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 | nil

Obtiene 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.


custom/server/logs.lua

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.

lua
function SendDiscordLog(webhook, message)
    PerformHttpRequest(webhook, ..., json.encode({
        username = "Title Menu Logs",
        embeds   = {{ title = "origen_titlemenu", description = message, ... }}
    }), { ['Content-Type'] = 'application/json' })
end