Docs/Skills/Slot Machine Skill

Slot Machine Skill

Simulate slot machine spins and payouts

OperationalCredits 2 per callp50 161msGames

Overview

Slot Machine Simulator works by generating random reel results using weighted probabilities for different symbols, calculating payouts based on symbol matches and bet amounts, and tracking detailed statistics across multiple spins.

Live Test Slot Machine Skill Skill →

The tool

Once your client is connected to the VerveKit server, this appears in its tool list as SlotMachineSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.

Tool call
{
  "name": "SlotMachineSkill",
  "arguments": {}
}

Connecting

One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.

{
  "mcpServers": {
    "vervekit": {
      "url": "https://api.vervekit.com/v1/mcp"
    }
  }
}

Per-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.

Arguments

These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.

ArgumentTypeDescription
spinsOptionalintegerNumber of spins to simulate
default 1 · range 1–5
reelsOptionalintegerNumber of reels
default 3 · range 3–5
betOptionalnumberBet amount per spin
default 1 · range 0–1000

What the model gets back

The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.

Result
{
  "status": "ok",
  "error": null,
  "data": {
    "total_spins": 5,
    "num_reels": 3,
    "bet_per_spin": 1,
    "spins": [
      {
        "spin_number": 1,
        "reels": [
          {
            "symbol": "🍋",
            "name": "Lemon"
          },
          {
            "symbol": "🍒",
            "name": "Cherry"
          },
          {
            "symbol": "🍒",
            "name": "Cherry"
          }
        ],
        "bet": 1,
        "payout": 0,
        "win_type": "none",
        "is_win": false
      },
      {
        "spin_number": 2,
        "reels": [
          {
            "symbol": "⭐",
            "name": "Star"
          },
          {
            "symbol": "🍋",
            "name": "Lemon"
          },
          {
            "symbol": "⭐",
            "name": "Star"
          }
        ],
        "bet": 1,
        "payout": 0,
        "win_type": "none",
        "is_win": false
      },
      {
        "spin_number": 3,
        "reels": [
          {
            "symbol": "🍊",
            "name": "Orange"
          },
          {
            "symbol": "🍇",
            "name": "Grape"
          },
          {
            "symbol": "🍋",
            "name": "Lemon"
          }
        ],
        "bet": 1,
        "payout": 0,
        "win_type": "none",
        "is_win": false
      },
      {
        "spin_number": 4,
        "reels": [
          {
            "symbol": "🍒",
            "name": "Cherry"
          },
          {
            "symbol": "⭐",
            "name": "Star"
          },
          {
            "symbol": "🔔",
            "name": "Bell"
          }
        ],
        "bet": 1,
        "payout": 0,
        "win_type": "none",
        "is_win": false
      },
      {
        "spin_number": 5,
        "reels": [
          {
            "symbol": "🍒",
            "name": "Cherry"
          },
          {
            "symbol": "🍒",
            "name": "Cherry"
          },
          {
            "symbol": "7️⃣",
            "name": "Seven"
          }
        ],
        "bet": 1,
        "payout": 0.5,
        "win_type": "small",
        "is_win": true
      }
    ],
    "total_bet": 5,
    "total_winnings": 0.5,
    "net_profit": -4.5,
    "wins": 1,
    "losses": 4,
    "win_percentage": 20,
    "available_symbols": [
      {
        "symbol": "🍒",
        "name": "Cherry",
        "payout_multiplier": 2
      },
      {
        "symbol": "🍋",
        "name": "Lemon",
        "payout_multiplier": 3
      },
      {
        "symbol": "🍊",
        "name": "Orange",
        "payout_multiplier": 5
      },
      {
        "symbol": "🍇",
        "name": "Grape",
        "payout_multiplier": 10
      },
      {
        "symbol": "🔔",
        "name": "Bell",
        "payout_multiplier": 20
      },
      {
        "symbol": "⭐",
        "name": "Star",
        "payout_multiplier": 50
      },
      {
        "symbol": "💎",
        "name": "Diamond",
        "payout_multiplier": 100
      },
      {
        "symbol": "7️⃣",
        "name": "Seven",
        "payout_multiplier": 200
      }
    ]
  }
}

Response fields

Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.

FieldTypeExampleDescription
total_spinsnumber5Total number of spins simulated in session
num_reelsnumber3Number of reels used per spin
bet_per_spinnumber1Bet amount placed per individual spin
spinsarray[5]Array containing detailed information for each spin
spins.0.spin_numbernumber1Sequential number identifying this spin
spins.0.reelsarray[3]Array of reel results for this spin
spins.0.reels.0.symbolstring🍋Emoji symbol displayed on the reel
spins.0.reels.0.namestringLemonHuman-readable name of reel symbol
spins.0.betnumber1Bet amount wagered for this spin
spins.0.payoutPremiumnumber0Monetary payout amount won from spin
spins.0.win_typePremiumstringnoneClassification of win result for spin
spins.0.is_winPremiumbooleanfalseWhether spin resulted in winning combination
total_betnumber5Total amount wagered across all spins
total_winningsPremiumnumber0.5Total monetary winnings from all spins
net_profitPremiumnumber-4.5Calculated profit or loss after all spins
winsPremiumnumber1Count of successful winning spins
lossesPremiumnumber4Count of losing spins in session
win_percentagePremiumnumber20Percentage of spins that resulted in wins
available_symbolsarray[8]Array of all possible symbols used
available_symbols.0.symbolstring🍒Emoji symbol available in slot machine
available_symbols.0.namestringCherryName of the available symbol
available_symbols.0.payout_multiplierPremiumnumber2Payout multiplier for symbol matches

Failure modes

Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.

StatusWhat it means
400 / 422The arguments did not validate. The message names the offending one.
401The OAuth session is invalid or expired — reconnect the server.
403Blocked by a key restriction or an IP allow-list. Never a bad identity.
404This skill is not part of VerveKit. Check the catalog.
429Out of credits, or a brief rate limit. The message tells them apart.

A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.

Use cases

Game Development
Implement slot machine mechanics in casino games and gambling applications
Probability Analysis
Analyze slot machine probabilities and expected values for educational purposes
Entertainment
Provide safe, simulated slot machine experience without real money gambling
Testing
Test slot machine algorithms and payout structures for game design and balancing

Other ways to use Slot Machine Skill

Set up Slot Machine Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerve →Reference →

More in Games:

Was this page helpful?