Gomu gomu no rocket

does anybody know how to make gomu gomu no rocket? I already made the hand stretch thing but still can’t make the grab thing. If you know any tutorial or you can help me with script

-- Script inside local scriptwait(1)
local UIS = game:GetService("UserInputService")


local Event= script.Event

local Player = game.Players.LocalPlayer
local character = Player.Character
if not character or not character.Parent then
	character = Player.CharacterAdded:wait()
end
local Humanoid = character:WaitForChild("Humanoid")

local Animations = Event.Animations
local Hold = Animations.Hold
local Release = Animations.Release
local Unrelease = Animations.Unrelease

local Root = character:WaitForChild("HumanoidRootPart")

local mouse = Player:GetMouse()

local active = false
local debounce = false
local canMove = false

local cooldown = 2

local HoldAnim = Humanoid:WaitForChild("Animator"):LoadAnimation(Hold)
local ReleaseAnim = Humanoid:WaitForChild("Animator"):LoadAnimation(Release)
local UnreleaseAnim = Humanoid:WaitForChild("Animator"):LoadAnimation(Unrelease)

UIS.InputBegan:Connect(function(Input,isTyping)
	if isTyping then
		return
	elseif Input.KeyCode == Enum.KeyCode.V then
		if debounce == false and active == false then
			canMove= true
			debounce = true
			Event:FireServer(active,mouse.hit.p)
		end
	end
end)

UIS.InputEnded:Connect(function(Input,isTyping)
	if isTyping then
		return
	elseif Input.KeyCode == Enum.KeyCode.V then
		if debounce == true and active == false then
			canMove = false
			active = true
			Root.CFrame = CFrame.new(Root.Position, Root.Position + (mouse.Hit.LookVector+Vector3.new(0,0.1,0)))
			Event:FireServer(active,mouse.hit.p)
		end
	end
end)

Event.OnClientEvent:Connect(function()
	debounce = false
	wait(cooldown)
	active = false
end)
-- Script inside ServerScript
local Event = script.Parent
local Debris = game:GetService("Debris")
local TweenService = game:GetService("TweenService")

Event.OnServerEvent:Connect(function(player,active,mouseaim)
	local Character = player.Character
	local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")
	local Humanoid = Character:WaitForChild("Humanoid")
	
	local newAnim = Instance.new("Animation", Character)
	newAnim.AnimationId = "rbxassetid://"..7276265522
	
	local Hand = Character:WaitForChild("RightHand")
	local ReleaseAnim = Humanoid:WaitForChild("Animator"):LoadAnimation(newAnim)
	
	if active == true then
		
		Hand.Transparency = 0
		wait(0.05)
		ReleaseAnim:Play()
		
		local StrechSoundLeft = Instance.new("Sound",Hand)
		StrechSoundLeft.Name = "StrechSound"
		StrechSoundLeft.SoundId = "rbxassetid://137463821"
		Debris:AddItem(StrechSoundLeft,3)
		StrechSoundLeft:Play()
		
		local goal = {}
		goal.Size = Hand.Size + Vector3.new(0,45,0)
		local info = TweenInfo.new(0.1)
		local tween = TweenService:Create(Hand,info,goal)
		tween:Play()
		
		delay(0.5, function()
			local goal = {}
			goal.Size = Hand.Size - Vector3.new(0,45,0)
			local info = TweenInfo.new(0.1)
			local tween = TweenService:Create(Hand,info,goal)
			tween:Play()
			ReleaseAnim:Stop()
			HumanoidRootPart.Anchored = false
		end)
		
	else	
		HumanoidRootPart.Anchored = true
	end
end)

2 Likes

You can make it so if the stretching hand is touching an enemy with a humanoid, you dash towards the enemy while the tween reverses, deal damage to the enemy and knock them back.

1 Like