--[[ REPARATO E COMPLETATO AL 100% - PIVOT FIX - Tailwhip Pivot: Spostato AVANTI di 6 stud. - Idle: Ripristinato e Funzionante. - WalkSpeed: 50. - Tricks: Tailwhip (R), Backflip (F), NoHands (Z) + GUI. ]] local Player = game:GetService("Players").LocalPlayer local Character = Player.Character or Player.CharacterAdded:Wait() local Hum = Character:WaitForChild("Humanoid") local Root = Character:WaitForChild("HumanoidRootPart") local Torso = Character:WaitForChild("Torso") local defaultAnimate = Character:FindFirstChild("Animate") if defaultAnimate then defaultAnimate.Disabled = true end Hum.WalkSpeed = 50 local bmxHandle = nil for _, v in ipairs(Character:GetDescendants()) do if v:IsA("Handle") and v.Parent:IsA("Accessory") then local name = v.Parent.Name:lower() if name:match("bmx") or name:match("zaino") or name:match("tj") or name:match("tommy") then v.Parent.Name = "Back Bike" bmxHandle = v break end end end if not bmxHandle then local FakeBike = Instance.new("Part") FakeBike.Name = "Handle" FakeBike.Size = Vector3.new(2, 3, 5) FakeBike.CanCollide = false FakeBike.Parent = Instance.new("Accessory", Character) FakeBike.Parent.Name = "Back Bike" local Mesh = Instance.new("SpecialMesh", FakeBike) Mesh.MeshId = "rbxassetid://9743555232" Mesh.TextureId = "rbxassetid://9743555314" bmxHandle = FakeBike end local CF, VT, RAD = CFrame.new, Vector3.new, math.rad local ANGLES = CFrame.Angles local speed, sine = 1, 1 local trickSine = 0 local Mode = '1' local RJ = Root:WaitForChild("RootJoint") local RS = Torso:WaitForChild("Right Shoulder") local LS = Torso:WaitForChild("Left Shoulder") local RH = Torso:WaitForChild("Right Hip") local LH = Torso:WaitForChild("Left Hip") local NECK = Torso:WaitForChild("Neck") NECK.C0 = CF(0,1,0)*ANGLES(RAD(0),RAD(0),RAD(0)) NECK.C1 = CF(0,-0.5,0)*ANGLES(RAD(0),RAD(0),RAD(0)) RJ.C1 = CF(0,-1,0)*ANGLES(RAD(0),RAD(0),RAD(0)) RJ.C0 = CF(0,0,0)*ANGLES(RAD(0),RAD(0),RAD(0)) RS.C1 = CF(0,0.5,0)*ANGLES(RAD(0),RAD(0),RAD(0)) LS.C1 = CF(0,0.5,0)*ANGLES(RAD(0),RAD(0),RAD(0)) RH.C1 = CF(0,1,0)*ANGLES(RAD(0),RAD(0),RAD(0)) LH.C1 = CF(0,1,0)*ANGLES(RAD(0),RAD(0),RAD(0)) local function hat(hName, pName, c1, c0, lSpeed) local target = Character:FindFirstChild(hName) if target and target:FindFirstChild("Handle") then local weld = target.Handle:FindFirstChildOfClass("Weld") or target.Handle:FindFirstChildOfClass("ManualWeld") if not weld then weld = Instance.new("Weld", target.Handle) weld.Name = "AccessoryWeld" end weld.Part0 = target.Handle weld.Part1 = Character:FindFirstChild(pName) weld.C1 = c1 or CF() weld.C0 = weld.C0:Lerp(c0 or CF(), lSpeed or 0.2) end end -- GUI TRICK local ScreenGui = Instance.new("ScreenGui", Player.PlayerGui) ScreenGui.Name = "BmxGUI" local function createBtn(name, pos) local btn = Instance.new("TextButton", ScreenGui) btn.Size = UDim2.new(0, 100, 0, 35) btn.Position = pos btn.Text = name:upper() btn.BackgroundColor3 = Color3.fromRGB(20, 20, 20) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.SourceSansBold btn.TextSize = 14 Instance.new("UICorner", btn) btn.MouseButton1Click:Connect(function() if Mode == '1' then Mode = name trickSine = 0 task.wait(name == "Backflip" and 0.45 or 0.6) Mode = '1' end end) end createBtn("Tailwhip", UDim2.new(0.88, 0, 0.65, 0)) createBtn("Backflip", UDim2.new(0.88, 0, 0.71, 0)) createBtn("NoHands", UDim2.new(0.88, 0, 0.77, 0)) local Mouse = Player:GetMouse() Mouse.KeyDown:Connect(function(k) if k == 'r' and Mode == '1' then Mode = 'Tailwhip' trickSine = 0 task.wait(0.6) Mode = '1' elseif k == 'f' and Mode == '1' then Mode = 'Backflip' trickSine = 0 task.wait(0.45) Mode = '1' elseif k == 'z' and Mode == '1' then Mode = 'NoHands' task.wait(0.6) Mode = '1' elseif k == '1' or k == 'q' then Mode = '1' elseif k == 'e' then Mode = '2' end end) game:GetService("RunService").Heartbeat:Connect(function(dt) if Hum.Health <= 0 then return end local velocity = Root.Velocity local velocityMag = VT(velocity.X, 0, velocity.Z).Magnitude local moveLerp = math.clamp(dt * 9, 0, 1) if velocityMag > 2 then sine = sine + (velocityMag * dt * 0.50) else sine = sine + (dt * 4) end if Mode == '1' then if velocity.Y > 2 then -- JUMP RJ.C0 = RJ.C0:Lerp(CF(0, 0.57, 0) * ANGLES(RAD(-32.6), 0, 0), moveLerp) hat('Back Bike','Torso', CF(0,0,0), CF(0, 2, -0.5) * ANGLES(RAD(54), RAD(180), 0), moveLerp) NECK.C0 = NECK.C0:Lerp(CF(0, 1, 0) * ANGLES(RAD(10), 0, 0), moveLerp) RS.C0 = RS.C0:Lerp(CF(1.5, -0.14, 0) * ANGLES(RAD(125.3), 0, RAD(-33.6)), moveLerp) LS.C0 = LS.C0:Lerp(CF(-1.5, -0.14, 0) * ANGLES(RAD(125.3), 0, RAD(33.6)), moveLerp) elseif velocityMag < 2 then -- IDLE local idleWave = math.cos(sine / 2.5) * 0.04 RJ.C0 = RJ.C0:Lerp(CF(0, -0.5 + idleWave, 0) * ANGLES(RAD(-2.06), 0, RAD(-7.15)), moveLerp) NECK.C0 = NECK.C0:Lerp(CF(0, 1, 0) * ANGLES(RAD(2 * math.sin(sine / 2.5)), 0, 0), moveLerp) RS.C0 = RS.C0:Lerp(CF(1.5, -0.14, 0) * ANGLES(RAD(110.02), RAD(23.42), RAD(-32.62)), moveLerp) LS.C0 = LS.C0:Lerp(CF(-1.5, -0.14, 0) * ANGLES(RAD(110.02), RAD(-23.42), RAD(32.62)), moveLerp) RH.C0 = RH.C0:Lerp(CF(0.5, -1.4, 0) * ANGLES(0, 0, RAD(13.23)), moveLerp) LH.C0 = LH.C0:Lerp(CF(-0.5, -1, -1.2) * ANGLES(RAD(-63.19), 0, 0), moveLerp) hat('Back Bike','Torso', CF(0,0,0), CF(0, 1.8 + idleWave, -0.86) * ANGLES(RAD(-8), RAD(180), 0), moveLerp) else -- RUN / WALK local bikeSway = math.sin(sine) * 3.5 RJ.C0 = RJ.C0:Lerp(CF(0, -0.5, 0) * ANGLES(RAD(-4), 0, RAD(bikeSway)), moveLerp) NECK.C0 = NECK.C0:Lerp(CF(0, 1, 0) * ANGLES(RAD(5), 0, RAD(-bikeSway/2)), moveLerp) RS.C0 = RS.C0:Lerp(CF(1.5, -0.14, 0) * ANGLES(RAD(105), RAD(15), RAD(-25 + bikeSway)), moveLerp) LS.C0 = LS.C0:Lerp(CF(-1.5, -0.14, 0) * ANGLES(RAD(105), RAD(-15), RAD(25 + bikeSway)), moveLerp) local pCos, pSin = math.cos(sine), math.sin(sine) RH.C0 = RH.C0:Lerp(CF(0.5, -1.1 + pCos * 0.38, 0.1 + pSin * 0.38), moveLerp) LH.C0 = LH.C0:Lerp(CF(-0.5, -1.1 - pCos * 0.38, 0.1 - pSin * 0.38), moveLerp) hat('Back Bike','Torso', CF(0,0,0), CF(0, 1.8, -0.86) * ANGLES(RAD(-8), RAD(180), RAD(bikeSway)), moveLerp) end elseif Mode == 'Tailwhip' then trickSine = trickSine + (dt * 12) local rot = math.sin(trickSine) * 360 -- [RICHIESTA] Pivot spostato AVANTI di 6 stud (Offset +6 su Z rispetto al centro) hat('Back Bike','Torso', CF(0,0,0), CF(0, 1.8, -0.86) * CF(0, 0, 6) * ANGLES(0, RAD(rot), 0) * CF(0, 0, -6), 0.4) RH.C0 = RH.C0:Lerp(CF(0.5, -0.5, -0.5) * ANGLES(RAD(30), 0, 0), moveLerp) LH.C0 = LH.C0:Lerp(CF(-0.5, -0.5, -0.5) * ANGLES(RAD(30), 0, 0), moveLerp) elseif Mode == 'Backflip' then trickSine = trickSine + (dt * 20) local rot = trickSine * 55 RJ.C0 = RJ.C0:Lerp(CF(0, 0, 0) * ANGLES(RAD(rot), 0, 0), 0.3) hat('Back Bike','Torso', CF(0,0,0), CF(0, 1.8, -0.86) * ANGLES(RAD(-8), RAD(180), 0), moveLerp) elseif Mode == 'NoHands' then RS.C0 = RS.C0:Lerp(CF(1.5, 0.5, 0) * ANGLES(0, 0, RAD(90)), moveLerp) LS.C0 = LS.C0:Lerp(CF(-1.5, 0.5, 0) * ANGLES(0, 0, RAD(-90)), moveLerp) hat('Back Bike','Torso', CF(0,0,0), CF(0, 1.8, -0.86) * ANGLES(RAD(-8), RAD(180), 0), moveLerp) end end)