M
ScriptKeyless
Best keyless open source auto ratio
Jujutsu Shenanigans [THROWABLES]Desktop & mobile ready
Description
Best open source auto ration (you can skid)
GAMEJujutsu Shenanigans [THROWABLES]
UPDATEDOct 22, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- NANAMIAUTO RATIO
-- you can skid it btw the -- was for sections this is not skidded
-- i got banned from jjs so idk if it will work
-- Made by script maker ahh boi on yt
-- Destroy any previous instance
pcall(function()
local old = game:GetService("Players").LocalPlayer:FindFirstChild("PlayerGui")
and game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("NanamiControlPanel")
if old then old:Destroy() end
end)
if getgenv then getgenv().NANAMI_RUNNING = true end
-- Services
local Players = game:GetService("Players")
local RS = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Stats = game:GetService("Stats")
local LP = Players.LocalPlayer
local PG = LP:WaitForChild("PlayerGui")
-- Colors
local COLORS = {
bg = Color3.fromRGB(5, 5, 8),
inputBg = Color3.fromRGB(12, 12, 18),
headerBg = Color3.fromRGB(15, 15, 22),
cyan = Color3.fromRGB(0, 220, 220),
lightCyan = Color3.fromRGB(120, 245, 245),
darkCyan = Color3.fromRGB(0, 150, 160),
whiteText = Color3.fromRGB(240, 240, 245),
grayText = Color3.fromRGB(140, 140, 160),
green = Color3.fromRGB(90, 200, 120),
red = Color3.fromRGB(220, 80, 80),
}
-- State
local SystemActive = false
local EventConnection = nil
local RunningTasks = {}
local TaskIdCounter = 0
local function tween(o, t, p)
TweenService:Create(o, TweenInfo.new(t), p):Play()
end
-- Safe ping getter
local function getPing()
local ok, ping = pcall(function() return LP:GetNetworkPing() end)
if ok and type(ping) == "number" then return ping end
local ok2, val = pcall(function()
return Stats.Network.ServerStatsItem["Data Ping"]:GetValue() / 1000
end)
if ok2 and type(val) == "number" then return val end
return 0
end
-- ScreenGui
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "NanamiControlPanel"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset = true
ScreenGui.DisplayOrder = 999
ScreenGui.Parent = PG
-- Main panel
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 300, 0, 190)
MainFrame.Position = UDim2.new(0.5, -150, 0.5, -95)
MainFrame.BackgroundColor3 = COLORS.bg
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Visible = true
MainFrame.Parent = ScreenGui
local UIStroke = Instance.new("UIStroke", MainFrame)
UIStroke.Color = COLORS.cyan
UIStroke.Thickness = 1.5
UIStroke.Transparency = 0.1
local UIGlow = Instance.new("UIStroke", MainFrame)
UIGlow.Color = COLORS.cyan
UIGlow.Thickness = 4
UIGlow.Transparency = 0.85
task.spawn(function()
local t = 0
while MainFrame.Parent do
t = t + 0.05
local sin = (math.sin(t) + 1) / 2
pcall(function()
UIGlow.Transparency = 0.85 - (sin * 0.15)
end)
task.wait(0.05)
end
end)
-- Header
local Header = Instance.new("Frame")
Header.Name = "Header"
Header.Size = UDim2.new(1, 0, 0, 40)
Header.BackgroundColor3 = COLORS.headerBg
Header.BorderSizePixel = 0
Header.Active = true
Header.Parent = MainFrame
local HeaderLine = Instance.new("Frame")
HeaderLine.Size = UDim2.new(1, -20, 0, 1)
HeaderLine.Position = UDim2.new(0, 10, 1, -1)
HeaderLine.BackgroundColor3 = COLORS.cyan
HeaderLine.BackgroundTransparency = 0.7
HeaderLine.BorderSizePixel = 0
HeaderLine.Parent = Header
local IconFrame = Instance.new("Frame")
IconFrame.Size = UDim2.new(0, 22, 0, 22)
IconFrame.Position = UDim2.new(0, 10, 0.5, -11)
IconFrame.BackgroundColor3 = COLORS.cyan
IconFrame.BorderSizePixel = 0
IconFrame.Parent = Header
local IconText = Instance.new("TextLabel")
IconText.Size = UDim2.new(1, 0, 1, 0)
IconText.BackgroundTransparency = 1
IconText.Text = "!"
IconText.TextColor3 = Color3.fromRGB(5, 5, 8)
IconText.TextScaled = true
IconText.Font = Enum.Font.GothamBold
IconText.Parent = IconFrame
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -100, 0, 20)
TitleLabel.Position = UDim2.new(0, 40, 0, 4)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "NANAMI"
TitleLabel.TextColor3 = COLORS.whiteText
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextSize = 12
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = Header
local SubLabel = Instance.new("TextLabel")
SubLabel.Size = UDim2.new(1, -100, 0, 10)
SubLabel.Position = UDim2.new(0, 40, 0, 24)
SubLabel.BackgroundTransparency = 1
SubLabel.Text = "auto ratio | inactive"
SubLabel.TextColor3 = COLORS.grayText
SubLabel.Font = Enum.Font.Gotham
SubLabel.TextSize = 9
SubLabel.TextXAlignment = Enum.TextXAlignment.Left
SubLabel.Parent = Header
local MinimizeBtn = Instance.new("TextButton")
MinimizeBtn.Size = UDim2.new(0, 24, 0, 24)
MinimizeBtn.Position = UDim2.new(1, -56, 0.5, -12)
MinimizeBtn.BackgroundColor3 = Color3.fromRGB(20, 40, 45)
MinimizeBtn.BorderSizePixel = 0
MinimizeBtn.Text = "-"
MinimizeBtn.TextColor3 = COLORS.cyan
MinimizeBtn.Font = Enum.Font.GothamBold
MinimizeBtn.TextSize = 16
MinimizeBtn.AutoButtonColor = false
MinimizeBtn.Parent = Header
local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 24, 0, 24)
CloseBtn.Position = UDim2.new(1, -28, 0.5, -12)
CloseBtn.BackgroundColor3 = Color3.fromRGB(40, 15, 20)
CloseBtn.BorderSizePixel = 0
CloseBtn.Text = "x"
CloseBtn.TextColor3 = COLORS.red
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 12
CloseBtn.AutoButtonColor = false
CloseBtn.Parent = Header
-- Status
local StatusPanel = Instance.new("Frame")
StatusPanel.Size = UDim2.new(1, -20, 0, 32)
StatusPanel.Position = UDim2.new(0, 10, 0, 50)
StatusPanel.BackgroundColor3 = COLORS.inputBg
StatusPanel.BorderSizePixel = 0
StatusPanel.Parent = MainFrame
local StatusDot = Instance.new("Frame")
StatusDot.Size = UDim2.new(0, 10, 0, 10)
StatusDot.Position = UDim2.new(0, 12, 0.5, -5)
StatusDot.BackgroundColor3 = COLORS.red
StatusDot.BorderSizePixel = 0
StatusDot.Parent = StatusPanel
Instance.new("UICorner", StatusDot).CornerRadius = UDim.new(1, 0)
local DotGlow = Instance.new("UIStroke", StatusDot)
DotGlow.Color = COLORS.red
DotGlow.Thickness = 2
DotGlow.Transparency = 0.4
local StatusText = Instance.new("TextLabel")
StatusText.Size = UDim2.new(1, -40, 1, 0)
StatusText.Position = UDim2.new(0, 34, 0, 0)
StatusText.BackgroundTransparency = 1
StatusText.Text = "SYSTEM INACTIVE"
StatusText.TextColor3 = COLORS.red
StatusText.Font = Enum.Font.GothamBold
StatusText.TextSize = 11
StatusText.TextXAlignment = Enum.TextXAlignment.Left
StatusText.Parent = StatusPanel
-- AUTO RATION button
local MainButton = Instance.new("TextButton")
MainButton.Size = UDim2.new(1, -20, 0, 60)
MainButton.Position = UDim2.new(0, 10, 0, 92)
MainButton.BackgroundColor3 = COLORS.darkCyan
MainButton.BorderSizePixel = 0
MainButton.Text = "AUTO RATION"
MainButton.TextColor3 = Color3.fromRGB(5, 20, 25)
MainButton.Font = Enum.Font.GothamBlack
MainButton.TextSize = 16
MainButton.AutoButtonColor = false
MainButton.Parent = MainFrame
local MainBtnStroke = Instance.new("UIStroke", MainButton)
MainBtnStroke.Color = COLORS.lightCyan
MainBtnStroke.Thickness = 1.5
MainBtnStroke.Transparency = 0.2
-- Credit footer
local CreditLabel = Instance.new("TextLabel")
CreditLabel.Name = "CreditLabel"
CreditLabel.Size = UDim2.new(1, -20, 0, 18)
CreditLabel.Position = UDim2.new(0, 10, 1, -22)
CreditLabel.BackgroundTransparency = 1
CreditLabel.Text = "made by script maker ahh boi on yt"
CreditLabel.TextColor3 = COLORS.grayText
CreditLabel.Font = Enum.Font.GothamMedium
CreditLabel.TextSize = 9
CreditLabel.TextXAlignment = Enum.TextXAlignment.Center
CreditLabel.Parent = MainFrame
-- Pulse
local PulseConn = nil
local function startPulse(color)
if PulseConn then PulseConn:Disconnect() end
local t = 0
PulseConn = RunService.Heartbeat:Connect(function(dt)
t = t + dt
local alpha = (math.sin(t * 4) + 1) / 2
StatusDot.BackgroundTransparency = 0.2 + alpha * 0.4
DotGlow.Transparency = 0.7 - alpha * 0.5
DotGlow.Color = color
StatusDot.BackgroundColor3 = color
end)
end
startPulse(COLORS.red)
local function setActiveVisual(active)
if active then
tween(MainButton, 0.3, { BackgroundColor3 = Color3.fromRGB(0, 180, 180) })
tween(MainBtnStroke, 0.3, { Color = Color3.fromRGB(180, 255, 255), Transparency = 0 })
MainButton.Text = "AUTO RATION ON"
MainButton.TextColor3 = Color3.fromRGB(5, 5, 8)
StatusText.Text = "SYSTEM ACTIVE"
StatusText.TextColor3 = COLORS.green
startPulse(COLORS.green)
SubLabel.Text = "auto ratio | active"
SubLabel.TextColor3 = COLORS.green
else
tween(MainButton, 0.3, { BackgroundColor3 = COLORS.darkCyan })
tween(MainBtnStroke, 0.3, { Color = COLORS.lightCyan, Transparency = 0.2 })
MainButton.Text = "AUTO RATION"
MainButton.TextColor3 = Color3.fromRGB(5, 20, 25)
StatusText.Text = "SYSTEM INACTIVE"
StatusText.TextColor3 = COLORS.red
startPulse(COLORS.red)
SubLabel.Text = "auto ratio | inactive"
SubLabel.TextColor3 = COLORS.grayText
end
end
-- Custom drag
local dragging, dragStart, startPos
Header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
-- Nanami logic
local function getNanamiEffects()
local ok, result = pcall(function()
return RS.Knit.Knit.Services.NanamiService.RE.Effects
end)
return ok and result or nil
end
local function getNanamiRightActivated()
local ok, result = pcall(function()
return RS.Knit.Knit.Services.NanamiService.RE.RightActivated
end)
return ok and result or nil
end
local function isNanami()
local ok, result = pcall(function()
return RS.Knit.Knit.Services.NanamiService
end)
return ok and result ~= nil
end
local function cancelTasks()
for id, thread in pairs(RunningTasks) do
if coroutine.status(thread) ~= "dead" then
pcall(task.cancel, thread)
end
RunningTasks[id] = nil
end
end
local function onEffectReceived(...)
local args = { ... }
if args[1] ~= "SpawnRatio" then return end
if args[2] ~= LP then return end
local value = tonumber(args[6]) or 0
local ping = getPing()
local delayBase = value * 0.56767676767676769420
local delay = delayBase - ping
if delay < 0 then delay = 0 end
local variation = math.random(-3, 3) / 1000
delay = delay + variation
if delay < 0 then delay = 0 end
local taskId = TaskIdCounter + 1
TaskIdCounter = taskId
local thread = task.spawn(function()
task.wait(delay)
if not SystemActive then return end
local rightActivated = getNanamiRightActivated()
if rightActivated then
pcall(function()
rightActivated:FireServer()
end)
end
RunningTasks[taskId] = nil
end)
RunningTasks[taskId] = thread
end
local function activateSystem()
if SystemActive then return end
if not isNanami() then
StatusText.Text = "NOT NANAMI"
StatusText.TextColor3 = COLORS.red
task.delay(3, function()
if not SystemActive then
StatusText.Text = "SYSTEM INACTIVE"
StatusText.TextColor3 = COLORS.red
end
end)
return
end
local effects = getNanamiEffects()
if not effects then
StatusText.Text = "SERVICE NOT FOUND"
StatusText.TextColor3 = COLORS.red
return
end
local ok, conn = pcall(function()
return effects.OnClientEvent:Connect(onEffectReceived)
end)
if not ok or not conn then
StatusText.Text = "FAILED TO CONNECT"
StatusText.TextColor3 = COLORS.red
return
end
EventConnection = conn
SystemActive = true
setActiveVisual(true)
end
local function deactivateSystem()
if not SystemActive then return end
if EventConnection then
pcall(function() EventConnection:Disconnect() end)
EventConnection = nil
end
cancelTasks()
SystemActive = false
setActiveVisual(false)
end
-- Buttons
MainButton.MouseButton1Click:Connect(function()
tween(MainButton, 0.08, { Size = UDim2.new(1, -26, 0, 57) })
task.delay(0.08, function()
tween(MainButton, 0.12, { Size = UDim2.new(1, -20, 0, 60) })
end)
if SystemActive then
deactivateSystem()
else
activateSystem()
end
end)
MainButton.MouseEnter:Connect(function()
if not SystemActive then
tween(MainButton, 0.15, { BackgroundColor3 = COLORS.cyan })
else
tween(MainButton, 0.15, { BackgroundColor3 = Color3.fromRGB(0, 200, 200) })
end
end)
MainButton.MouseLeave:Connect(function()
if not SystemActive then
tween(MainButton, 0.15, { BackgroundColor3 = COLORS.darkCyan })
else
tween(MainButton, 0.15, { BackgroundColor3 = Color3.fromRGB(0, 180, 180) })
end
end)
MinimizeBtn.MouseEnter:Connect(function()
tween(MinimizeBtn, 0.15, { BackgroundColor3 = Color3.fromRGB(30, 60, 65) })
end)
MinimizeBtn.MouseLeave:Connect(function()
tween(MinimizeBtn, 0.15, { BackgroundColor3 = Color3.fromRGB(20, 40, 45) })
end)
CloseBtn.MouseEnter:Connect(function()
tween(CloseBtn, 0.15, { BackgroundColor3 = Color3.fromRGB(80, 20, 30) })
end)
CloseBtn.MouseLeave:Connect(function()
tween(CloseBtn, 0.15, { BackgroundColor3 = Color3.fromRGB(40, 15, 20) })
end)
-- Minimize
local minimized = false
local originalSize = UDim2.new(0, 300, 0, 190)
local minimizedSize = UDim2.new(0, 300, 0, 40)
MinimizeBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
for _, obj in ipairs(MainFrame:GetChildren()) do
if obj ~= Header and obj:IsA("GuiObject") then
obj.Visible = false
end
end
tween(MainFrame, 0.2, { Size = minimizedSize })
MinimizeBtn.Text = "+"
else
tween(MainFrame, 0.2, { Size = originalSize })
task.delay(0.15, function()
if not MainFrame.Parent then return end
for _, obj in ipairs(MainFrame:GetChildren()) do
if obj:IsA("GuiObject") then
obj.Visible = true
end
end
end)
MinimizeBtn.Text = "-"
end
end)
-- Close
CloseBtn.MouseButton1Click:Connect(function()
if SystemActive then deactivateSystem() end
ScreenGui.Enabled = false
end)
-- RightShift toggle
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.RightShift then
ScreenGui.Enabled = not ScreenGui.Enabled
end
end)
-- Boot
MainFrame.Visible = true
print("[NANAMI] Loaded | Made by script maker ahh boi on yt")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place