Preview: YouTube
Tebex: Buy for 19.99€ + VAT
Config
_4p = {
Framework = "esx", -- Framework you are using (esx, qbcore or custom)
dbsettings = { -- DATABASE SETTINGS
leaderboardUpdate = 5 --[[UPDATE LEADERBOARD EVERY X MINUTES, TO PREVENT HIGH SERVER LOADS]] * 60000,
savePlayerData = 5 --[[SAVE PLAYER DATA EVERY X MINUTES, TO PREVENT DATA LOSS]] * 60000,
},
rod_settings = {
item = "rod", -- ITEM NAME FOR THE FISHING ROD
breakingsettings = { -- ROD BREAKING SETTINGS
enabled = true, -- ENABLE ROD BREAKING
chance = 3, -- CHANCE OF ROD BREAKING (1-100)
maxFish = 25, -- MAX FISHES YOU CAN CATCH WITH THE ROD (0 = unlimited, till rod breaks)
-- maxFish = 0 -- MAX FISHES YOU CAN CATCH WITH THE ROD (0 = unlimited, till rod breaks)
},
throw_odds = {
perfect = 100, -- ODDS FOR CATCHING A FISH
good = 90, -- ODDS FOR CATCHING A FISH
ok = 70, -- ODDS FOR CATCHING A FISH
bad = 50, -- ODDS FOR CATCHING A FISH
},
pull_out_time = 1500, -- TIME TO PULL OUT THE ROD (IN MS)
UseItemKeyStandart = "G", -- DEFAULT KEY TO USE THE ROD
timeToFish = math.random(5000, 10000), -- TIME TO FISH (IN MS)
},
notify = function(message, source)
if IsDuplicityVersion() then
if _4p.Framework == "esx" then
TriggerClientEvent("esx:showNotification", source, message)
elseif _4p.Framework == "qbcore" then
TriggerClientEvent("QBCore:Notify", source, message)
else
print("^1[4p-FishingScript] ^3You are using a custom framework, please add a notification function to the config.lua^7")
end
else
if _4p.Framework == "esx" then
Framework.object.ShowNotification(message)
elseif _4p.Framework == "qbcore" then
Framework.object.Functions.Notify(message)
else
print("^1[4p-FishingScript] ^3You are using a custom framework, please add a notification function to the config.lua^7")
end
end
end,
lang = "en", -- LANGUAGE AT BOTTOM OF CONFIG.lua
generalSettings = {
command = "fish",
nicknameProtection = {
kick = false,
kickText = "You have been kicked from the server for inappropriate behavior. Please follow the server rules and guidelines to avoid future penalties.",
names = {
-- Offensive Terms: The list includes a wide range of offensive terms
"x","y",
},
urls = {
-- URLs: The URLs contain known spam domains and typical URL patterns that are often used for advertising or phishing.
"discord.gg/", "https://", "http://", "www.", ".com", ".net", ".org",
},
htmlTags = {
-- HTML Tags: The list includes HTML tags that can be used for Cross-Site Scripting (XSS) attacks. This helps ensure that no HTML tags can be used in usernames, which increases the security of your Server.
"<script", "</script>", "<iframe", "</iframe>", "<img", "</img>",
"<object", "</object>", "<embed", "</embed>", "<form", "</form>",
"<input", "</input>", "<button", "</button>", "<link", "</link>",
"<style", "</style>", "<meta", "</meta>", "<base", "</base>",
"<body", "</body>", "<head", "</head>", "<html", "</html>",
"<title", "</title>", "<div", "</div>", "<span>", "</span>",
"<a", "</a>", "<b", "</b>", "<i>", "</i>", "<p", "</p>", "<u>", "</u>",
"<center", "</center>", "<marquee", "</marquee>", "<script", "</script>"
},
},
XPPerRarity = { -- XP PER FISH RARITY
["A++"] = 100,
["A"] = 50,
["B"] = 25,
["C"] = 10
},
levelNicknames = { -- LEVEL NICKNAMES FOR EVERY 10 LEVELS
[0] = "Curious Beginner",
[10] = "Experienced Angler",
[20] = "Master of Waters",
[30] = "Fishing Captain",
[40] = "Legendary Angler",
[50] = "Supreme Fishmaster",
[60] = "Guardian of the Deep Waters",
[70] = "High Sea Fisher",
[80] = "Virtuoso Angler",
[90] = "Grandmaster of the Art of Fishing",
[100] = "God of the Ocean"
},
RarityMinSell = { -- MINIMUM SELL AMOUNT FOR EVERY RARITY
["A++"] = 1,
["A"] = 2,
["B"] = 5,
["C"] = 10
},
fishData = { -- FISH DATA FOR THE FISHING SCRIPT (you can easily add more fish, but remember to add the img to the (html/img/fish) folder, with the same name as the fish)
{name = "Lilawellen-Handfisch", rarity = "A++", chance = 0.1, price_per_fish = 11250.0},
{name = "Aqua-Tigerneonbarsch", rarity = "A++", chance = 0.5, price_per_fish = 2250.0},
{name = "Feuerwellen-Handfisch", rarity = "A++", chance = 1.5, price_per_fish = 750.0},
{name = "Prisma-Nebelfisch", rarity = "A++", chance = 2.5, price_per_fish = 450.0},
{name = "Goldflossen-Punktbarsch", rarity = "A", chance = 3.0, price_per_fish = 225.0},
{name = "Feuerfrost-Linienbarsch", rarity = "A", chance = 4.5, price_per_fish = 180.0},
{name = "Regenbogen-Korallenbarsch", rarity = "A", chance = 5.0, price_per_fish = 135.0},
{name = "Sonnenstrahlen-Feuerbarsch", rarity = "A", chance = 7.0, price_per_fish = 96.4},
{name = "Mystik-Kristallbarsch", rarity = "A", chance = 8.0, price_per_fish = 84.4},
{name = "Sonnenstreifen-Clownfisch", rarity = "B", chance = 10.0, price_per_fish = 45.0},
{name = "Himmelspunkt-Perlfisch", rarity = "B", chance = 12.0, price_per_fish = 37.5},
{name = "Goldschatten-Stripenbarsch", rarity = "B", chance = 13.0, price_per_fish = 34.6},
{name = "Nachtklinge-Schwertfisch", rarity = "B", chance = 10.0, price_per_fish = 45.0},
{name = "Nachtwald-Streifenbarsch", rarity = "B", chance = 17.0, price_per_fish = 26.5},
{name = "Glanzstrahl-Silberfisch", rarity = "C", chance = 20.0, price_per_fish = 11.3},
{name = "Azur-Kometenbarsch", rarity = "C", chance = 45.0, price_per_fish = 5.0},
{name = "Zebra-Glanzbarsch", rarity = "C", chance = 19.0, price_per_fish = 11.8},
{name = "Waldwelle-Fisch", rarity = "C", chance = 30.0, price_per_fish = 7.5},
{name = "Sternenblitz-Aquabarsch", rarity = "C", chance = 20.0, price_per_fish = 11.3}
},
levels = { -- LEVEL DATA FOR THE FISHING SCRIPT, (you can easily add more levels, the level at the top is the max level)
{ level = 100, needxp = 23500 },
{ level = 99, needxp = 23250 },
{ level = 98, needxp = 23000 },
{ level = 97, needxp = 22750 },
{ level = 96, needxp = 22500 },
{ level = 95, needxp = 22250 },
{ level = 94, needxp = 22000 },
{ level = 93, needxp = 21750 },
{ level = 92, needxp = 21500 },
{ level = 91, needxp = 21250 },
{ level = 90, needxp = 21000 },
{ level = 89, needxp = 20750 },
{ level = 88, needxp = 20500 },
{ level = 87, needxp = 20250 },
{ level = 86, needxp = 20250 },
{ level = 85, needxp = 20000 },
{ level = 84, needxp = 19750 },
{ level = 83, needxp = 19500 },
{ level = 82, needxp = 19250 },
{ level = 81, needxp = 19000 },
{ level = 80, needxp = 18750 },
{ level = 79, needxp = 18500 },
{ level = 78, needxp = 18250 },
{ level = 77, needxp = 18000 },
{ level = 76, needxp = 17750 },
{ level = 75, needxp = 17500 },
{ level = 74, needxp = 17250 },
{ level = 73, needxp = 17500 },
{ level = 72, needxp = 17250 },
{ level = 71, needxp = 17000 },
{ level = 70, needxp = 16750 },
{ level = 69, needxp = 16500 },
{ level = 68, needxp = 16250 },
{ level = 67, needxp = 16000 },
{ level = 66, needxp = 15750 },
{ level = 65, needxp = 15500 },
{ level = 64, needxp = 15250 },
{ level = 63, needxp = 15000 },
{ level = 62, needxp = 14750 },
{ level = 61, needxp = 14500 },
{ level = 60, needxp = 14250 },
{ level = 59, needxp = 14000 },
{ level = 58, needxp = 13750 },
{ level = 57, needxp = 13500 },
{ level = 56, needxp = 13250 },
{ level = 55, needxp = 13000 },
{ level = 54, needxp = 12750 },
{ level = 53, needxp = 12500 },
{ level = 52, needxp = 12250 },
{ level = 51, needxp = 12000 },
{ level = 50, needxp = 11750 },
{ level = 49, needxp = 11500 },
{ level = 48, needxp = 11250 },
{ level = 47, needxp = 11000 },
{ level = 46, needxp = 10750 },
{ level = 45, needxp = 10500 },
{ level = 44, needxp = 10250 },
{ level = 43, needxp = 10000 },
{ level = 42, needxp = 9750 },
{ level = 41, needxp = 9500 },
{ level = 40, needxp = 9250 },
{ level = 39, needxp = 9000 },
{ level = 38, needxp = 8750 },
{ level = 37, needxp = 8500 },
{ level = 36, needxp = 8250 },
{ level = 35, needxp = 8000 },
{ level = 34, needxp = 7750 },
{ level = 33, needxp = 7500 },
{ level = 32, needxp = 7250 },
{ level = 31, needxp = 7000 },
{ level = 30, needxp = 6750 },
{ level = 29, needxp = 6500 },
{ level = 28, needxp = 6250 },
{ level = 27, needxp = 6000 },
{ level = 26, needxp = 5750 },
{ level = 25, needxp = 5500 },
{ level = 24, needxp = 5250 },
{ level = 23, needxp = 5000 },
{ level = 22, needxp = 4750 },
{ level = 21, needxp = 4500 },
{ level = 20, needxp = 4250 },
{ level = 19, needxp = 4000 },
{ level = 18, needxp = 3700 },
{ level = 17, needxp = 3450 },
{ level = 16, needxp = 3150 },
{ level = 15, needxp = 3000 },
{ level = 14, needxp = 2750 },
{ level = 13, needxp = 2500 },
{ level = 12, needxp = 2350 },
{ level = 11, needxp = 2100 },
{ level = 10, needxp = 1900 },
{ level = 9, needxp = 1600 },
{ level = 8, needxp = 1400 },
{ level = 7, needxp = 1250 },
{ level = 6, needxp = 1000 },
{ level = 5, needxp = 850 },
{ level = 4, needxp = 600 },
{ level = 3, needxp = 500 },
{ level = 2, needxp = 300 },
{ level = 1, needxp = 0 }
}
},
language = { -- TRANSLATION FOR THE FISHING SCRIPT
["en"] = {
noRodNotification = "You have no fishing rod.",
nearWaterNotification = "Move closer to the water.",
baitThrownNotification = "You have thrown the bait into the water.",
noFishCaughtNotification = "You didn't catch any fish.",
useRodKeyMapping = "Use fishing rod",
sellFishNotification = "You need to sell at least %d of this fish.",
rodBrokeNotification = "Your fishing rod broke.",
-- UI GENERAL
BigText = "FISHING",
quitButton = "Quit",
throwRod = "Cast Rod",
throwRodSpace = "Press Space to cast the rod",
newCatch = "NEW CATCH!",
catchProbability = "Probability: %s%",
-- LEVEL UP
levelUp = "NEW LEVEL!",
levelUpText = "You have reached level %s!",
levelUpMax = "You have reached the maximum level!",
-- Settings Page
pageTitleSettings = "Settings",
rank = "Rank: #%s",
name = "Name: ",
nickname = "Nickname: ",
level = "Level: ",
leaderboard = "Leaderboard: #",
fishCaught = "Fish caught: ",
manageNotifications = "Manage notifications",
off = "Off",
on = "On",
settingsDescriptionTitle = "Settings",
settingsDescriptionDescription = "You can set your own nickname by simply clicking on it and entering a new one. Your nickname will be displayed on the leaderboard, and other players will no longer see your real name.",
-- Fish Page
pageTitleFish = "Rarities",
fishText01 = "Rarity",
fishText02 = "Min. Amount",
fishText03 = "Probability",
-- Sell Page
pageTitleSell = "Sell",
inventoryTitle = "YOUR INVENTORY",
selectedFish = "Selected Fish",
todaysPrice = "Today's Price: ",
sellingAmount = "Selling Amount",
sellButton = "Sell",
sellAllButton = "Sell All",
fishSold = "FISH SOLD!",
sellFishMessage = "You sold %dx %s for %s dollars!",
-- Achievements Page
pageTitleAchievements = "Achievements",
totalFish = "Total fish caught: %s",
achievementsDescriptionTitle = "Achievements",
achievementsDescriptionDescription = "Here you can see a list of all the fish you've caught and how many of them you've caught. You can also see how many different types of fish you've caught in total.",
-- Leaderboard Page
pageTitleLeaderboard = "Leaderboard",
playerLuckRate = "Luck Rate:",
playerFishCaught = "Fish Caught:",
leaderboardDescriptionTitle = "Leaderboard",
leaderboardDescriptionDescription = "Here you can see the best anglers on the server. You can see what statistics they have and how they compare to other players, maybe you can beat them!",
-- TIMING LABELS
BadTimingTitle = "Bad Timing",
BadTimingDesc = "The probability of catching a fish is now low!",
OKTimingTitle = "OK Timing",
OKTimingDesc = "The probability of catching a fish is now a little higher!",
GoodTimingTitle = "Good Timing",
GoodTimingDesc = "The probability of catching a fish is now higher!",
PerfectTimingTitle = "Perfect Timing",
PerfectTimingDesc = "The probability of catching a fish is 100%!",
},
["de"] = {
noRodNotification = "Du hast keine Angelrute.",
nearWaterNotification = "Stelle dich näher ans Wasser.",
baitThrownNotification = "Du hast den Köder ins Wasser geworfen.",
noFishCaughtNotification = "Du hast keinen Fisch gefangen.",
useRodKeyMapping = "Angelrute benutzen",
sellFishNotification = "Du musst mindestens %d von diesem Fisch verkaufen.",
rodBrokeNotification = "Deine Angelrute ist kaputt gegangen.",
-- UI GENERAL
BigText = "ANGELN",
quitButton = "Verlassen",
throwRod = "Angel auswerfen",
throwRodSpace = "Drücke die Leertaste, um die Angel auszuwerfen",
newCatch = "NEUER FANG!",
catchProbability = "Wahrscheinlichkeit: %s%",
-- LEVEL UP
levelUp = "NEUES LEVEL!",
levelUpText = "Du hast Level %s erreicht!",
levelUpMax = "Du hast das maximale Level erreicht!",
-- Settings Page
pageTitleSettings = "Einstellungen",
rank = "Rang: #%s",
name = "Name: ",
nickname = "Spitzname: ",
level = "Level: ",
leaderboard = "Rangliste: #",
fishCaught = "Fische gefangen: ",
manageNotifications = "Benachrichtigungen verwalten",
off = "Aus",
on = "An",
settingsDescriptionTitle = "Einstellungen",
settingsDescriptionDescription = "Du kannst dir deinen eigenen Spitznamen geben, indem du einfach darauf klickst und ihn eingibst. Dein Spitzname wird auf der Bestenliste angezeigt, und andere Spieler werden deinen echten Namen nicht mehr sehen.",
-- Fish Page
pageTitleFish = "Seltenheiten",
fishText01 = "Seltenheit",
fishText02 = "Min. Anzahl",
fishText03 = "Wahrscheinlichkeit",
-- Sell Page
pageTitleSell = "Verkaufen",
inventoryTitle = "DEIN INVENTAR",
selectedFish = "Ausgewählter Fisch",
todaysPrice = "Heutiger Preis: ",
sellingAmount = "Verkaufsmenge",
sellButton = "Verkaufen",
sellAllButton = "Alles verkaufen",
fishSold = "FISCH VERKAUFT!",
sellFishMessage = "Du hast %dx %s für %s Dollar verkauft!",
-- Achievements Page
pageTitleAchievements = "Erfolge",
totalFish = "Gesamt gefangene Fischarten: %s",
achievementsDescriptionTitle = "Erfolge",
achievementsDescriptionDescription = "Hier siehst du eine Liste aller gefangenen Fische und wie viele du von ihnen gefangen hast. Du kannst auch sehen, wie viele Fischarten du insgesamt gefangen hast.",
-- Leaderboard Page
pageTitleLeaderboard = "Bestenliste",
playerLuckRate = "Glücksrate:",
playerFishCaught = "Gefangene Fische:",
leaderboardDescriptionTitle = "Bestenliste",
leaderboardDescriptionDescription = "Hier siehst du die besten Angler des Servers. Du kannst sehen, welche Statistiken sie haben und wie sie im Vergleich zu anderen Spielern abschneiden, vielleicht kannst du sie ja überholen!",
-- TIMING LABELS
BadTimingTitle = "Schlechtes Timing",
BadTimingDesc = "Die Wahrscheinlichkeit, einen Fisch zu fangen, ist jetzt niedrig!",
OKTimingTitle = "Akzeptables Timing",
OKTimingDesc = "Die Wahrscheinlichkeit, einen Fisch zu fangen, ist jetzt ein wenig höher!",
GoodTimingTitle = "Gutes Timing",
GoodTimingDesc = "Die Wahrscheinlichkeit, einen Fisch zu fangen, ist jetzt höher!",
PerfectTimingTitle = "Perfektes Timing",
PerfectTimingDesc = "Die Wahrscheinlichkeit, einen Fisch zu fangen, beträgt 100%!",
},
["pl"] = {
noRodNotification = "Nie masz wędki.",
nearWaterNotification = "Zbliż się do wody.",
baitThrownNotification = "Rzuciłeś przynętę do wody.",
noFishCaughtNotification = "Nie złapałeś żadnej ryby.",
useRodKeyMapping = "Użyj wędki",
sellFishNotification = "Musisz sprzedać co najmniej %d z tej ryby.",
rodBrokeNotification = "Twoja wędka się złamała.",
-- UI GENERAL
BigText = "RYBOŁÓWSTWO",
quitButton = "Wyjdź",
throwRod = "Rzut wędki",
throwRodSpace = "Naciśnij spację, aby rzucić wędkę",
newCatch = "ZŁAPANY!",
catchProbability = "Prawdopodobieństwo: %s%",
-- LEVEL UP
levelUp = "NOWY POZIOM!",
levelUpText = "Osiągnąłeś poziom %s!",
levelUpMax = "Osiągnąłeś maksymalny poziom!",
-- Settings Page
pageTitleSettings = "Ustawienia",
rank = "Ranking: #%s",
name = "Imię: ",
nickname = "Pseudonim: ",
level = "Poziom: ",
leaderboard = "Ranking: #",
fishCaught = "Złowione ryby: ",
manageNotifications = "Zarządzaj powiadomieniami",
off = "Wyłączone",
on = "Włączone",
settingsDescriptionTitle = "Ustawienia",
settingsDescriptionDescription = "Możesz ustawić swój własny pseudonim, klikając na niego i wpisując nowy. Twój pseudonim będzie wyświetlany na liście najlepszych graczy, a inni gracze nie zobaczą już twojego prawdziwego imienia.",
-- Fish Page
pageTitleFish = "Rzadkości",
fishText01 = "Rzadkość",
fishText02 = "Min. Ilość",
fishText03 = "Prawdopodobieństwo",
-- Sell Page
pageTitleSell = "Sprzedaj",
inventoryTitle = "TWÓJ EKWIPUNEK",
selectedFish = "Wybrana ryba",
todaysPrice = "Dzisiejsza cena: ",
sellingAmount = "Ilość sprzedaży",
sellButton = "Sprzedaj",
sellAllButton = "Sprzedaj wszystko",
fishSold = "RYBA SPRZEDANA!",
sellFishMessage = "Sprzedałeś %dx %s za %s dolarów!",
-- Achievements Page
pageTitleAchievements = "Osiągnięcia",
totalFish = "Łącznie złowione ryby: %s",
achievementsDescriptionTitle = "Osiągnięcia",
achievementsDescriptionDescription = "Tutaj możesz zobaczyć listę wszystkich złowionych ryb i ile z nich złapałeś. Możesz również zobaczyć, ile różnych gatunków ryb złapałeś łącznie.",
-- Leaderboard Page
pageTitleLeaderboard = "Ranking",
playerLuckRate = "Wskaźnik szczęścia:",
playerFishCaught = "Złowione ryby:",
leaderboardDescriptionTitle = "Ranking",
leaderboardDescriptionDescription = "Tutaj możesz zobaczyć najlepszych wędkarzy na serwerze. Możesz zobaczyć, jakie statystyki posiadają i jak się mają w porównaniu do innych graczy, może uda ci się ich pokonać!",
-- TIMING LABELS
BadTimingTitle = "Zły czas",
BadTimingDesc = "Prawdopodobieństwo złapania ryby jest teraz niskie!",
OKTimingTitle = "OK czas",
OKTimingDesc = "Prawdopodobieństwo złapania ryby jest teraz nieco wyższe!",
GoodTimingTitle = "Dobry czas",
GoodTimingDesc = "Prawdopodobieństwo złapania ryby jest teraz wyższe!",
PerfectTimingTitle = "Idealny czas",
PerfectTimingDesc = "Prawdopodobieństwo złapania ryby wynosi 100%!",
}
}
}
NOW WITH QBCORE SUPPORT!
If you’re experiencing any issues, don’t worry! We’ve got you covered. Simply open a ticket in our Discord, and our team will work hard to assist you.
Key Features:
🡂 Competition with leaderboard
🡂 Adjust fishing locations, difficulty, and rewards to fit your server’s theme and style
🡂 Exciting sound effects (watch previewto hear)
🡂 Easy Config
🡂 No more AFK-Fishing. (We can add AFK if there are enough requests)
🡂 Personalize: Set up custom leaderboard displays and tailor sound effects to match your server’s vibe.
4p-crafting: click
4p-repairkit: click
4p-pausemenu: click
4p-dice: click
Code is accessible | No |
Subscription-based | No |
Lines (approximately) | 2000 |
Requirements | es_extended |
Support | Yes |