Modular Fishing System is a fully self-contained fishing system built around a state machine that manages every phase of the fishing experience.
The player aims at the water using a smooth screen-center raycast, casts the bobber along a realistic parabolic arc, waits for a randomized fish bite, then must land the fish using the included timing minigame, all handled automatically by the system.
The catch minigame features a moving cursor and an adjustable green
zone. Three built-in difficulty tiers scale the zone size, cursor speed, and time limit, making it suitable for casual players and challenge-seekers alike. Tiers are driven by the equipped rod and lure combination, so the player's gear choices directly affect the difficulty.
All components are built on interfaces, making Modular Fishing System highly customizable. The minigame, the water detection method, and the rod provider can all be replaced with your own implementations without modifying any core files.
If you prefer to get started quickly, a full demo implementation.
[THIS FISHING SYSTEM DOES NOT HAVE A INVENTORY SYSTEM OR ANY FISH] its a ready made fishing template with mini game that should be integrated with your own inventory system and your own fishes.
Content is fully customizable through ScriptableObject assets:
define as many rods, lures, and fish rewards as you need, assign tiers to each, and choose how the game resolves the final reward tier (rod-driven, lure-driven, highest, lowest, or a custom lookup table). The fishing line, bobber physics, animation timings, bite delay range, and minigame difficulty are all tunable from the Inspector no code changes required.
Modular Fishing System suits a wide range of genres:
- Farming and life simulation games (cozy fishing mini-activities)
- Open-world RPGs and survival games (fishing as a side mechanic)
- Casual and mobile games (light bite-and-catch loop)
- Dedicated fishing simulators (fully extensible foundation)
- Puzzle and adventure games (fishing as a gameplay beat)
The system requires no third-party dependencies and works with
Unity's standard Input system out of the box.