Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- i learned how to make clean code so now you guys cant call me skids for sus looking code 😜
- local FischAPI = {}
- local VIM = game:GetService("VirtualInputManager")
- local VI = {}
- local Options = {
- AutoShake = false,
- AutoMinigame = false, --Later version
- AutoMinigameBlatant = false,
- AutoCast = false,
- PerfectCast = false, --Later version
- WebhookURL = "",
- WebhookNotifications = false,
- FloatOnWater = false,
- Lock = false,
- MegaladonHunting = false,
- }
- local Internal = {
- AutoMinigameDownPerUp = 2,
- AutoMinigameDownPerUpInternal = AutoMinigameDownPerUp,
- Timer = 301,
- FloatPart = nil,
- LockedPosition = nil,
- MegaladonPosition = nil,
- Megaladon = false,
- MegHuntPlat = nil,
- MegHuntPos = nil
- }
- local Utils = {}
- local UI = {}
- local CalibrationData = {}
- local FischUser = {}
- local NEVERLOSE = loadstring(game:HttpGet("https://raw.githubusercontent.com/IayZBoy/TrollScripts/main/randomuilib.lua"))()
- local Notification = NEVERLOSE.Notification();
- NEVERLOSE:Theme("dark")
- --UI
- for Setting, Value in pairs(Options) do
- if Value == false then
- UI[Setting] = function(Val)
- Options[Setting] = Val
- end
- end
- end
- function UI.Initialize()
- --UI
- local Windows = NEVERLOSE:AddWindow("Nexam Hub","Nexam Hub - Fisch - V0.0.3 - discord.gg/nexam")
- local FishingTab = Windows:AddTab("Fishing", "earth")
- local Interactions = Windows:AddTab("Interactions", "list")
- local AreaTeleportsTab = Windows:AddTab("Area Teleports", "earth")
- local MegaladonHunting = Windows:AddTab("Megaladon Hunting", "earth")
- local WebhookTab = Windows:AddTab("Webhook", "list")
- local MechanicsSection = FishingTab:AddSection("Mechanics", "left")
- local Convenience = FishingTab:AddSection("Convenience", "left")
- local CreditsSection = FishingTab:AddSection("Credits", "right")
- local Teleports = AreaTeleportsTab:AddSection("Teleports", "left")
- local Actions = Interactions:AddSection("Actions", "left")
- local WebhookSection = WebhookTab:AddSection("Webhook", "left")
- Actions:AddButton("Sell All", FischUser.Sell)
- Convenience:AddToggle("Float On Water", false, UI.FloatOnWater)
- Convenience:AddLabel("Turn ON to walk around and choose spot.")
- Convenience:AddLabel("Turn OFF to choose your position.")
- Convenience:AddToggle("Lock Position", false, function(v) Internal.LockedPosition = game.Players.LocalPlayer.Character.HumanoidRootPart.Position
- UI.Lock(v) end)
- MechanicsSection:AddToggle("Auto Shake", false, UI.AutoShake)
- MechanicsSection:AddToggle("Auto Reel (Blatant)", false, UI.AutoMinigameBlatant)
- MechanicsSection:AddToggle("Auto Cast", false, UI.AutoCast)
- WebhookSection:AddButton(
- "Set Webhook URL",
- function()
- NEVERLOSE:KeySystem(
- "Webhook URL - Put URL as key and click Submit to set it.",
- "",
- function(URL)
- Options.WebhookURL = URL
- Notification:Notify("info", "Set Webhook Successfully", "Set webhook to "..URL, 5)
- return true
- end
- ):Callback(function()end)
- end
- )
- WebhookSection:AddToggle(
- "Send Webhook Notifications",
- false,
- UI.WebhookNotifications
- )
- for Place, Position in pairs(CalibrationData.Positions) do
- Teleports:AddButton(
- "Teleport to "..Place,
- function()
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Position
- end
- )
- end
- local MegHunt = MegaladonHunting:AddSection("Hunting", "left")
- local HuntOrNo = MegHunt:AddToggle("Hunt Megaladon", false, UI.MegaladonHunting)
- MegHunt:AddLabel("If a Megaladon is spotted within the server,")
- MegHunt:AddLabel("it will override all options and")
- MegHunt:AddLabel("hunt for it.")
- MegHunt:AddLabel("It will go back to normal once you or someone else")
- MegHunt:AddLabel("has caught it.")
- Actions:AddButton("Open/Close Boat UI", function()
- FischUser.OpenBoatUI()
- end)
- CreditsSection:AddLabel("Fisch Nexam Hub Script by dynamicarrays")
- CreditsSection:AddButton(
- "Discord",
- function()
- setclipboard("discord.gg/nexam")
- end
- )
- local AbundanceZoneSection = FishingTab:AddSection("Abundances", "right")
- local Ab = {}
- local Ab2 = {}
- local Choice = nil
- local LabeledChance = nil
- local AbundanceChoice = AbundanceZoneSection:AddDropdown("Abundances", Ab, "Loading", function(D)
- LabeledChance:Text("Chance: "..tostring(Ab2[D].Chance).."%")
- Choice = Ab2[D]
- end)
- LabeledChance = AbundanceZoneSection:AddLabel("Chance: 0%")
- local GotoAbundance = AbundanceZoneSection:AddButton("Go to Abundance", function()
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Vector3.new(Choice.Position.X, 137.77, Choice.Position.Z)
- end)
- local FishRadarPlaces = {}
- local I = 0
- while I < 100 do
- I = I + 1
- FishingTab:AddSection("Scrolling Space", "right")
- end
- while task.wait(5) do
- local Places = FischAPI.GetAllAbundanceZones()
- Ab2 = Places
- Ab = {}
- local FoundMeg = false
- for Fish, Info in pairs(Ab2) do
- if string.match(Fish, "Megalodon") then
- Internal.Megaladon = true
- FoundMeg = true
- Internal.MegaladonPosition = Info.Position
- end
- table.insert(Ab, Fish)
- end
- if FoundMeg == false then
- Internal.Megaladon = false
- Internal.MegaladonPosition = nil
- pcall(function()
- Internal.MegHuntPlat:Destroy()
- end)
- end
- AbundanceChoice:Refresh(Ab)
- end
- end
- --Utils
- function Utils.Overlap(gui1, gui2)
- local gui1_topLeft = gui1.AbsolutePosition
- local gui1_bottomRight = gui1_topLeft + gui1.AbsoluteSize
- local gui2_topLeft = gui2.AbsolutePosition
- local gui2_bottomRight = gui2_topLeft + gui2.AbsoluteSize
- return ((gui1_topLeft.x < gui2_bottomRight.x and gui1_bottomRight.x > gui2_topLeft.x) and (gui1_topLeft.y < gui2_bottomRight.y and gui1_bottomRight.y > gui2_topLeft.y))
- end
- function Utils.SendWebhookData(Link, Text)
- local DataForm = Text
- local maxLength = 1950
- local chunks = {}
- local HttpService = game:GetService("HttpService")
- while #DataForm > 0 do
- local chunk = DataForm:sub(1, maxLength)
- if #DataForm > maxLength then
- local lastNewline = chunk:match(".*\n()")
- if lastNewline then
- chunk = DataForm:sub(1, lastNewline - 1)
- end
- end
- table.insert(chunks, chunk)
- DataForm = DataForm:sub(#chunk + 1)
- end
- for i, chunk in chunks do
- local data = {
- content = chunk
- }
- request({
- Url = Link,
- Method = "POST",
- Headers = {
- ["Content-Type"] = "application/json"
- },
- Body = HttpService:JSONEncode(data)
- })
- end
- end
- --VI
- VI.State = false
- function VI.ClickUI(ui)
- local x = ui.AbsolutePosition.X + (ui.AbsoluteSize.X / 2)
- local y = ui.AbsolutePosition.Y + (ui.AbsoluteSize.Y / 2)
- VIM:SendMouseButtonEvent(x, y, 0, true, game, 0)
- task.wait(0.05)
- VIM:SendMouseButtonEvent(x, y, 0, false, game, 0)
- end
- function VI.Down(ui)
- VI.State = true
- local x = ui.AbsolutePosition.X + (ui.AbsoluteSize.X / 2)
- local y = ui.AbsolutePosition.Y + (ui.AbsoluteSize.Y / 2)
- VIM:SendMouseButtonEvent(x, y, 0, true, game, 0)
- end
- function VI.Up(ui)
- VI.State = false
- local x = ui.AbsolutePosition.X + (ui.AbsoluteSize.X / 2)
- local y = ui.AbsolutePosition.Y + (ui.AbsoluteSize.Y / 2)
- VIM:SendMouseButtonEvent(x, y, 0, false, game, 0)
- end
- --API
- function FischAPI.TapShake()
- local ShakeGUI = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("shakeui")
- local Target = ShakeGUI.safezone.button
- local GuiService = game:GetService("GuiService")
- GuiService.SelectedObject = Target
- VIM:SendKeyEvent(true, Enum.KeyCode.Return, false, nil)
- task.wait(0.005)
- VIM:SendKeyEvent(false, Enum.KeyCode.Return, false, nil)
- end
- function FischAPI.InstantReel()
- game:GetService("ReplicatedStorage").events.reelfinished:FireServer(100, true)
- end
- function FischAPI.Cast()
- game.Players.LocalPlayer.Character[CalibrationData.FishingRod].events.cast:FireServer(100,1)
- end
- function FischAPI.GetAllAbundanceZones()
- local Abundances = {}
- for i, Zone in pairs(game:GetService("Workspace").zones.fishing:GetChildren()) do
- local Info = {}
- if Zone:FindFirstChild("Abundance") then
- if Zone:FindFirstChild("Abundance"):FindFirstChild("Chance") then
- Info.Chance = Zone.Abundance.Chance.Value
- else
- Info.Chance = 1
- end
- Info.Position = Zone.Position
- if Abundances[Zone.Abundance.Value] == nil then
- Abundances[Zone.Abundance.Value] = Info
- elseif Abundances[Zone.Abundance.Value].Chance < Info.Chance then
- Abundances[Zone.Abundance.Value] = Info
- end
- end
- end
- return Abundances
- end
- function FischAPI.SellAll()
- workspace.world.npcs["Marc Merchant"].merchant.sellall:InvokeServer()
- end
- function FischAPI.InitializePossibleDetections(Power)
- --This is just for guidement, don't use this function lol
- game:GetService("ReplicatedStorage").modules.fishing.rodresources.events.cast:FireServer(Power,1)
- end
- function FischAPI.DetermineClickActionMinigame()
- end
- function FischAPI.GetFish()
- local Text = "Items/Fish:\n"
- for i, v in pairs(game.Players.LocalPlayer.Backpack:GetChildren()) do
- Text=Text..v.Name.."\n"
- end
- return Text
- end
- --User
- function FischUser.Sell()
- FischAPI.SellAll()
- end
- function FischUser.AutoShake()
- FischAPI.TapShake()
- end
- function FischUser.OpenBoatUI()
- game:GetService("Players").LocalPlayer.PlayerGui.hud.safezone.shipwright.Visible = not game:GetService("Players").LocalPlayer.PlayerGui.hud.safezone.shipwright.Visible
- end
- function FischUser.LockPosition()
- if Internal.Megaladon == true then
- if Options.MegaladonHunting == true then
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Internal.MegHuntPos
- return
- end
- end
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Internal.LockedPosition
- end
- function FischUser.FloatOnWater()
- pcall(function()
- Internal.FloatPart:Destroy()
- end)
- Internal.FloatPart = Instance.new("Part", workspace)
- Internal.FloatPart.Anchored = true
- Internal.FloatPart.Size = Vector3.new(10,1,10)
- Internal.FloatPart.Position = Vector3.new(game.Players.LocalPlayer.Character.HumanoidRootPart.Position.X, 133.77, game.Players.LocalPlayer.Character.HumanoidRootPart.Position.Z)
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Vector3.new(game.Players.LocalPlayer.Character.HumanoidRootPart.Position.X, 150, game.Players.LocalPlayer.Character.HumanoidRootPart.Position.Z)
- end
- function FischUser.AutoMinigame()
- local action = FischAPI.DetermineClickActionMinigame()
- local PlayerBar = game:GetService("Players").LocalPlayer.PlayerGui.reel.bar.playerbar
- if action == true then
- if VI.State == false then
- VI.Down(PlayerBar)
- end
- else
- if VI.State == true then
- VI.Up(PlayerBar)
- end
- end
- end
- function FischUser.SecondUpdateWebhook()
- local a, b = pcall(function()
- Internal.Timer = Internal.Timer + 1
- if Internal.Timer >= 300 then
- Internal.Timer = 0
- local Data = FischAPI.GetFish()
- Utils.SendWebhookData(Options.WebhookURL, Data)
- Notification.new({
- Title = "Webhook Notification Sent",
- Description = "The next webhook notification is in 5 minutes.",
- Duration = 5,
- Icon = "rbxassetid://8997385628"
- })
- end
- end)
- print(a, b)
- end
- function FischUser.AutoCast()
- FischAPI.Cast()
- end
- function FischUser.AutoReel()
- FischAPI.InstantReel()
- end
- function FischUser.StepLoop()
- if Options.FloatOnWater == true then
- pcall(function()
- FischUser.FloatOnWater()
- end)
- end
- if Options.AutoShake == true then
- pcall(function()
- FischUser.AutoShake()
- end)
- end
- if Options.AutoMinigameBlatant == true then
- pcall(function()
- FischUser.AutoReel()
- end)
- end
- end
- function FischUser.MegaladonHuntInstant()
- if Internal.Megaladon == true then
- if Internal.MegHuntPlat then
- return
- end
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Vector3.new(Internal.MegaladonPosition.X, 150.77, Internal.MegaladonPosition.Z)
- Internal.MegHuntPlat = Instance.new("Part", workspace)
- Internal.MegHuntPlat.Anchored = true
- Internal.MegHuntPlat.Size = Vector3.new(10,1,10)
- Internal.MegHuntPlat.Position = Vector3.new(game.Players.LocalPlayer.Character.HumanoidRootPart.Position.X, 133.77, game.Players.LocalPlayer.Character.HumanoidRootPart.Position.Z)
- game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Vector3.new(game.Players.LocalPlayer.Character.HumanoidRootPart.Position.X, 150, game.Players.LocalPlayer.Character.HumanoidRootPart.Position.Z)
- task.wait(5)
- Internal.MegHuntPos = game.Players.LocalPlayer.Character.HumanoidRootPart.Position
- end
- end
- function FischUser.Heartbeat()
- if Options.MegaladonHunting == true then
- FischUser.MegaladonHuntInstant()
- end
- end
- function FischUser.OneStep()
- end
- function FischUser.Relaxed1Sec()
- if Options.WebhookNotifications == true then
- pcall(function()
- FischUser.SecondUpdateWebhook()
- end)
- end
- if Options.AutoCast == true then
- pcall(function()
- if Options.Lock == true then
- FischUser.LockPosition()
- end
- FischUser.AutoCast()
- end)
- end
- end
- function FischUser.Initialize()
- spawn(function()
- game:GetService("RunService").RenderStepped:Connect(function()
- FischUser.Heartbeat()
- end)
- end)
- spawn(function()
- FischUser.OneStep()
- end)
- spawn(function()
- while task.wait(0.005) do
- pcall(function()
- FischUser.StepLoop()
- end)
- end
- end)
- spawn(function()
- while task.wait(1) do
- FischUser.Relaxed1Sec()
- end
- end)
- end
- Notification:Notify(
- "info",
- "Calibration",
- "Please make sure to follow all the steps listed.",
- 5
- )
- Notification:Notify(
- "info",
- "Calibration",
- "Ensure that you are in the spawn area before executing the script. Equip your fishing rod.",
- 5
- )
- task.wait(5)
- while true do
- local a, b = pcall(function()
- local CreateError = {}
- for i, v in pairs(game.Players.LocalPlayer.Character:GetChildren()) do
- if v:IsA("Tool") then
- CalibrationData.FishingRod = v.Name
- end
- end
- CalibrationData.Positions = {}
- for i, v in pairs(game:GetService("Workspace").zones.player:GetChildren()) do
- CalibrationData.Positions[v.Name] = v.Position
- end
- if CalibrationData.FishingRod == nil then
- local E = CreateError[1]+1
- end
- end)
- if a == false then
- Notification:Notify(
- "warning",
- "Calibration Error",
- "Something went wrong with your calibration. Make sure to complete all the tasks listed. Will attempt to recalibrate in 5 seconds...",
- 5
- )
- Notification:Notify(
- "info",
- "Calibration",
- "Ensure that you are in the spawn area before executing the script. Equip your fishing rod.",
- 5
- )
- task.wait(5)
- else
- Notification:Notify(
- "info",
- "Calibration Successful",
- "Now loading script...",
- 5
- )
- task.wait(5)
- FischUser.Initialize()
- UI.Initialize()
- break
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment