Every player gets the free slots you configure. On top of those you can add locked slots: they appear in the selection room with a padlock, a Buy slot button that opens your Tebex store, and a field where the player pastes the transaction ID of their purchase. Staff can also unlock them by hand with /addslot.
How Slots Work#
Slot | Set with | Who can use it |
|---|---|---|
Free |
| Everyone. |
Locked |
| Players who redeemed a Tebex purchase or were given the slot by staff. |
Unlocks belong to the player's Rockstar license, not to a character, and are stored in qs_multicharacter_slots. Locked slots open in order — the first purchase unlocks the lowest locked slot. When every locked slot is open, further redeems are refused with You have reached the maximum number of slots.
Slot 0 is always free. If you set
tebex = trueon the first slot the console prints an error and the setting is ignored — every player needs at least one character.
Locking Slots#
In config/main.lua, switch tebex on for each slot you want to sell. This example keeps two free slots and locks two:
Config.CharacterPositions = {
[0] = { coords = vec3(-1009.08, -475.67, 48.49), heading = 201.25, lookAt = vec3(-1005.92, -478.54, 50.02),
animation = { [0] = { dict = 'anim@amb@office@boardroom@boss@male@', anim = 'base' }, [1] = { dict = 'anim@amb@office@boardroom@boss@male@', anim = 'base' } },
tebex = false },
[1] = { --[[ ... ]] tebex = false },
[2] = { --[[ ... ]] tebex = true }, -- locked
[3] = { --[[ ... ]] tebex = true }, -- locked
}Adding more slots#
The number of slots equals the number of entries in Config.CharacterPositions. A new slot needs three entries, or its card never appears:
Place the character
Add
Config.CharacterPositions[4]with its coordinates, heading, look-at point, animations andtebexflag.Frame it with a camera
Add
4to theslotslist of an existing camera inConfig.CharacterCameraPositions, or add a new camera that points at it.lua [2] = { coords = vec3(-1005.28, -476.46, 50.02), pointAt = vec3(-1004.95, -476.04, 50.02), slots = { 3, 4 } },Position the card
Add a fifth entry to
Config.CharacterSlotswith where the card sits on screen:lua { position = 'fixed', left = '50vw', top = '40vh' },
Selling Slots on Tebex#
Multicharacter checks each transaction ID against Tebex's API, so your server has to be connected to your Tebex store first.
Open Game Servers
In the Tebex creator panel, open Integrations in the left menu, then Game Servers.

Tebex panel Integrations menu with the Game Servers option Connect a game server
Press Connect Game Server and choose Plugin.

Tebex Connect Game Server button 
Tebex plugin option for connecting a FiveM server Name it and copy the secret
Give the server a name and skip the Packages part. Tebex then shows a command with your secret key — copy it into
server.cfgand restart the server:bash sv_tebexSecret your-secret-keyWhen the indicator turns green and reads Connected, press Continue.

Naming the Tebex game server plugin 
Tebex secret command for server.cfg and connected indicator Create the slot package
Go to Packages, press Add New → Package, and give it a title, description, image and price. One purchase unlocks one slot.

Tebex Packages menu 
Tebex Add New Package button 
Tebex package details for a FiveM character slot Link the store
Put your store address in
Config.TebexUrlso the Buy slot button opens it:lua Config.TebexUrl = 'https://your-store.tebex.io'
The package needs no game server command. The slot is unlocked when the buyer redeems their transaction ID, so an
addslot {transaction}command left over from an older guide only prints an error in the console — remove it from the package.
How the player redeems#
After paying, the player receives a transaction ID that starts with tbx- in their Tebex receipt. They can redeem it two ways:
In the selection room — on a locked card, under Have a transaction ID?, paste it and press Redeem. The slot opens on the spot.
In game — type
/addslot tbx-XXXXXXXXin chat.
Each ID works once. A payment that is not complete, already used, or unknown to your store is rejected, and the menu allows one attempt every three seconds.
One-Time and Monthly Packages#
A slot from a one-time package is permanent. A slot from a monthly (recurring) package is checked against Tebex again and locks itself when the subscription ends — the character is kept, the card shows a padlock until the subscription is renewed.
Tebex does not say whether a package is monthly, so list the IDs of your recurring packages yourself:
Config.TebexAccess = {
SubscriptionPackageIds = {
[123456] = true, -- your monthly slot package
},
CheckCacheSeconds = 300, -- re-check a subscription at most every 5 minutes
FailOpenOnApiError = true, -- keep access if Tebex is down, instead of locking everyone out
}To find a package ID, open creator.tebex.io, go to Webstore → Packages, open the package and copy the number at the end of the URL (.../package/123456).
Giving Slots by Command#
Without Tebex — or as a gift, a refund or an event prize — an admin unlocks the next locked slot for any online player:
/addslot [server id]Both players get a chat message, and the unlock is logged in qs_multicharacter_transactions as type admin. Admin unlocks are permanent. Who counts as an admin is listed on Commands and Exports.
Locked a slot but not using Tebex? The console reminds you that
sv_tebexSecretis missing. That is harmless as long as you only unlock slots with/addslot [server id]— the message mentions/giveslot, but the command is/addslot.



