1. Entrada al servidor
- El cliente espera a que exista sesion de red.
- Intenta desactivar
spawnmanager para que no haga autospawn.
- Espera hasta
15s a que un framework compatible este disponible.
- Si el jugador no tiene personaje activo, llama a
beginSelector().
2. Apertura del selector
- Marca
LocalPlayer.state.coldMulticharOpen = true.
- Le pide al servidor que active el aislamiento de seleccion.
- Intenta hidratar primero la lista real de personajes.
- Si esa carga falla, construye slots vacios de fallback y refresca despues.
- Abre la NUI con intro, ajustes guardados, traducciones y lista de slots.
3. Preview y navegacion
- Cada slot recibe una escena y un encuadre de camara.
- Si el slot tiene personaje, intenta cargar su apariencia guardada.
- Si no hay apariencia o falla el provider, usa un freemode aleatorio.
- El ped de preview puede ejecutar idle scenarios configurados en
Config.PreviewActions.
4. Flujo de crear personaje
- El jugador selecciona un slot vacio.
- La NUI abre el modal de creacion y el preview de genero.
- El cliente valida nombre, apellido, nacionalidad y fecha.
- Llama al callback
cold_multichar:server:createCharacter.
- Si el framework crea el personaje, espera a que exista
PlayerData.
- Cierra selector, quita aislamiento y resuelve el spawn como personaje nuevo.
- El adaptador cliente del framework puede abrir el creator de ropa o apariencia configurado.
5. Flujo de cargar personaje
- El jugador selecciona un slot ocupado.
- La NUI llama a
cold_multichar:server:loadCharacter.
- Si el framework detecta otra sesion de personaje activa, primero hace logout.
- Cuando el login termina, el selector cierra y se resuelve el spawn como personaje existente.
6. Resolucion del spawn
cinematic_selector: abre el selector de spawn interno.
last_location: intenta usar PlayerData.position, luego la posicion cacheada del personaje y despues el callback de posicion del framework si existe.
default: usa Config.DefaultSpawn.
- Si el selector cinematico falla, cae a
default o last_location segun el tipo de personaje.
7. Logout y reapertura
- El comando configurado ejecuta
Framework.logout(source) en servidor.
- El selector se vuelve a abrir cuando llega el evento de logout del framework:
qbx_core:client:playerLoggedOut
QBCore:Client:OnPlayerUnload
esx:onPlayerLogout
8. Ajustes locales
- La NUI guarda opciones como
autoPreview, fxEnabled, sfxEnabled, sfxVolume, ultraCleanOverride y lowPerformanceOverride.
- Esos ajustes se guardan tanto en
localStorage como en KVP del recurso.
- El modo de rendimiento se reaplica cada vez que se abre el selector.
Controles practicos
- Intro: flechas para moverte,
Enter para ejecutar, Escape para salir del servidor.
- Selector principal: flechas para cambiar slot,
Enter para jugar o crear, Space para preview.
- Selector de spawn: flechas para cambiar ubicacion,
Enter para confirmar, Escape para cancelar.
Limitaciones del flujo actual
- No existe una accion real para borrar personaje.
- El selector no soporta mas de
3 slots.