Skipping the slow grind in Shinjuku Shenanigans is super easy when you use a solid Shinjuku Shenanigans script to do the heavy lifting for you.
You will be throwing punches, dodging attacks with dashes, and using special skills against other players in massive street brawls.
Grab the working code below and start testing it out right now.
Shinjuku Shenanigans Script – works on every executor, open source & More
_G.FishingActive = false
_G.KillScript = false
_G.SavedCastPos = nil
_G.WaterModified = false
local VIM = game:GetService("VirtualInputManager")
local LP = game:GetService("Players").LocalPlayer
local PlayerGui = LP:WaitForChild("PlayerGui")
local UIS = game:GetService("UserInputService")
local lock = false
if PlayerGui:FindFirstChild("CD_V42") then PlayerGui.CD_V42:Destroy() end
local sg = Instance.new("ScreenGui", PlayerGui); sg.Name = "CD_V42"; sg.ResetOnSpawn = false
local main = Instance.new("Frame", sg); main.Size = UDim2.new(0, 220, 0, 260); main.Position = UDim2.new(0, 50, 0.5, -130); main.BackgroundColor3 = Color3.fromRGB(10, 10, 15); main.BorderSizePixel = 0
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 10)
local function Terminate()
_G.FishingActive = false
_G.KillScript = true
VIM:SendMouseButtonEvent(0, 0, 0, false, game, 0)
sg:Destroy()
end
local kill = Instance.new("TextButton", main); kill.Size = UDim2.new(0, 30, 0, 30); kill.Position = UDim2.new(1, -35, 0, 5); kill.Text = "✕"; kill.TextColor3 = Color3.fromRGB(255, 60, 60); kill.BackgroundTransparency = 1; kill.TextSize = 25; kill.Font = Enum.Font.GothamBold
kill.MouseButton1Click:Connect(Terminate)
local status = Instance.new("TextLabel", main); status.Size = UDim2.new(1, 0, 0, 30); status.Position = UDim2.new(0, 0, 0, 225); status.Text = "READY [P] PAUSE | [X] KILL"; status.TextColor3 = Color3.new(1,1,1); status.BackgroundTransparency = 1; status.Font = Enum.Font.Code; status.TextSize = 10
local function resolve(obj)
if not obj then return nil end
if obj:IsA("ObjectValue") then return obj.Value end
return obj
end
local setPos = Instance.new("TextButton", main); setPos.Size = UDim2.new(1, -20, 0, 40); setPos.Position = UDim2.new(0, 10, 0, 40); setPos.Text = "SET CAST POS"; setPos.BackgroundColor3 = Color3.fromRGB(45, 50, 65); setPos.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", setPos)
setPos.MouseButton1Click:Connect(function()
local rod = LP.Character and LP.Character:FindFirstChild("Fishing Rod")
local target = rod and (rod:FindFirstChild("FishHook") or rod:FindFirstChild("FishingLine"))
local realPart = resolve(target)
if realPart and (realPart:IsA("BasePart") or realPart:IsA("MeshPart")) then
_G.SavedCastPos = realPart.Position
setPos.Text = "POS SAVED ✅"; setPos.BackgroundColor3 = Color3.fromRGB(0, 150, 100)
else
setPos.Text = "CAST LINE FIRST!"; task.wait(1); setPos.Text = "SET CAST POS"
end
end)
local master = Instance.new("TextButton", main); master.Size = UDim2.new(1, -20, 0, 40); master.Position = UDim2.new(0, 10, 0, 85); master.Text = "START BOT"; master.BackgroundColor3 = Color3.fromRGB(30, 35, 45); master.TextColor3 = Color3.new(1, 1, 1); Instance.new("UICorner", master)
local function ToggleBot()
if not _G.SavedCastPos then status.Text = "SET POS FIRST!"; return end
_G.FishingActive = not _G.FishingActive
master.Text = _G.FishingActive and "STOP BOT" or "START BOT"
master.BackgroundColor3 = _G.FishingActive and Color3.fromRGB(60, 40, 40) or Color3.fromRGB(30, 35, 45)
end
master.MouseButton1Click:Connect(ToggleBot)
local waterBtn = Instance.new("TextButton", main); waterBtn.Size = UDim2.new(1, -20, 0, 40); waterBtn.Position = UDim2.new(0, 10, 0, 130); waterBtn.Text = "EXPAND WATER"; waterBtn.BackgroundColor3 = Color3.fromRGB(0, 100, 200); waterBtn.TextColor3 = Color3.new(1, 1, 1); Instance.new("UICorner", waterBtn)
waterBtn.MouseButton1Click:Connect(function()
local water = workspace:FindFirstChild("Water", true) or workspace:FindFirstChild("Water")
if water and water:IsA("BasePart") then
_G.WaterModified = not _G.WaterModified
if _G.WaterModified then
water.Size = Vector3.new(600, 16.149999618530273, 600)
waterBtn.Text = "WATER: EXPANDED"
else
water.Size = Vector3.new(100, 10, 100)
waterBtn.Text = "WATER: DEFAULT"
end
else
waterBtn.Text = "WATER NOT FOUND"; task.wait(1); waterBtn.Text = "EXPAND WATER"
end
end)
UIS.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.X then
Terminate()
elseif input.KeyCode == Enum.KeyCode.P then
ToggleBot()
end
end)
task.spawn(function()
while not _G.KillScript do
task.wait(0.01)
if not _G.FishingActive then continue end
local mg = PlayerGui:FindFirstChild("FishingMinigame")
if mg then
local fishVal = mg:FindFirstChild("Fish", true)
local reelVal = mg:FindFirstChild("Reel", true)
local fishObj = resolve(fishVal)
local reelObj = resolve(reelVal)
if fishObj and reelObj then
if fishObj.Position.Y.Scale < reelObj.Position.Y.Scale then
VIM:SendMouseButtonEvent(0, 0, 0, true, game, 0)
else
VIM:SendMouseButtonEvent(0, 0, 0, false, game, 0)
end
end
else
VIM:SendMouseButtonEvent(0, 0, 0, false, game, 0)
end
end
end)
task.spawn(function()
while not _G.KillScript do
task.wait(0.7)
if not _G.FishingActive or not _G.SavedCastPos or lock then continue end
local rod = LP.Character and LP.Character:FindFirstChild("Fishing Rod")
if not rod then continue end
local hook = rod:FindFirstChild("FishHook")
local isHookOut = hook and resolve(hook) ~= nil
local minigame = PlayerGui:FindFirstChild("FishingMinigame")
if isHookOut then
if minigame then
lock = true; status.Text = "FISHING..."
repeat task.wait(0.5) until not PlayerGui:FindFirstChild("FishingMinigame") or _G.KillScript
task.wait(3.5); lock = false
else
status.Text = "WAITING..."; rod.ReelFish:FireServer()
end
else
if not minigame and not lock then
lock = true; status.Text = "RECASTING..."
rod.CastLine:FireServer(_G.SavedCastPos)
task.wait(2.5); lock = false
end
end
end
end)Copy the code above into a compatible Roblox script executor if you choose to test it.
Shinjuku Shenanigans Script Status
Roblox and game updates can affect compatibility, so the script’s status should be treated as temporary rather than guaranteed.
Frequently Asked Questions
What is a Shinjuku Shenanigans script?
A Shinjuku Shenanigans script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.
What features does this Shinjuku Shenanigans script include?
Different scripts contain different code. This version includes: works on every executor, open source, shinjuku auto fish i also made a vid on this script, https://www.youtube.com/watch?v=ipEO484FczQ, show case.
How do you use the Shinjuku Shenanigans script?
Pick a compatible executor such as Hydrogen, MacSploit, AWP.GG, Delta, Fluxus, Codex, launch Roblox and join the game, copy the complete Lua code from the script card above, paste it into the executor’s editor, and click Run or Execute. Compatibility changes over time, so a name here doesn’t guarantee current support.
Can a Shinjuku Shenanigans script get your Roblox account banned?
Yes. Third-party scripts can violate Roblox rules and may put an account at risk. Only use code from a source you trust, never enter your Roblox password into a script or executor, and test on an alternate account first.
Does the Shinjuku Shenanigans script work on mobile?
Check whether both the executor and the script support your device and the current Roblox version. Mobile executor support does not guarantee that every script will work.