marketplace/gaming

Fishing Bite Clicker

v0.1.0

@rebindfree

Watches for the bite color, reels in, and casts again until you stop it.

Gallery

Fishing Bite Clicker preview

Readme

Point at the spot where the bite shows and press F7. Rebind watches that patch of screen for the bite color. When it appears, Rebind clicks to reel in, waits, and clicks to cast again. Press F7 to stop.

Needs Rebind 3.5.0 or newer on Windows or macOS. No extra permissions. On macOS, Rebind needs Screen Recording permission to see the screen.

Settings

  • Start or stop: default F7.
  • Bite color: pick the color the game shows on a bite.
  • Watch area: the size of the square around the pointer, 10 to 200 px.
  • Recast after: the wait between reeling in and casting again.

Key changes apply while the package runs on Rebind 3.9 or newer. On older versions, restart the package after changing a key.

Before you use it

Roblox experiences set their own rules, and they change. Check the current rules of the game and its Discord before you leave a macro running.

Limits

  • The watch area stays where the pointer was when you pressed F7. Press F7 twice to move it.
  • If the screen cannot be read, fishing stops and a notice says why.
  • Colors match within a 12 percent tolerance, so a similar color elsewhere in the area also counts as a bite.
  • Notices appear in Rebind. To see them on the desktop, turn on Desktop notifications in Rebind's settings.
  • Live use remains unverified on Windows and macOS.

Stop

Press F7, stop the package from the editor toolbar, or press Left Ctrl + Left Alt + K to stop all scripts.

Reviews

No reviews yet. Be the first, from the app.

Source

Version 0.1.0 (current)

main.luau

-- Fishing Bite Clicker: watch a patch of screen around the pointer for the
-- bite color, click to reel in, wait, and click to cast again.

local cfg = UI.Schema({
  toggle = UI.Keybind("F7", { label = "Start or stop" }),
  bite = UI.Color("#ff3b30", { label = "Bite color" }),
  size = UI.Slider(40, {
    min = 10,
    max = 200,
    suffix = " px",
    label = "Watch area",
  }),
  recast = UI.Slider(1200, {
    min = 300,
    max = 4000,
    suffix = " ms",
    label = "Recast after",
  }),
})

local task = nil

Bind(cfg.toggle, function()
  if task then
    task:Cancel()
    task = nil
    UI.Notify("Fishing off", "info")
    return
  end
  -- the watch area is fixed where the pointer is when fishing starts
  local x, y = System.Mouse()
  local r = math.floor(cfg.size / 2)
  local box = { x - r, y - r, x + r, y + r }
  local color = cfg.bite:gsub("^#", "")
  UI.Notify("Fishing on", "success")
  task = Run(function()
    local _, err = pcall(function()
      while true do
        if Screen.SearchForColor(box, color, 0.12) then
          HID.Press("Mouse1", 40) -- reel in
          Sleep(cfg.recast)
          HID.Press("Mouse1", 40) -- cast again
        end
        Sleep(30)
      end
    end)
    -- a screen read that fails ends fishing; say so
    task = nil
    UI.Notify("Fishing stopped: " .. tostring(err), "error")
  end)
end)

function OnStop()
  if task then
    task:Cancel()
  end
end