-
Notifications
You must be signed in to change notification settings - Fork 0
Fishing Minigame
The Fishtastic fishing minigame replaces vanilla fishing whenever you use the Copper Fishing Rod. It is a skill-based reflex game where you keep a falling bobber over moving targets to reel them in.
- Cast the Copper Fishing Rod into water normally.
- Wait for a bite — the server generates a loot pool at the moment the fish bites.
- The minigame screen opens automatically. The fishing hook stays cast until the session ends.
The minigame renders as an overlay on your game screen (you keep full movement control):
- A vertical bar in the center of the screen.
- A bobber (green zone) that you control with right-click.
- One or more targets (icons) that drift up and down the bar.
- A small progress bar beneath each target.
| Action | Default |
|---|---|
| Push bobber up | Right-click (same key as casting) |
| Push bobber up (alternate) |
Fishing Minigame Impulse keybind (configurable) |
Each press applies an upward impulse. Gravity pulls the bobber down continuously, so you need to tap repeatedly to keep it elevated.
The bobber behaves like a small weight on a spring:
- Gravity pulls it downward each tick.
- Friction gradually damps velocity.
- Bounce — if the bobber hits the top or bottom wall it bounces with 60% velocity retained.
- Each right-click impulse adds a fixed upward velocity increment.
Finding a rhythm — tapping at regular intervals — is more effective than mashing.
Each target has a difficulty rating and a movement pattern assigned by the server when the session starts. Both are determined by the species' temperament (for fish targets) or rolled randomly (for treasure targets).
- A progress bar starting at 50%.
- Catching: when the bobber overlaps the target, progress fills. It drains when the bobber is elsewhere.
- The fill and drain rates scale with difficulty — harder targets are faster to lose and slower to catch.
Success: Progress reaches 100% → the target is caught, items are awarded.
Failure: Progress drains to 0% → the target escapes, no reward.
Spoiler: movement pattern descriptions
| Pattern | Behaviour | Difficulty range |
|---|---|---|
| Drift | Slowly picks a new destination every few seconds and glides toward it. Predictable rhythm. | Low |
| Dart | Pauses in place, then suddenly launches to a new position. The burst is smooth but fast. | Medium |
| Oscillate | Moves in a continuous sine wave. The oscillation frequency increases as its catch progress rises — the closer you are to catching it, the harder it fights. | Medium–High |
| Flee | Actively moves away from your bobber. If you leave it alone it drifts slowly, but close the gap and it races for the other end of the bar. | High |
Targets are hidden during play to preserve suspense:
| Icon | Reward type |
|---|---|
| Generic fish | A fish from the fish loot pool |
| Chest | Treasure (vanilla fishing treasure loot) |
Once you catch a target, its actual reward item is revealed before the success animation plays.
Each Fishtastic fish species has a temperament that determines the difficulty range and movement patterns you can expect when that species appears as a target. Temperament is defined in a data-driven registry, so pack authors can override or add new temperaments freely.
Spoiler: temperament table
| Temperament | Difficulty range | Movement patterns | Species |
|---|---|---|---|
| Docile | 0.10 – 0.30 | Drift | Bluegill, Shrimp, Starfish, Ocean Sunfish |
| Skittish | 0.25 – 0.45 | Drift, Flee | Neon Tetra, Moorish Idol, Parrotfish, Garden Eel |
| Wily | 0.40 – 0.65 | Oscillate, Flee | Lizardfish, Rainfordia, Royal Garden Eel, Giant Manta Ray |
| Aggressive | 0.60 – 0.80 | Dart, Flee | Northern Pike, Longnose Gar |
| Erratic | 0.70 – 0.95 | Dart, Oscillate | Portuguese Man O' War, Molten Moorish Idol, Frozen Giant Manta Ray |
Treasure targets do not have a temperament — their difficulty and pattern are rolled randomly.
- Sessions have 1–5 targets (Gaussian-distributed, default mean of 2). Worms bait shifts the mean to 3.
- Target difficulty and movement pattern are driven by the species' temperament for fish targets, or rolled randomly for treasure targets.
- The server generates all loot before the minigame starts. Client play cannot affect which items drop.
- The server validates catch time — sessions completed in under 1 second are flagged in the log.
- Sessions expire after 5 minutes (6000 ticks) of inactivity.
- Only one active session per player at a time.
At session end, the server awards caught items directly to your inventory (or drops them at your feet if full). Each fish catch is also recorded to the persistent leaderboard database. One piece of bait is consumed if at least one item was rewarded.
The server samples the loot pool at bite time using the following inputs:
| Factor | Effect |
|---|---|
| Bait type | Shifts vanilla vs. mod fish weights, treasure chance, target count, quality bias |
| Biome (hook position) | Per-species weight multipliers based on habitat |
| Time of day | Per-species weight multipliers (dawn, day, dusk, night) |
| Weather | Per-species weight multipliers (clear, rain, thunder) |
| Luck enchantment | Added to the treasure loot table luck parameter |
See Bait for full details on each factor and the formula used.