# How does the fishing skill work?

+1 vote
838 views

view edits | edited
Which is the percentage of catching a fish based on the fishing skill? I read that at fishing skill level 77 and beyond you have a 50% chance of fishing but which is the formula?
by (17,345 points)
by (265 points)
No this is the formula of leveling skill up I am seeking the formula to calculate the % of successful fishing

by (509 points)
view edits | edited

There is an old research article on tibia-stats.com from 2011 linked by the TibiaWiki: https://web.archive.org/web/20210128160105/http://www.tibia-stats.com/index.php?akcja=6003&research=fishing (from the web archive). I'm copying the images here for reference. and reverse engineer the formula from the slope of the lines.

Let's call L' = skill - 10.

The plot of normal fishing success ratio (Y) vs skill (X) (by Gorak):

A simple formula that would generate such line is min(10 + L' * 0.6, 50)%

Ice fishing is harder (the formula was not tested all the way to skill 100 because Northern Fishburger was bugged at that time):

A simple formula that would generate such line is min(5+L'/2, 50)%

Mechanical Fish – there is (was) a fixed 1/6 success ratio, but the outcome was depending on the skill (X). Similarly, it was not tested beyond skill 90.

A simple formula that would generate such line is min(24 + L'/3, 50)% multiply that by 1/6 base chance to get min(4 + L'/18, 8.33)%

All credit goes to Gorak and tibia-stats.com

by (265 points)
You have a formula?
by (509 points)
edited
It can be read from the slope of the line. Let's call B the base chance and L' = skill - 10.
From the first chart we have min(10 + L' * 40 / 77,  50) percent. I suspect that the actual numbers are round and that would be min(10 + L' * 0.6, 50)%.

For ice fishing that would be min(5+L'/2, 50)% and for mechanical fish looks like min(24 + L'/3, 50) * 1/6 percent.

Edit after writing a comment do Dark Gladir's post: old formula: min(0.633% * lvl, 50%). I guess it was meant to be 0.625 (100 / 80 / 2).
by (495 points)

Assuming 10% is exactly 10.00 and 50% is exactly 50.00.

Function: f(x)=0.597015x+4.02985

Skill 10 10.00%

Skill 20 15.97%

Skill 30 21.94%

Skill 40 27,91%

Skill 50 33.88%

Skill 60 39.85%

Skill 70 50.00%

Information extracted from v7.70 files and explained by Michael#4463:

- If you fish on a tile that can contain fish, you gain 1 skill try

- If you catch a fish, the tile transforms to to another ID that cannot grant fish and will not give a skill try, but does still allow the 'splash'

- The formula being used to decide if you catch a fish is as follows: math.random(1, 100) <= math.min(math.max(10 + (player:getEffectiveSkillLevel(SKILL_FISHING) - 10) * 0.597, 10), 50)

So, lets try to put that in words:

If a random number between 1 and 100 is less than or equal to the lesser of the greater of (10+skillLevel-10)*0.597 and 10 and 50.

That is a bit wordy, and the 10+SkillLevel-10 seems kind of silly, but lets do a quick worked example.

-- Lets say you "roll" a 50 with the math.random

>> if 50 is less than or equal to

-- Lets say your skill level is also 50

>> greater of 10+50-10 (50) * 0.597 (29.85) and 10. (29.85)

-- The lesser of 29.85 and 50 is 29.85

-- Back to the first part:

>> 50 is not less than or equal to 29.85, and so you did not catch a fish

by (509 points)
There is something fishy with this code, especially the formula, as the accuracy is superfluous – 0.003 has no influence on the result. I suspect that only the first two points were informed from these files.

In disbelief I've asked a multi-headed friend of a friend, to check it in the anti-Bondy archives produced by the gods of Ab'Dendriel residents, and thankfully the Kazordoon dwellers were to help with the infestation of spiders!

The actual formula was as follows:
1. Roll a number from 0 to 79.
2. If your skill is at least that, flip a coin.