'How to move multiple parts with attachments
I'm trying to make something where when you move your mouse, a part moves
When the mouse moves, I want this arm to move and have everything follow just using orientation (and stay at the center of certain parts)
This is my code for moving the parts
-- This is using remote events. This is local
game.ReplicatedStorage.JudgeCam2.OnClientEvent:Connect(function()
game.Workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
wait(.1)
local TS = game:GetService("TweenService")
TS:Create(game.Workspace.CurrentCamera, TweenInfo.new(.75,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0), {CFrame = game.Workspace.CamParts.JudgeCam2.CFrame}):Play()
local GUN_ICON = "rbxasset://textures/GunCursor.png"
local GUN_RELOAD_ICON = "rbxasset://textures/GunWaitCursor.png"
mouse.Icon = GUN_ICON
local UIS = game:GetService("UserInputService")
local LastMousePos = nil -- Used to calculate how far mouse has moved
UIS.InputChanged:Connect(function(input, gameProcessedEvent)
local CurrentMousePos1 = Vector2.new(mouse.X,mouse.Y)
if gameProcessedEvent then return end
if input.UserInputType == Enum.UserInputType.MouseMovement then -- runs every time mouse is moved
if LastMousePos == nil then
game.ReplicatedStorage.MoveJudge2:FireServer(mouse,CurrentMousePos1,CurrentMousePos1)
else
game.ReplicatedStorage.MoveJudge2:FireServer(mouse,CurrentMousePos1,LastMousePos)
end
LastMousePos = CurrentMousePos1
end
end)
UIS.InputBegan:Connect(function(KeyCode)
if KeyCode.UserInputType == Enum.UserInputType.MouseButton1 and debouce2 == false then
debouce2 = true
mouse.Icon = GUN_RELOAD_ICON
wait(6)
debouce2 = false
end
end)
end)
-- This is the server
game.ReplicatedStorage.MoveJudge2.OnServerEvent:Connect(function(plr, mouse,CurrentMousePos,LastMousePos)
print("(" .. tostring(CurrentMousePos) .. " - " .. tostring(LastMousePos) .. ")/5")
local change = (CurrentMousePos - LastMousePos)/5 -- calculates distance mouse traveled (/5 to lower sensitivity)
game.Workspace.Arm2.CFrame = game.Workspace.Arm2.CFrame * CFrame.Angles(0,math.rad(change.X),-math.rad(change.Y))
end)
Is there any way I can do this with positions or attactments?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|

