
KeylessUniversal

local summonKeybind = "Q"--Change hook activate keybind if needed
local hookKeybind = "E"--Change hook activate keybind if needed
local charge = "G"--Hamon charge keybind, change if needed.
local max = 200--Max hook distance, change if needed
local MovingSpeed = 65--Moving to hook speed, change if needed
local plr = game:GetService("Players")
local me = plr.LocalPlayer
local hum = me.Character:WaitForChild("Humanoid")
local hrp = me.Character:WaitForChild("HumanoidRootPart")
local r6A = me.Character:FindFirstChild("Right Arm")
local r15A = me.Character:FindFirstChild("RightHand")
local r6La = me.Character:FindFirstChild("Left Arm")
local r15La = me.Character:FindFirstChild("LeftHand")
local r6At = me.Character:FindFirstChild("RightGripAttachment")
local work = game:GetService("Workspace")
local run = game:GetService("RunService")
local uis = game:GetService("UserInputService")
local virtual = game:GetService("VirtualInputManager")
local rep = game:GetService("ReplicatedStorage")
local mouse = me:GetMouse()
local camera = work.CurrentCamera
local function update()
hum = me.Character:WaitForChild("Humanoid")
hrp = me.Character:WaitForChild("HumanoidRootPart")
r6A = me.Character:FindFirstChild("Right Arm")
r15A = me.Character:FindFirstChild("RightHand")
r6La = me.Character:FindFirstChild("Left Arm")
r15La = me.Character:FindFirstChild("LeftHand")
r6At = me.Character:FindFirstChild("RightGripAttachment")
end
me.CharacterAdded:Connect(update)
if me.Character then
update()
end
game:GetService("StarterGui"):SetCore("SendNotification",{
Title = "Hermit Purple",
Text = summonKeybind .. " = summon/desummon\nHold " .. hookKeybind .. "= grapple/Unhold ".. hookKeybind .. "= ungrapple\nhold "..charge.." to charge hamon.".."Warning! Script is NOT FE",
Duration = 10
})
local screen = Instance.new("ScreenGui")
screen.Name = "Hamon"
screen.Parent = me.PlayerGui
screen.IgnoreGuiInset = true
screen.ResetOnSpawn = false
local frame = Instance.new("Frame")
frame.Parent = screen
frame.Position = UDim2.new(0.356,0,0.974,0)
frame.Size = UDim2.new(0,389,0,9)
frame.BackgroundColor3 = Color3.fromRGB(255,255,255)
local frame2 = Instance.new("Frame")
frame2.Parent = frame
frame2.Position = UDim2.new(-0.002,0,-0.026,0)
frame2.Size = UDim2.new(0,9,0,9)
frame2.BackgroundColor3 = Color3.fromRGB(255,235,0)
frame2.BorderSizePixel = 0
local ifR6 = false
if hum.RigType == Enum.HumanoidRigType.R6 then
ifR6 = true
else
ifR6 = false
end
local keyHold = true
local con = true
local hook
local bmw
local rope
local keyHold2 = true
local chargeCon = false
local unchargeCon = false
local minSize = UDim2.new(0,9,0,9)
local maxSize = UDim2.new(0,394,0,9)
local newSize = 10
local newSize2 = -10
local hermit
local summoned = false
local hamon
me.CharacterAdded:Connect(function()
summoned = false
end)
local function attach(parent)
local att = Instance.new("Attachment")
att.Name = "att"
att.Parent = parent
end
local function between(v0,v1)
local different = v0 - v1
local distance = different.Magnitude
distance = math.floor(distance / 1 + 0.5) * 1
return distance
end
local function summon(method,parent)
if method == "create" then
hermit = Instance.new("ParticleEmitter")
hermit.Parent = parent
hermit.Name = "Hermit"
hermit.Rate = 80
hermit.Lifetime = NumberRange.new(1, 3)
hermit.Size = NumberSequence.new(0.5, 1)
hermit.Speed = NumberRange.new(1,2)
hermit.Color = ColorSequence.new(Color3.fromRGB(183, 0, 255))
hermit.Transparency = NumberSequence.new(0.5, 1)
hermit.Rotation = NumberRange.new(0, 360)
hermit.Enabled = true
elseif method == "destroy" then
if parent:FindFirstChild("Hermit") then
parent.Hermit:Destroy()
end
end
end
wait(0.3)
uis.InputBegan:Connect(function(i,g)
if g then return end
if i.KeyCode == Enum.KeyCode[summonKeybind] then
summoned = not summoned
if summoned then
if ifR6 then
summon("create", r6A)
summon("create", r6La)
else
summon("create", r15A)
summon("create", r15La)
end
else
if ifR6 then
summon("destroy", r6A)
summon("destroy", r6La)
else
summon("destroy", r15A)
summon("destroy", r15La)
end
end
elseif i.KeyCode == Enum.KeyCode[hookKeybind] and keyHold then
keyHold = false
if summoned then
if ifR6 then
con = true
local mPos = mouse.Hit.p
local ifBe = (hrp.Position - mPos).Magnitude
local distance = between(mPos, hrp.Position)
if ifBe <= max then
hook = Instance.new("Part")
hook.Anchored = true
hook.CanCollide = false
hook.Transparency = 1
hook.Position = mPos
hook.Parent = work
bmw = Instance.new("BodyVelocity")
bmw.Velocity = Vector3.new(0,0,0)
bmw.MaxForce = Vector3.new(100000,100000,100000)
bmw.Parent = hrp
attach(hrp)
attach(hook)
rope = Instance.new("RopeConstraint")
rope.Parent = hook
rope.Attachment0 = hook.att
rope.Attachment1 = hrp.att
rope.WinchEnabled = true
rope.Color = BrickColor.new("Royal purple")
rope.Length = distance / 1
rope.Visible = true
local distance = (hook.Position - hrp.Position).Unit
while con and (hrp.Position - hook.Position).Magnitude > 1 do
hrp.CFrame = CFrame.new(hrp.Position + distance * MovingSpeed * run.RenderStepped:Wait())
hrp.CFrame = CFrame.lookAt(hrp.Position, hook.Position)
local currentD = between(hrp.Position, hook.Position)
rope.Length = currentD
end
else
print("Too far!")
end
else
if summoned then
con = true
local mPos = mouse.Hit.p
local ifBe = (hrp.Position - mPos).Magnitude
local distance = between(mPos, hrp.Position)
if ifBe <= max then
hook = Instance.new("Part")
hook.Anchored = true
hook.CanCollide = false
hook.Transparency = 1
hook.Position = mPos
hook.Parent = work
bmw = Instance.new("BodyVelocity")
bmw.Velocity = Vector3.new(0,0,0)
bmw.MaxForce = Vector3.new(100000,100000,100000)
bmw.Parent = hrp
attach(hrp)
attach(hook)
rope = Instance.new("RopeConstraint")
rope.Parent = hook
rope.Attachment0 = hook.att
rope.Attachment1 = hrp.att
rope.WinchEnabled = true
rope.Color = BrickColor.new("Royal purple")
rope.Length = distance / 1
rope.Visible = true
local distance = (hook.Position - hrp.Position).Unit
while con and (hrp.Position - hook.Position).Magnitude > 1 do
hrp.CFrame = CFrame.new(hrp.Position + distance * MovingSpeed * run.RenderStepped:Wait())
hrp.CFrame = CFrame.lookAt(hrp.Position, hook.Position)
local currentD = between(hrp.Position, hook.Position)
rope.Length = currentD
end
else
print("Too far!")
end
end
end
else
print("Stand is not summoned!")
end
elseif i.KeyCode == Enum.KeyCode[charge] and keyHold2 then
keyHold2 = false
chargeCon = true
unchargeCon = false
hamon = Instance.new("ParticleEmitter")
hamon.Parent = hrp
hamon.Name = "Hermit"
hamon.Rate = 120
hamon.Lifetime = NumberRange.new(1, 3)
hamon.Size = NumberSequence.new(0.5, 1)
hamon.Speed = NumberRange.new(1,2)
hamon.Color = ColorSequence.new(Color3.fromRGB(255, 235, 0))
hamon.Transparency = NumberSequence.new(0.5, 1)
hamon.Rotation = NumberRange.new(0, 360)
hamon.Enabled = true
while chargeCon do
if frame2.Size.X.Offset + newSize >= maxSize.X.Offset then
chargeCon = false
break
end
frame2.Size = UDim2.new(0,frame2.Size.X.Offset + newSize,0,frame2.Size.Y.Offset)
wait(0.1)
end
end
end)
uis.InputEnded:Connect(function(i,g)
if g then return end
if i.KeyCode == Enum.KeyCode[hookKeybind] then
keyHold = true
con = false
if hook then
hook:Destroy()
end
if bmw then
bmw:Destroy()
end
if rope then
rope:Destroy()
end
elseif i.KeyCode == Enum.KeyCode[charge] then
unchargeCon = true
keyHold2 = true
chargeCon = false
while unchargeCon do
if frame2.Size == minSize then
hamon:Destroy()
unchargeCon = false
break
end
frame2.Size = UDim2.new(0,frame2.Size.X.Offset + newSize2,0,frame2.Size.Y.Offset)
wait(0.1)
end
end
end)



Pls hamon barg
@vserduk023 my friend will add it
@vserduk023 done! added hamon charge :D
@IceCream_Cat Go fakeAdministrator Badge message PLS
@vserduk023 what
can you add hamon barrage or like vine attack move or something?
Man i love the script especially when it comes to jojo reference. Tbh it would be surprising if you add star platinum or other op stands in the jojo verse
Is this client sided or server sided