Fishing Minigame System - Power Cast - Reel - Cinematic | NPC fish-selling dialogue | Animation | Mobile
The cast has weight. The reel has tension. The catch has a moment worth sharing. This is the fishing system your players will talk about.
Power Cast System
Reel Minigame
Cinematic Camera System
Fish as Real Items
Zone System
NPC Sell Shop
Rod System (full stats)
Animation System
Multiplayer Social Sync
Security
The cast has weight. The reel has tension. The catch has a moment worth sharing. This is the fishing system your players will talk about.
- Hold to charge the power gauge — release at peak for a "Perfect!" timing bonus
- Perfect cast grants bonus distance and a Luck multiplier toward rarer fish that round
- Bezier arc trajectory — the line curves naturally through the air toward the water
- Raycast targeting indicator shows exactly where the bobber will land before you release
- All cast logic runs on the client for zero latency feel, validated server-side on land
- On bite, a tension bar challenge begins — keep the fish inside the safe zone to reel it in
- Fish zone moves based on rarity: Common fish drift slowly, Legendary fish thrash and spike
- 5 difficulty tiers: Easy → Normal → Hard → Expert → Insane — assigned per fish in config
- Power rod stat determines minigame difficulty balance: higher Power = more forgiving window
- Control rod stat scales the player's green zone size — visible progression when upgrading rods
- Fail the reel → fish escapes, cooldown resets — every attempt carries real stakes
- During cast and reel: camera zooms in cinematically, smooth and frame-by-frame at RenderStepped (60fps)
- During the wait: camera returns to free-look — players can turn around, chat, look at the scenery
- On bite: Smart Focus kicks in — camera gently rotates toward the bobber on its own
- All transitions are smooth — no jarring cuts, no camera snap
- Haptic feedback on mobile: phone vibrates on bite for console-feel response
- Fish spawns as a holdable Tool in backpack on successful catch
- Model scales to match the actual catch weight — big fish visually bigger
- Weight-based sell value: heavier catch = higher payout, formula runs server-side
- Terrain water and tagged Part zones both supported
- Per-zone loot pool, rarity weights, and fish list — all configured in FishData
- Same system as Auto tier: tag-based NPC, live price display, sell one or all
- SellService.SetTransactionHandler for clean economy integration
- Extend Reward to grant EXP, update a bestiary, fire badges, or broadcast rare catches
- Power (Number 1–5): sets minigame difficulty balance for that rod
- Luck (Number): multiplier for rare fish chance per cast
- Control (Number): scales the player's green zone size in the reel minigame
- MinigameEnabled (Boolean): override to skip minigame on any rod
- Recommended tiers included in config: Starter / Pro / Master / Mythical
- Full phase set: idle → charge stance → cast → wait → bite reaction → reel → catch
- Track cache prevents zombie tracks and memory leaks across sessions
- Smooth fade blending (0.3s) between all phases — no animation pop
- Phase guard: network latency cannot trigger wrong animation out of sequence
- R15 and R6 both supported
- Other players see your bobber and fishing line in real-time (client-side Raycast, server-friendly)
- "!" billboard reaction visible to nearby players when fish bites — everyone knows you're fighting one
- Tackle instances cleaned up automatically — zero memory leak across sessions
- FSM prevents logic overlap — can't trigger reel while mid-cast
- Server validates: distance, cooldown, state, rod equipped — every action
- Anti-distance hack: if player warps away from bobber during reel, line breaks server-side
- Server-side loot and sell calculation — no client can fabricate fish data
- Remote throttling and self-healing state on unexpected errors
