
Key Required

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:FindFirstChildOfClass("PlayerGui") or player:WaitForChild("PlayerGui")
-- Clean old GUI if exists
local existingGui = playerGui:FindFirstChild("FishCatcherGui")
if existingGui then
existingGui:Destroy()
end
local fishFolder = ReplicatedStorage:WaitForChild("A__Assets"):WaitForChild("Fish")
local addToInventoryRF = ReplicatedStorage:WaitForChild("Packages")
:WaitForChild("_Index")
:WaitForChild("sleitnick_knit@1.7.0")
:WaitForChild("knit")
:WaitForChild("Services")
:WaitForChild("FishService")
:WaitForChild("RF")
:WaitForChild("AddToInventory")
-- Create ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FishCatcherGui"
screenGui.Parent = playerGui
screenGui.ResetOnSpawn = false
-- Main frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 320, 0, 210)
frame.Position = UDim2.new(0.5, -160, 0.4, -105)
frame.BackgroundColor3 = Color3.fromRGB(52, 52, 52)
frame.BorderSizePixel = 0
frame.AnchorPoint = Vector2.new(0, 0)
frame.ZIndex = 10
frame.Parent = screenGui
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 12)
frameCorner.Parent = frame
-- Dragging functionality
local dragging = false
local dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
local newPosition = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
frame.Position = newPosition
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input == dragInput then
update(input)
end
end)
-- Title label
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -20, 0, 40)
title.Position = UDim2.new(0, 10, 0, 10)
title.BackgroundTransparency = 1
title.Text = "Fish Catcher"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 28
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = frame
-- Select Fish Label
local selectLabel = Instance.new("TextLabel")
selectLabel.Size = UDim2.new(1, -20, 0, 25)
selectLabel.Position = UDim2.new(0, 10, 0, 60)
selectLabel.BackgroundTransparency = 1
selectLabel.Text = "Select Fish:"
selectLabel.TextColor3 = Color3.new(1, 1, 1)
selectLabel.Font = Enum.Font.SourceSans
selectLabel.TextSize = 20
selectLabel.TextXAlignment = Enum.TextXAlignment.Left
selectLabel.Parent = frame
-- Dropdown button to show fish list
local dropdownButton = Instance.new("TextButton")
dropdownButton.Size = UDim2.new(1, -20, 0, 30)
dropdownButton.Position = UDim2.new(0, 10, 0, 90)
dropdownButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
dropdownButton.TextColor3 = Color3.new(1, 1, 1)
dropdownButton.Font = Enum.Font.SourceSans
dropdownButton.TextSize = 20
dropdownButton.Text = "Select Fish"
dropdownButton.AutoButtonColor = true
dropdownButton.Parent = frame
dropdownButton.ZIndex = 11
-- Dropdown frame and layout
local listFrame = Instance.new("ScrollingFrame")
listFrame.Size = UDim2.new(1, -20, 0, 115)
listFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
listFrame.BorderSizePixel = 0
listFrame.Position = UDim2.new(0, 10, 0, 120)
listFrame.Visible = false
listFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
listFrame.ScrollBarThickness = 8
listFrame.Parent = frame
listFrame.ZIndex = 11
local listCorner = Instance.new("UICorner")
listCorner.CornerRadius = UDim.new(0, 8)
listCorner.Parent = listFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 4)
UIListLayout.Parent = listFrame
-- Get all fish names
local fishNames = {}
for _, fish in ipairs(fishFolder:GetChildren()) do
table.insert(fishNames, fish.Name)
end
local selectedFishName = nil
local function closeDropdown()
listFrame.Visible = false
end
local function openDropdown()
listFrame.Visible = true
-- Position listFrame above or below dropdownButton depending on space
local screenHeight = playerGui.AbsoluteSize.Y
local dropdownAbsoluteY = dropdownButton.AbsolutePosition.Y
local dropdownHeight = dropdownButton.AbsoluteSize.Y
local listHeight = listFrame.AbsoluteSize.Y > 0 and listFrame.AbsoluteSize.Y or 115
local spaceBelow = screenHeight - (dropdownAbsoluteY + dropdownHeight)
if spaceBelow < listHeight then
-- Open upwards
listFrame.Position = UDim2.new(0, 10, 0, dropdownButton.Position.Y.Offset - listHeight - 6)
else
-- Open downwards
listFrame.Position = UDim2.new(0, 10, 0, dropdownButton.Position.Y.Offset + dropdownHeight + 6)
end
end
-- Populate fish list buttons
for i, fishName in ipairs(fishNames) do
local fishBtn = Instance.new("TextButton")
fishBtn.Size = UDim2.new(1, -10, 0, 28)
fishBtn.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
fishBtn.TextColor3 = Color3.new(1, 1, 1)
fishBtn.Font = Enum.Font.SourceSans
fishBtn.TextSize = 18
fishBtn.Text = fishName
fishBtn.LayoutOrder = i
fishBtn.AutoButtonColor = true
fishBtn.Parent = listFrame
fishBtn.ZIndex = 12
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 6)
corner.Parent = fishBtn
fishBtn.MouseEnter:Connect(function()
fishBtn.BackgroundColor3 = Color3.fromRGB(115, 115, 115)
end)
fishBtn.MouseLeave:Connect(function()
fishBtn.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
end)
fishBtn.MouseButton1Click:Connect(function()
selectedFishName = fishName
dropdownButton.Text = fishName
closeDropdown()
end)
end
UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
listFrame.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 8)
end)
dropdownButton.MouseButton1Click:Connect(function()
if listFrame.Visible then
closeDropdown()
else
openDropdown()
end
end)
-- Get Fish button
local getButton = Instance.new("TextButton")
getButton.Size = UDim2.new(1, -20, 0, 40)
getButton.Position = UDim2.new(0, 10, 1, -50)
getButton.BackgroundColor3 = Color3.fromRGB(0, 145, 0)
getButton.TextColor3 = Color3.new(1, 1, 1)
getButton.Font = Enum.Font.SourceSansBold
getButton.TextSize = 26
getButton.Text = "Get Fish"
getButton.AutoButtonColor = true
getButton.Parent = frame
getButton.ZIndex = 10
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 10)
btnCorner.Parent = getButton
getButton.MouseEnter:Connect(function()
getButton.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
end)
getButton.MouseLeave:Connect(function()
getButton.BackgroundColor3 = Color3.fromRGB(0, 145, 0)
end)
getButton.MouseButton1Click:Connect(function()
if not selectedFishName then
warn("[FishCatcher] Please select a fish first!")
return
end
local args = {
selectedFishName,
"Catch"
}
local success, err = pcall(function()
return addToInventoryRF:InvokeServer(unpack(args))
end)
if success then
print("[FishCatcher] Successfully added fish:", selectedFishName)
else
warn("[FishCatcher] Failed to add fish:", err)
end
end)

ui not draggable
it is for me try driff exc
Ui not draggable on delta
script is open source use ai to fix it urself or smth
its draggable now
Nah it's not