Welding two characters leads to slowing them down

VIDEO:

SCRIPT:

local proximitypromptservice = game:GetService("ProximityPromptService")
local runservice = game:GetService("RunService")
local animations = game.ReplicatedStorage.ANIMATIONS
local arrested = animations.ARRESTED
local whoarrest = animations.POLICEARREST

players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local uppertorso:Part = character:FindFirstChild("UpperTorso")
		local proximityprompt = Instance.new("ProximityPrompt", uppertorso)
		proximityprompt.Name = "ArrestPrompt"
		proximityprompt.ActionText = "Arrest"
		proximityprompt.HoldDuration = 1
		proximityprompt.RequiresLineOfSight = false
		proximityprompt.Enabled = false
	end)
end)

proximitypromptservice.PromptTriggered:Connect(function(prompt, player)
	if prompt.Name == "ArrestPrompt" then
		local policecharacter = player.Character
		local enemy = prompt.Parent.Parent
		local animationtrack1:AnimationTrack = enemy.Humanoid.Animator:LoadAnimation(arrested)
		local animationtrack2:AnimationTrack = policecharacter.Humanoid.Animator:LoadAnimation(whoarrest)
		animationtrack1.Priority = Enum.AnimationPriority.Action4
		animationtrack2.Priority = Enum.AnimationPriority.Action4
		animationtrack1:Play() ; animationtrack2:Play()
		local weld = Instance.new('Weld', policecharacter.HumanoidRootPart)
		weld.Part1 = enemy.HumanoidRootPart
		weld.Part0 = policecharacter.HumanoidRootPart
		weld.C1 = CFrame.new(0, 0, 3)
	end
end)
2 Likes

Hey @DevelopingHolder, this is because if you weld the model to your character, its mass and size will increase, making it walk slower.

To fix that, you can use Massless:

I tried this but it doesnt seem to work.

for _, v in pairs(enemy:GetChildren()) do
if v:IsA(“BasePart”) then
v.Massless = true
end
end

Maybe this video will help you