Minecraft Fishing Plugin LiteFish wiki
Demo
Before buying, you can test this plugin on your server. To do this, visit the plugin's discord (https://discord.gg/PgDfrQx22f), there you will find a free version for testing with accompanying documentation
ZWMxJIY.gifQFdgILX.gif
About
This plugin allows you to set custom loot for each biome. It also allows you to diversify fishing with a new mini-game.
ShowCase: 
New Fishing System
KvR1yov.gif
You can disable this mini-game in the config, leaving vanilla fishing, just setting custom loot for each biome category and its drop rate!
You can only add a mini game to your server. (Tested with PyroFishPro)
 
Also, at the end of fishing, there is a chance to move to the next level of rarity. A total of 5 rarity levels have been implemented. All parameters, including custom loot, drop chance and rarity increase chance are configured in the GUI.
GUI
The GUI allows you to create categories where you can add a list of vanilla minecraft biomes to specify what loot will drop in these biomes
aTmGVnd.gif

You can add items directly from the inventory, adjust their drop rate, health and experience

 TZF8kqq.gif

Fishing Catalog

Players will now be interested in fishing because now everyone has their own personal fish catalogue. It records all the fish caught, the maximum and minimum weight that the player caught, as well as additional information about the studied fish. Players can also compete to see who caught how many of a certain type of fish and who has the biggest catch!

attachment.png

attachment.png

attachment.png

attachment.png

 

Bait

You can create customized bait with given characteristics. You can attach 10 baits to the fishing rod at the same time (changes in the config). At the beginning of fishing, one bait is spent and its effect is applied. To attach it to a fishing rod, click LMB on the fishing rod while selecting the bait. To remove the bait, right-click on the fishing rod with an empty cursor.

attachment.png

attachment.png

When you start fishing, the bait will activate and decrease

attachment.png

Enchantments

Allows you to customize both vanilla and custom enchantments. Enchantments can stack

attachment.png
Treasure

Allows you to create a group of items that can appear in a box with a certain chance for each item
YCgR6uM.gif

Monster

Allows you to set the chance at which a monster will eat prey in a given biome category
 OO0M6yW.gif
Custom fish/weight
You can add custom random magnitude values ​​to rare drops.
attachment.png
attachment.png
 
You can individually set the range for each drop. 
attachment.png
Chances are increased at lower values. Accordingly, values ​​close to maxValue will be extremely rare.

Also if you click on the RMB frame (even being in someone else's private). Additional information about the caught fish will be displayed for 3 seconds
attachment.png
 
Tournaments
Tournaments will allow you to diversify your gaming experience. Create time-limited events for players to compete against each other
lfish_t1.webp
lfish_t2.webp
 
PlaceholderAPI
In the LiteFish.json file, you can set a dynamic chance based on data from various plugins using the PlaceholderAPI.
 
"expressions": {
    "chanceRare": "10 + 15 * (%ecoskills_fishing% / 50)",
    "chanceEpic": "10 + 10 * (%ecoskills_fishing% / 50)",
    "chanceLegendary": "10 + 10 * (%ecoskills_fishing% / 50)",
    "chanceImmortal": "10 - 5 * (%ecoskills_fishing% / 50)"
  }
"chanceMonster": "50 - 25 * (%ecoskills_fishing% / 50)"
(lvl0=50%, lvl50=0%)
Catch entity
The plugin allows you to enable catch of any entity, along with NBT data
 3WUZq0U.gif
Enable in config "dropEntityFromEgg": true
Give yourself a summon egg with the right NBT tags and just move it to the GUI
/give @p cat_spawn_egg{HandDropChances:[2F,2F],HandItems:[{id:"minecraft:diamond",Count:64},{}]}}
You can disable this feature if you want the eggs to drop as an item.
 
Script
The plugin supports its own scripts that allow you to add interactive fishing.
Example: a player is hooked on a very rare drop that contains a script:
 "script": [
            "before:effect DARKNESS 10 1",
            "before:effect SLOW 10 5",
            "before:playsound ENTITY_EVOKER_PREPARE_ATTACK 1 0.5",
            "before:msg\u003d{#830FBD}A monster rises from the depths",
            "hit:particle BOBBER GLOW_SQUID_INK",
            "hit:playsound ENTITY_EVOKER_AMBIENT 1 0.01",
            "hit:playsound ENTITY_LIGHTNING_BOLT_THUNDER 1 1",
            "miss:effect WITHER 5 3",
            "miss:playsound ENTITY_EVOKER_HURT 1 0.01"  ]


Here is the behavior of this script in the game:
MySQL
You can add your own database, where all the items caught by the players will be logged. To do this, look at the mysql.json file. The database structure looks simple to use. If you are the owner of a server where thousands of players are fishing at the same time, then let me know and I will add a normalized table for your needs with batch requests!
id uuid date item_type item_custom_name item_weight item_count
int varchar timestamp varchar varchar float int
It is not necessary to create a table, it is created automatically if it does not exist.
item_custom_name is needed to differentiate the type of fish if you are using CutomFish and similar plugins
WorldGuard support
You can now add regions to categories from the WorldGuard plugin.
(For example, you can make a fountain at the spawn, from where coins will be caught)