> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atlasscripts.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Economy Balancing

> How tiers, bait, zones, and prices interact in atlasFishing — and how to tune payouts without printing money.

The default economy is a "normal-server" starting point. Tune it to match your earning rates, money sinks, and expected session length. This page explains how the numbers interact so you change the right one.

## How a catch is rolled

After a successful minigame, the server picks a catch. Each candidate fish gets an effective weight, and one is chosen in proportion to that weight:

```text theme={null}
effectiveWeight(fish) = tiers[fish.tier]          -- base rarity weight
                      * (fish.weight or 1)         -- intra-tier bias
                      * bait.mult[fish.tier]       -- the equipped bait
                      * zone.mult[fish.tier]       -- current hotspot (1 if outside any zone)
```

Separately, the bait's `fail` chance can produce **no catch at all** before this roll even runs. So bait does two jobs: it lowers the fail rate *and* reshapes which tiers are reachable.

<Note>
  A bait `mult` of `0.0` for a tier makes that tier impossible with that bait. In the defaults, Worms and Dough Balls have `epic = 0.0, legendary = 0.0` — you cannot pull a legendary on cheap bait.
</Note>

## The controls

| Config area               | Controls                                                                                |
| ------------------------- | --------------------------------------------------------------------------------------- |
| `Config.tiers`            | Base rarity weights (junk 10 · common 45 · uncommon 24 · rare 9 · epic 3 · legendary 1) |
| `Config.baits`            | Bait `price`, `fail` chance, and per-tier `mult`                                        |
| `Config.fish`             | Catch `price` and optional intra-tier `weight`                                          |
| `Config.zones`            | Location-based rarity multipliers                                                       |
| `Config.shop.items`       | Rod and bait purchase prices                                                            |
| `Config.sell.account`     | Account that receives sell payouts                                                      |
| `Config.boatrental.boats` | Optional boat rental prices                                                             |

## The bait ladder

The six default baits form a deliberate progression — each one costs more, fails less, and shifts weight up the rarity curve:

| Bait         | Price | Fail | Reaches                                       |
| ------------ | ----- | ---- | --------------------------------------------- |
| Worms        | 15    | 28%  | junk/common only                              |
| Dough Balls  | 25    | 25%  | up to rare (weakly)                           |
| Minnows      | 60    | 22%  | rare comfortably, a little epic               |
| Shrimp       | 120   | 16%  | strong rare, real epic, a sliver of legendary |
| Squid        | 250   | 10%  | epic-focused, better legendary                |
| Glowing Lure | 600   | 5%   | best epic + legendary odds                    |

Good bait design keeps this shape: cheap bait is low-risk but capped, premium bait is expensive enough that the payout jump feels earned rather than mandatory.

## Sell prices

Sell prices live on each fish in `Config.fish` and climb steeply by tier — common fish are 120–250, rare 950–1600, epic 3200–4500, and legendary 9000–25000 (the Golden Koi). Tune these **after** you have watched real catch frequency, not before, because the tier weights and bait `mult` decide how often each price actually pays out.

## A balancing pass

<Steps>
  <Step title="Set target earnings">
    Pick what a normal player should earn in 10, 30, and 60 minutes.
  </Step>

  <Step title="Test starter bait">
    Worms and Dough Balls should be affordable and low-risk, but clearly capped.
  </Step>

  <Step title="Test premium bait">
    Shrimp, Squid, and the Glowing Lure should feel worth buying without printing money.
  </Step>

  <Step title="Check zone value">
    Deep Sea and Alamo Sea should reward the travel, boat cost, and risk via their rare/epic/legendary multipliers.
  </Step>

  <Step title="Adjust sell prices last">
    Tune `Config.fish` prices once you know how often each tier actually lands.
  </Step>
</Steps>

## Worked adjustments

If players earn too much, raise the cost of the best bait and rein in legendaries:

```lua theme={null}
Config.baits[6].price = 800   -- Glowing Lure (default 600)
Config.tiers.legendary = 0.5  -- default 1
```

If fishing feels too slow, shorten the bite wait:

```lua theme={null}
Config.cast.biteWaitMin = 2500  -- default 4000
Config.cast.biteWaitMax = 8000  -- default 12000
```

If rare fish are too common in a hotspot, soften that zone's multipliers:

```lua theme={null}
mult = { rare = 1.2, epic = 1.5, legendary = 1.8 }  -- default deep_sea: 1.4 / 2.0 / 2.5
```

## Avoiding runaway profit

* Keep legendary base weight low (`Config.tiers.legendary`).
* Make premium bait expensive enough that the fail-rate and tier gains are a real trade.
* Do not boost every tier in every zone.
* Balance boat rental cost against deep-sea rewards.
* Test with real players for 20–30 minutes, not just an admin who knows the minigames.

## Testing checklist

* A new player can afford the rod and starter bait.
* Cheap bait is useful but clearly capped.
* Premium bait feels exciting, not mandatory.
* Each zone has a reason to exist.
* Selling pays the intended `Config.sell.account`.
* Failed catches and junk do not feel unfair.
