> For the complete documentation index, see [llms.txt](https://code-after-sex.gitbook.io/script-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://code-after-sex.gitbook.io/script-documentation/cas-fishing/configuration/bait-and-fish.md).

# Bait and fish

Configure fish species, bait, lures and water regions in the CAS Fishing script for RedM.

Everything on this page lives in `config.lua`.

***

## Bait

Ten baits ship with the script. `power` decides how quickly fish come; higher bait means a shorter wait.

| Bait           | Power | Item             | Used up? |
| -------------- | ----- | ---------------- | -------- |
| Bread          | 0.4   | `bait_bread`     | Yes      |
| Corn           | 0.5   | `bait_corn`      | Yes      |
| Worm           | 0.6   | `bait_worm`      | Yes      |
| Cricket        | 0.6   | `bait_cricket`   | Yes      |
| Cheese         | 0.8   | `bait_cheese`    | Yes      |
| Crayfish       | 0.9   | `bait_crayfish`  | Yes      |
| River Lure     | 1.0   | `lure_river`     | No       |
| Lake Lure      | 1.0   | `lure_lake`      | No       |
| Swamp Lure     | 1.0   | `lure_swamp`     | No       |
| Dragonfly Lure | 1.1   | `lure_dragonfly` | No       |

Natural bait goes into the water with the catch. Lures come back, which is why they cost several times as much.

```lua
Config.ConsumeBaitOnCatch = {
  worm = true,  cheese = true,  crayfish = true,
  lure_river = false, lure_lake = false, dragonfly = false,
}
```

{% hint style="info" %}
Flip a lure to `true` and it is used up like bait. Drop its shop price if you do — lures are priced high **because** they last.
{% endhint %}

***

## Species

Fifteen species, each with a size class, a weight range, the water it lives in and the bait it will take.

```lua
{
  name  = 'muskie', label = 'Muskie', index = 8,
  model = 'A_C_FISHMUSKIE_01_LG', size = 'LG',
  weight = { 9.0, 15.0 }, value = 22,
  water = { 'lake', 'river' },
  bait  = { lure_lake = 5, dragonfly = 5, crayfish = 3 },
  item  = 'fish_muskie',
}
```

| Field    | Does                                                       |
| -------- | ---------------------------------------------------------- |
| `model`  | The game's own fish ped, spawned in the water              |
| `size`   | `SM` `MS` `LG` `XL` — how hard it fights                   |
| `weight` | Min and max. Near the top of the range counts as a trophy  |
| `water`  | Which regions it appears in                                |
| `bait`   | What it takes, and how strongly. Higher number, likelier   |
| `item`   | The inventory item, and the picture used on the catch card |

Several entries can share one `item` — the small and medium bluegill are two entries and one item.

***

## Size classes

```lua
Config.SizeClass = {
  SM = { fight = 0.35, struggle = 0.30 },
  MS = { fight = 0.55, struggle = 0.50 },
  LG = { fight = 0.80, struggle = 0.75 },
  XL = { fight = 1.00, struggle = 1.00 },
}
```

`fight` slows how fast the player wears the fish down. `struggle` scales how much it thrashes.

***

## Water regions

Over thirty regions are mapped — Bayou Nwa, Lagras, Kamassa River, Flat Iron Lake, Dakota River, Elysian Pool, Moonstone Pond, Lake Isabella, San Luis River and more. Each claims a circle of the map and decides which species are available.

```lua
{
  name = 'Flat Iron Lake', type = 'lake',
  coords = vector3(-1140.0, -1300.0, 40.0),
  radius = 900.0, pressure = 1.0,
}
```

| Field      | Does                                                      |
| ---------- | --------------------------------------------------------- |
| `type`     | `river`, `lake` or `swamp` — matched against each species |
| `radius`   | How far the region reaches                                |
| `pressure` | Scales the wait. Busy docks bite slower                   |

Water outside every region falls back to `Config.DefaultWater`.

***

## How long a bite takes

```lua
Config.Bite = {
  minWait = 8000, maxWait = 26000,
  baitBonus = 0.55,        -- best bait cuts the wait by nearly half
  nightBonus = 0.85,       -- fish come up after dark
  rainBonus = 0.80,        -- and in the rain
  deepWaterBonus = 0.88,
  junkChance = 0.06,       -- an old boot instead of a fish
}
```
