API Reference

Client exports and commands for developers integrating with oxide-multichar.

This page is for developers integrating with oxide-multichar. It also lists the commands the resource registers, since they are few.

oxide-multichar has a small, deliberate public surface: three client exports and no server exports. Almost everything it does is driven internally and through o-link, so there is little to call from the outside.

Client Exports

All three exports run on the client. There are no server exports.

Open

Opens the character selection screen. Builds the scene, draws the player's characters, and takes over the camera and mouse.

exports['oxide-multichar']:Open()

Parameters: None

Returns: Nothing

In normal use you do not need to call this — o-link opens the screen automatically when the player joins or runs /logout. Call it only if you are building a custom flow that needs to force the screen open.


Close

Closes the character selection screen and the creation wizard if either is open. Restores the player's camera and mouse.

exports['oxide-multichar']:Close()

Parameters: None

Returns: Nothing


IsOpen

Reports whether the selection screen or the creation wizard is currently open. Useful for suppressing your own UI, keybinds, or HUD while the player is in character selection.

local busy = exports['oxide-multichar']:IsOpen()
if busy then
    -- the player is in character selection; don't open your own UI
end

Parameters: None

Returns: booleantrue if the selection screen or creation wizard is open, otherwise false.


Commands

oxide-multichar registers the following commands. There are no admin permissions to configure — these are either available to all players or only present in debug mode.

/logout

Returns the player to character selection without disconnecting them. This is the only player-facing command, and it is only registered when Config.Logout.enabled is true.

Usage:

/logout

The command word is configurable. If you set Config.Logout.command = 'switch', the command becomes /switch. See Configuration.

Debug Commands

These two commands only exist while debug mode is turned on. They are intended for development and testing, not for live servers.

CommandDescription
/oxide:multicharForce-opens the character selection screen.
/oxide:newcharForce-opens the character creation wizard.

To enable them, add this line to your server.cfg:

setr oxide:debug true

Remove or set it to false on a live server so the debug commands are not available to players.

Integration Examples

Hide your HUD during character selection

CreateThread(function()
    while true do
        if exports['oxide-multichar']:IsOpen() then
            -- character selection is up — hide your custom HUD
            exports['my-hud']:Hide()
        else
            exports['my-hud']:Show()
        end
        Wait(500)
    end
end)

Force the screen open from your own flow

-- e.g. a custom "switch character" interaction at a bed
RegisterNetEvent('my-resource:openCharacterSelect', function()
    if not exports['oxide-multichar']:IsOpen() then
        exports['oxide-multichar']:Open()
    end
end)

Next Steps

  • Configuration - Customize the logout command and everything else
  • Features - Understand the screens these exports control