Rust Plugin (Oxide/uMod)
The Pixlpay Rust plugin integrates directly with your Oxide/uMod server to automatically deliver purchased items to players.
Features
- Native Oxide/uMod integration
- Automatic polling for pending deliveries
- Support for purchases, refunds, and chargebacks
- Online player queuing (wait for player to connect)
- Admin commands for debugging and management
- Detailed logging
Requirements
- Rust dedicated server
- Oxide/uMod installed
Installation
Step 1: Download the Plugin
Download PixlPay.cs from your Pixlpay dashboard under Settings > Game Servers > Downloads.
Step 2: Install the Plugin
Copy PixlPay.cs to your server's Oxide plugins directory:
oxide/plugins/PixlPay.csStep 3: Load the Plugin
Reload the plugin via RCON or server console:
oxide.reload PixlPayThe plugin will generate a default configuration file at oxide/config/PixlPay.json.
Configuration
Edit oxide/config/PixlPay.json:
{
"Store Secret": "",
"Server Secret": "",
"Debug Mode": false,
"Dev Mode": false,
"Dev API URL": "http://localhost:8000"
}Configuration Options
| Option | Description |
|---|---|
Store Secret | Your store's secret key (shared across all servers) |
Server Secret | This specific server's secret key (unique per server) |
Debug Mode | Enable verbose logging for troubleshooting |
Dev Mode | Use development API URL instead of production |
Dev API URL | Custom API URL for local development |
Getting Your Secrets
- Log in to your Pixlpay Dashboard
- Go to Settings > Game Servers
- Click on your Rust server (or add one)
- Click Show Credentials to reveal the secrets
- Copy both the Store Secret and Server Secret
Reload After Configuration
After entering your secrets, reload the plugin:
oxide.reload PixlPayHow It Works
- Plugin polls Pixlpay API every 60 seconds for pending notifications
- Three notification types are supported:
- Purchase: Executes when player buys a product
- Refund: Executes immediately when a refund is processed
- Chargeback: Executes immediately when a dispute occurs
- Commands requiring online players are queued if player is offline
- When player connects, queued commands execute automatically
- Multiple commands per product are supported (one per line)
- Results are reported back to Pixlpay
Admin Commands
All commands require the pixlpay.admin permission.
| Command | Description |
|---|---|
/pixlpay status | Show plugin status (API URL, mode, connection status) |
/pixlpay poll | Force poll for pending commands |
/pixlpay queue | Show pending deliveries waiting for players |
/pixlpay history [count] | Show command history (default: 10) |
/pixlpay test | Test API connection |
/pixlpay debug | Toggle debug mode |
/pixlpay heartbeat | Send heartbeat to API |
Permissions
| Permission | Description |
|---|---|
pixlpay.admin | Access to all /pixlpay commands |
Admin access is granted if the player has:
- The
pixlpay.adminOxide permission, OR - Is set as
owneridin server config, OR - Is set as
moderatoridin server config
Granting Permission
oxide.grant user <steamid> pixlpay.adminSetting Up Products
When creating products in your Pixlpay dashboard, configure commands in the Delivery section.
Example Commands
Give Items:
inventory.giveto {steam_id} wood 1000
inventory.giveto {steam_id} stones 1000
inventory.giveto {steam_id} metal.fragments 500Give Weapons:
inventory.giveto {steam_id} rifle.ak 1
inventory.giveto {steam_id} ammo.rifle 128Server Messages:
say {player} just purchased VIP status!Run Console Commands:
oxide.grant user {steam_id} vip.kitAvailable Placeholders
| Placeholder | Description |
|---|---|
{player} | Player's display name |
{steam_id} | Player's Steam ID (64-bit) |
{quantity} | Quantity purchased |
{order_id} | Order ID |
{order_number} | Order number |
{product_name} | Product name |
{customer_email} | Customer email |
{customer_name} | Customer name |
Multiple Commands
Add multiple commands, one per line:
inventory.giveto {steam_id} supply.signal 3
inventory.giveto {steam_id} rifle.bolt 1
inventory.giveto {steam_id} ammo.rifle 64
oxide.grant user {steam_id} vip.status
say {player} just became a VIP!Execution Modes
Configure per-product in your Pixlpay dashboard:
| Mode | Behavior |
|---|---|
| Immediate | Commands execute immediately, even if player is offline |
| When Online | Commands are queued until the player connects |
For items that need to be given directly to a player's inventory, use "When Online" to ensure the player is connected.
Log Files
Logs are written to oxide/logs/PixlPay/:
| File | Contents |
|---|---|
deliveries_YYYY-MM-DD.txt | All successful deliveries |
errors_YYYY-MM-DD.txt | Errors and warnings |
Admin Notifications
If the plugin is not configured, admins will receive an in-game warning when they join the server. This helps ensure you don't forget to set up the plugin.
Troubleshooting
Authentication Errors (401/403)
Symptoms:
- "Authentication failed" in logs
- Commands not being received
Solutions:
- Verify both secrets are correct in config
- Check the keys match your Pixlpay dashboard
- Ensure you're using the correct Store Secret and Server Secret pair
- Reload the plugin after updating config
Commands Not Executing
Solutions:
- Enable debug mode:
/pixlpay debug - Check status:
/pixlpay status - Test connection:
/pixlpay test - Check the Oxide logs in
oxide/logs/
Wrong API URL
Solutions:
- Check
/pixlpay statusto see current API URL - If in dev mode, verify
Dev API URLis correct - Set
Dev Modetofalsefor production
Player Not Found
Symptoms: Commands execute but player doesn't receive items.
Solutions:
- Ensure Steam ID format is correct (should be 17-digit Steam64 ID)
- Verify player is online if using "When Online" mode
- Check if player has inventory space
- Test command manually in console
Common Item IDs
| Item | ID |
|---|---|
| Wood | wood |
| Stone | stones |
| Metal Fragments | metal.fragments |
| High Quality Metal | metal.refined |
| Sulfur | sulfur |
| AK-47 | rifle.ak |
| Bolt Action | rifle.bolt |
| Thompson | smg.thompson |
| Rocket Launcher | rocket.launcher |
| C4 | explosive.timed |
| Supply Signal | supply.signal |
| Large Wood Box | box.wooden.large |
TIP
For a complete list of item shortnames, see the Rust Wiki or use a command like itemlist in your server console.
Security Best Practices
- Protect your config file - Don't expose
oxide/config/PixlPay.jsonpublicly - Use unique Server Secrets - Each server should have its own secret
- Monitor your logs - Check for unauthorized access attempts
- Keep Oxide updated - Ensure you're running the latest version
- Backup configurations - Keep copies of your config files
