CFrame multiplication is basically just applying relative positions
part.CFrame * CFrame.new(leftRight,0,0) gets the left and right offsets relative to the part
part.CFrame * CFrame.new(0,upDown,0) gets the up and down offsets relative to the part
part.CFrame * CFrame.new(0,0,frontBack) gets the front and back offsets relative to the part
These can all be combined to do some pretty useful things
So basically all you need to do is do * CFrame.new( instead of + Vector3.new(
Have you tried using the Z size instead or made other small changes which might affect it?
You could even try putting a set value in the cframe to see if its properly responding to a value
Eg:
I just tested it and it worked! but It doesn’t work on that line
if selection == Target then
if side == "Top" then
AddedPart.CFrame = Target.CFrame * CFrame.new(0, Target.Size.Y/2 + AddedPart.Size.Y/2, 0)
elseif side == "Bottom" then
AddedPart.CFrame = Target.CFrame * CFrame.new(0, -Target.Size.Y/2 - AddedPart.Size.Y/2, 0)
elseif side == "Right" then -- Doesn't work here
AddedPart.CFrame = Target.CFrame * CFrame.new(Target.Size.X/2 + AddedPart.Size.X/2,0,0) -- Works Perfectly
end
end
Wow, not sure why but the problem wasn’t the placement but it was the if statement. Didn’t know it couldn’t hold more than 3 elseif. Thank you for your help!