It requires some math but I think this will help.
Here’s a template:
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
for _,limb in pairs(character:GetChildren()) do
if limb.Name:find("Leg") then
local boot = Instance.new("Part", limb)
boot.Name = string.split(limb.Name," ")[2].." Boot"
boot.Size = Vector3.new(1.1,1.1,1.1)
boot.TopSurface = Enum.SurfaceType.Smooth
boot.BottomSurface = Enum.SurfaceType.Smooth
boot.CanCollide = false
boot.Anchored = true
boot.CFrame = limb.CFrame
boot.Position -= Vector3.new(0,1.01,0)
boot.Color = Color3.fromRGB(50,50,50) --You can customise this!
local weld = Instance.new("WeldConstraint", boot)
weld.Name = "Weld"
weld.Attachment0 = boot
weld.Attachment1 = limb
boot.Anchored = false
end
end
end)
end)
This might be wrong, but just see if it works.