Troubleshooting

Fixes for the most common oxide-multichar setup problems — native menu conflicts, generic faces, the appearance editor, spawning, and starter apartments.

This page lists the problems server owners most commonly run into, what they look like, and how to fix them step by step. Work through the solutions in the order listed — the most likely fix comes first.

Selection Screen Issues

The old (native) character menu still shows

Symptoms:

  • You see your framework's plain character list instead of the rendered scene.
  • The screen flickers between two different menus.
  • The screen freezes on a black or loading screen on join.

Solutions:

  1. Turn off your framework's built-in character screen. This is by far the most common cause. oxide-multichar replaces the native screen, and if the old one is still running they conflict. Follow the steps for your framework in the Installation Guide:

    • QBCore — make sure qb-multicharacter is not started.
    • ESX — make sure esx_multicharacter is not started.
    • QBX — make the two chooseCharacter() edits in qbx_core/client/character.lua.
  2. Check your start order. In server.cfg, confirm oxide-multichar starts after o-link, and o-link starts after your framework core:

    ensure qb-core            # (or qbx_core / es_extended)
    ensure illenium-appearance
    ensure o-link
    ensure oxide-multichar
  3. Restart the whole server, not just the resource. Disabling a native screen requires a clean boot.

The screen is open but the mouse cannot look around / clicks do nothing

Symptoms:

  • The selection scene is visible but the cursor or camera feels stuck.
  • Clicking a character does nothing.

Solutions:

  1. Confirm only oxide-multichar controls the screen. Another character or spawn resource still running can grab the camera and mouse focus at the same time. Re-check that the native character screen is fully disabled (see the issue above).

  2. Check for other resources that take over the camera or mouse on join (custom spawn managers, loading screens that never close). Temporarily stop them and test again to find the conflict.

  3. Test a clean join. Fully disconnect and reconnect rather than using /logout, to rule out a half-finished previous session.

Character Appearance Issues

Characters on the selection screen have the wrong / generic face

Symptoms:

  • Your characters appear in the scene, but their face shape, skin tone, and hair look generic — not how the player built them.
  • The correct face appears only after the character actually spawns into the world.

Cause: Your clothing resource can only describe clothing and props to the selection screen, not the full face. This is a known limitation of qb-clothing, esx_skin, and skinchanger — not a bug in oxide-multichar. The real appearance is still saved correctly; it just can't be previewed.

Solutions:

  1. Switch to illenium-appearance. It describes the full look, so selection-screen characters render exactly as the player built them. See Recommended Clothing Resource for setup. This is purely a visual upgrade — nothing else changes.

  2. If you keep qb-clothing / esx_skin, this is expected behavior. The clothing still shows correctly, and the full face appears the moment the player spawns.

Creation Issues

The appearance editor never opens — it jumps to the framework's editor instead

Symptoms:

  • After entering name, date of birth, and gender, the built-in editor is skipped.
  • Your framework's own first-time clothing editor opens instead.

Cause: The built-in editor only works with supported clothing resources. On any other clothing resource, oxide-multichar automatically falls back to your framework's native editor. This is intentional and not an error.

Solutions:

  1. Confirm Config.CustomCreator.enabled is on.

    Config.CustomCreator = {
        enabled = true,
        allowTattoos = true,
    }
  2. Confirm you are running a supported clothing resource. The built-in editor supports only:

    • oxide-identity
    • illenium-appearance
    • qb-clothing
    • fivem-appearance

    On anything else (for example esx_skin), the native editor is used by design. Switch to one of the supported resources to use the built-in editor.

A name or date of birth is rejected

Symptoms:

  • A player gets an error like "Name must be at least 2 characters" or "Character must be at least 18 years old".

Cause: This is the validation working as intended. Names and ages are checked against your config.

Solutions:

  1. Review your rules in config.lua:
    Config.NameLength = { min = 2, max = 20 }
    Config.AgeRange   = { min = 18, max = 80 }
    Adjust the limits if they are stricter than you want. Names may only contain letters, spaces, hyphens, and apostrophes, and must start with a letter.

Spawn and Apartment Issues

The spawn picker doesn't appear; players spawn instantly

Symptoms:

  • After selecting a character, the player drops straight into the world with no sky-view picker.

Solutions:

  1. Check that the spawn picker is enabled:
    Config.SpawnSelector = {
        enabled = true,
        -- ...
    }
    With enabled = false, players intentionally skip the picker and spawn at their last (or default) position.

New characters don't get a starter apartment

Symptoms:

  • A new character is created but never receives the free apartment, falling through to the normal spawn picker.

Cause: Whether a starter apartment is granted depends on your housing system. Some systems have no free-grant path, so characters fall through to the spawn picker on purpose. See Features.

Solutions:

  1. Confirm the feature is on:

    Config.StarterApartment = { enabled = true, --[[ ... ]] }
  2. Confirm your housing system supports a free grant. qb-apartments, ps-housing, and qbx_properties are supported in different ways. Systems like esx_property and bcs-housing have no free-grant path, so the fall-through to the spawn picker is expected.

  3. For qbx_properties, check the qbx definition in Config.StarterApartment matches that resource's own apartment options. If you customized your qbx_properties apartments, mirror the change here.

General Debugging

Enable Debug Commands

Turning on debug mode unlocks two testing commands. Add this line to your server.cfg and restart:

setr oxide:debug true

This gives you:

  • /oxide:multichar — force-opens the selection screen
  • /oxide:newchar — force-opens the creation wizard

Use these to test the screens quickly without rejoining. Remove this line (or set it to false) on a live server so players cannot use these commands.

Check the Console

When something fails, your server console (F8 client console on the player's side, and the server console) is the first place to look. Watch for:

  • Red dependency errors on boot, which usually mean a resource is missing or starting in the wrong order.
  • Warnings about a failed model load, which can mean a scene or create-slot model name is wrong.

Getting Help

If none of the above resolves your issue:

  1. Enable the debug commands above and reproduce the problem.
  2. Check both the server console and the player's F8 console for error messages.
  3. Note your framework (QBCore / ESX / QBX) and your clothing and housing resources.
  4. Contact Oxide Studios support with that information and any error messages you found.