Skip to main content
Use this tutorial after you connect a server with the SCRIPT method.
Tebex is the official monetization partner of FiveM. The FiveM server manual states that using any other platform or payment provider is prohibited and violates the Platform License Agreement. Gamecart is an alternative, not the official option. If you sell on a FiveM server through Gamecart, you do so at your own risk.

Before you begin

The executor is a server-only FiveM resource. It requires Cfx Node 22 and has no client scripts or NUI. Download the current FiveM resource from Downloads. Choose FiveM. Integrations > Servers also links to Downloads.

Install and configure the executor

  1. Place the resource at resources/[gamecart]/gamecart.
  2. Keep the resource folder named gamecart when using the documented ACE principal.
  3. Open config.js and set your server token.
  4. Add the ACE rules and ensure gamecart to server.cfg, then restart the resource.
Copy the server token from Integrations > Servers. Keep it secret.
FiveM server connection row with its masked token highlighted

Use the masked token from the FiveM connection assigned to this resource.

Set pollIntervalSeconds to a value from 5 through 600. Unless you use a loopback development endpoint, apiUrl must use HTTPS. With debug=true, the executor writes sanitized state and status logs. It does not log tokens, commands, player nicknames, HTTP bodies, buyer data, or order data.

Grant command permissions

Fulfillment uses ExecuteCommand under the resource.gamecart principal. Grant administrators access to the local commands and start the resource:
Prefer explicit command grants whenever the target resource exposes command-specific ACE objects.
The broad grant below permits resource.gamecart to execute every registered server command. Use it only when you understand that risk.

Operate the executor

Run gamecart status to check the executor version and whether it is connected. After you edit config.js, run gamecart reload to apply it. Reloading never runs a command a second time. Use one installation for each Gamecart server token. If the executor can’t reach Gamecart, it keeps retrying on its own and waits up to a minute between attempts. When Gamecart is reachable again, it reconnects without a reload. The console logs one line when the connection drops and another when it comes back. If it keeps retrying with a 401 or 403 error, Gamecart is rejecting the server token. Check serverToken and apiUrl in config.js, then run gamecart reload.
If a command ran on your server but Gamecart never received the confirmation, resending it can deliver the purchase twice. Stop the original executor and check the outcome in the Gamecart dashboard before you resend.