> For the complete documentation index, see [llms.txt](https://docs.picklemods.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.picklemods.com/paid-resources/casinos/slot-machine-odds-and-payout-configuration.md).

# Slot Machine Odds & Payout Configuration

This document explains how odds, payouts, RTP, and bonuses work in the slot machine configuration, and how you can safely tune them to reduce profitability without breaking gameplay balance.

### High‑Level Concepts

#### RTP (Return to Player)

* RTP is the **long‑term average payout** of the machine.
* Example: **96% RTP** means that for every $100 wagered over time, $96 is paid back to players.
* **RTP is not affected by max bet size**.
  * Increasing max bet only increases *volatility* (bigger wins & losses).

👉 If players are winning too much *too fast*, the issue is **odds and multipliers**, not RTP alone.

***

### How Winning Works

A win occurs when:

1. A **payline** matches the same symbol across enough reels
2. The match count meets `paylineWinThreshold`
3. The corresponding **multiplier** is applied to the bet

***

### Key Configuration Sections

#### 1️⃣ `reels` — Symbol Appearance Odds

```lua
reels = {10, 10, 10, 10, 10}
```

* Each number represents the **relative chance** of that symbol appearing on each reel.
* **Higher number = higher chance**
* **Lower number = rarer symbol**

Example:

```lua
reels = {15, 12, 10, 10, 15}
```

* Reel 1 & 5 → more likely
* Reel 3 & 4 → less likely

📉 **Lowering these values reduces win frequency**.

***

#### 2️⃣ `pay` — Payout Multipliers (Per Reel Count)

```lua
pay = {0, 0, 0.2, 0.35, 1.25}
```

Each index represents the **multiplier based on how many matching reels you hit**:

| Matches | Multiplier |
| ------- | ---------- |
| 1       | 0x         |
| 2       | 0x         |
| 3       | 0.2x       |
| 4       | 0.35x      |
| 5       | 1.25x      |

#### Example Calculation

* Bet: $10
* Hit 3 symbols → `0.2x`
* Payout: `$10 × 0.2 = $2`

⚠️ This means **not every win is profitable** — low multipliers intentionally cause losses.

📉 **Lowering pay values reduces payout size**.

***

#### 3️⃣ Bonus Symbols & Bonus Odds

```lua
["Bonus Symbol"] = {
    image = "bonus.png",
    reels = {8, 8, 1, 1, 1},
    pay = {0, 0, 0, 0, 0},
}
```

**How Bonus Odds Work**

* Bonus symbols **use the same reel odds system**
* In this example:
  * Reels 1 & 2 → common
  * Reels 3–5 → rare

This creates a **"tease effect"** where players frequently see partial bonuses.

**Reducing Bonus Frequency**

To make bonuses harder to hit:

```lua
reels = {4, 4, 1, 1, 1}
```

✅ This **halves bonus chance**\
❌ Does NOT affect normal symbol odds

***

#### 4️⃣ `bonusFreeSpins`

```lua
bonusFreeSpins = 15
```

* Controls how many free spins are awarded
* Directly affects profitability

📉 Reducing this is one of the **safest ways** to lower payout without impacting normal gameplay.

***

#### 5️⃣ Paylines & Win Frequency

```lua
paylines = {
  {1,1,1,1,1},
  {0,0,0,0,0},
  {2,2,2,2,2},
  ...
}
```

* More paylines = more chances to win
* Fewer paylines = lower hit rate

📉 Removing high‑coverage paylines reduces win frequency.

***

### How to Reduce Player Profitability (Recommended Order)

If players are winning too much:

#### ✅ Best Options (Safe)

1. Lower **bonus symbol reel odds**
2. Reduce **bonusFreeSpins**
3. Slightly reduce **high‑tier multipliers** (4–5 matches)

#### ⚠️ Use Carefully

* Lowering base symbol odds too much can make machines feel "dead"
* Over‑nerfing RTP causes player churn

***

### Common Misconceptions

❌ "Max bet affects RTP"\
✔️ Max bet only affects volatility

❌ "You only win with 5 symbols"\
✔️ You can win with 3+, depending on `pay`

❌ "Pay is per reel"\
✔️ Pay is **based on total matching reels on a payline**

***

### TL;DR

* `reels` → controls **how often** symbols appear
* `pay` → controls **how much** they pay
* Bonus symbols use the same odds logic
* RTP stays constant unless you rebalance payouts

If bonuses are too profitable: **make them rarer, not bigger**.

***

If you want, this doc can be expanded with:

* RTP math examples
* Recommended default tuning values
* "High volatility" vs "casual" presets
