Skip to main content

Best Practices

Recommended practices for running SigmaOrders on your server.

Configuration

Order Limits

Set reasonable limits based on your server size:

# Small server (< 50 players)
max-orders-per-player: 5
max-items-per-order: 32

# Medium server (50-200 players)
max-orders-per-player: 10
max-items-per-order: 54

# Large server (200+ players)
max-orders-per-player: 15
max-items-per-order: 64

Expiration Times

Balance between order lifetime and server resources:

# Active economy (frequent orders)
order-life: 1440 # 1 day

# Normal economy
order-life: 10080 # 7 days

# Slow economy
order-life: 43200 # 30 days

Pricing Limits

Prevent abuse while allowing flexibility:

# Economy-focused
min-price-per-item: 1.0
max-price-per-item: 10000.0

# Permissive
min-price-per-item: 0.01
max-price-per-item: 1000000.0

Database

SQLite vs MySQL

Use SQLite for:

  • Small-medium servers (< 200 players)
  • Single-server setups
  • Low order volume

Use MySQL for:

  • Large servers (200+ players)
  • Multi-server setups
  • High order volume
  • Need for database management tools

Database Maintenance

SQLite:

  • Regular backups of database.db
  • Monitor file size
  • Vacuum periodically if needed

MySQL:

  • Regular backups using standard tools
  • Monitor connection pool usage
  • Optimize tables periodically

Permissions

Role-Based Setup

Organize permissions by player roles:

# New players: view and fulfill only
/lp group default permission set sigmaorders.use true
/lp group default permission set sigmaorders.fulfill true

# Trusted players: full access
/lp group trusted permission set sigmaorders.* true

# Admins: all permissions
/lp group admin permission set sigmaorders.* true

Principle of Least Privilege

Give players only the permissions they need:

  • New players: View and fulfill
  • Regular players: Full access
  • Admins: All permissions

Economy

Escrow System

Always use ESCROW payment method (default):

  • Protects both parties
  • Guarantees payment for deliverers
  • Prevents fraud

Refund Settings

Balance between player experience and server economy:

# Player-friendly (no fees)
refund:
deduction-percentage: 0.0

# Economy-focused (small fee)
refund:
deduction-percentage: 0.05 # 5% fee

Performance

Async Operations

All database operations are async by default. No configuration needed.

Caching

Default cache settings work for most servers. Adjust if needed:

performance:
cache-size: 100 # Increase for large servers
cache-expiration: 60

Monitoring

Regular monitoring helps prevent issues:

  • Check order counts periodically
  • Monitor database size
  • Review transaction logs
  • Watch for error patterns

Security

Blacklist Management

Use blacklist to prevent problematic items:

blacklist:
enabled: true
items:
- BEDROCK
- BARRIER
- COMMAND_BLOCK

Permission Security

Don't give admin permissions to regular players:

  • Use role-based permissions
  • Review permissions regularly
  • Test permission changes

Transaction Logging

Enable transaction logging for audit trail:

transaction-logging:
enabled: true
format: DETAILED

Player Experience

Clear Communication

Use clear messages in messages.yml:

  • Explain what happened
  • Provide next steps
  • Use consistent formatting

Helpful Error Messages

Configure helpful error messages:

  • Explain why action failed
  • Suggest solutions
  • Provide command examples

GUI Design

GUIs should be intuitive:

  • Clear labels
  • Logical flow
  • Consistent design

Maintenance

Regular Backups

Backup regularly:

  • Database file (SQLite)
  • Configuration files
  • Transaction logs

Update Strategy

  • Test updates on dev server first
  • Backup before updating
  • Read changelog for breaking changes
  • Update during low-traffic periods

Monitoring

Monitor server health:

  • Order creation rate
  • Delivery completion rate
  • Average order value
  • Player participation

Troubleshooting

Debug Mode

Use debug mode for troubleshooting:

/orders debug on
# Reproduce issue
/orders debug off

Log Review

Regularly review logs:

  • Server logs for errors
  • Transaction logs for issues
  • Console for warnings