i have a blade model that gets attached to the viewmodel, position gets set at runtime and then the model gets welded
however, for some strange reason, the bladeGrooves part (the part that’s disconnected from everything else) seems to not follow those rules, because it is not connected to the blade (when it should be)
all parts are welded (and jointed) from straps, straps is also the primary part of the model:
this is what the model should look like:
i’m not really sure what the issue is, or could be
AttachAbility = function(viewmodel: Model, class: string)
if not abilityOffsets[class] then return end
local abilityFolder: Folder = abilityModelsFolder:FindFirstChild(class)
local abilityModel: Model = abilityFolder:GetChildren()[1]:Clone()
local attachData = abilityOffsets[class]
local attachTo: BasePart = viewmodel:FindFirstChild(attachData.childOf) or character:FindFirstChild(attachData.childOf)
local firstPersonOffsets: {[string]: Vector3 | CFrame} = attachData.firstPerson
local targetCFrame = attachTo.CFrame * CFrame.new(firstPersonOffsets.position) * firstPersonOffsets.rotation
abilityModel.Parent = viewmodel
abilityModel:PivotTo(targetCFrame)
local weldConstraint = Instance.new('WeldConstraint')
weldConstraint.Part0 = attachTo
weldConstraint.Part1 = abilityModel.PrimaryPart
weldConstraint.Parent = attachTo
for _, part in abilityModel:GetDescendants() do
if part:IsA('BasePart') then
part.Anchored = false
end
end
end,



