I need help with making this script affect the torso of the character, instead of a random part.
What I'm trying to do, is this https://twitter.com/egomoose/status/740277001244774400
This script below does the same, but to a part created by an instance. Help?
Trying to make this script do the same thing as...
local mouse = game.Players.LocalPlayer:GetMouse() local moveModel = game.Players.LocalPlayer.Character; -- don't detect the model we're moving mouse.TargetFilter = moveModel local c = moveModel; local hrp = c:WaitForChild("HumanoidRootPart") local j = hrp:WaitForChild("Root Hip") local orig = j.C0 function placeAtMouse() -- make sure the mouse is pointing at something if mouse.Target then -- where we cast our ray from (shifted slightly up so the ray will hit the surface we're hovering) local point = moveModel.Torso.Position; local ray = Ray.new( moveModel.Torso.Position, Vector3.new(0, -10, 0) ) local hit, pos, normal = workspace:FindPartOnRay(ray, moveModel) if hit ~= nil then local origin = point + Vector3.new(0, 0.1, 0) -- cast our ray and get our normal, which is a unit vector local ray = Ray.new(origin, Vector3.new(0, -1, 0)) -- get the perpendicular vector and the angle between the two local cross = Vector3.new(0, 1, 0):Cross(normal) local angle = math.asin(cross.magnitude) -- division by 1 is redundant print(angle) local savedCFrame = moveModel.Torso.Orientation; j.C0 = orig*CFrame.fromAxisAngle(cross.magnitude == 0 and Vector3.new(1) or cross, angle) brick.CFrame = part.CFrame local newCFrame; end end end
This script down here!!!
local player = game:GetService("Players").LocalPlayer; local character = player.CharacterAdded:wait(); local torso = character:WaitForChild("HumanoidRootPart"); function drawray(ray, parent) local part = Instance.new("Part", parent or game.Workspace.CurrentCamera); part.FormFactor = Enum.FormFactor.Custom; part.Material = Enum.Material.Neon; part.Size = Vector3.new(.2, ray.Direction.magnitude, .2); part.CFrame = CFrame.new(ray.Origin + ray.Direction/2, ray.Origin + ray.Direction) * CFrame.Angles(math.pi/2,0,0); part.Anchored = true; part.CanCollide = false; part.BrickColor = BrickColor.new("Bright red"); --Instance.new("SpecialMesh", part); return part; end; local part = Instance.new("Part"); part.Anchored = true; part.CanCollide = false; part.FormFactor = Enum.FormFactor.Custom; part.Material = Enum.Material.Neon; part.Size = Vector3.new(2, 1, 2); part.TopSurface = Enum.SurfaceType.Smooth; part.BottomSurface = Enum.SurfaceType.Smooth; part.BrickColor = BrickColor.Green(); function init() local ray = Ray.new(torso.Position, Vector3.new(0, -50, 0)); local hit, pos, normal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(ray, {character}); local cross = normal:Cross(Vector3.new(0, 1, 0)); local angle = math.asin(cross.magnitude); local lateral = torso.CFrame - torso.CFrame.p; local new = part new.Name = "Part1" new.Parent = character new.CFrame = CFrame.new(pos) * CFrame.fromAxisAngle(cross == Vector3.new() and Vector3.new(1) or cross, -angle) * lateral; end; print("Hello") game:GetService("RunService").RenderStepped:connect(function() init(); end);