Okey Dokey So I have a thing that makes a bubble around the players mouth and everytime the blow it gets bigger. But like when its around 7 studs wide or 150 as the variable size the player gets pushed back everytime the bubble is blown. I feel like it has something to do with how when roblox resizes something it moves it out of any collisions but ive tried to fix that by when resizing it I first make its parent server storage then resize it then move it back into the character (in workspace) the resizing function is at line 49 Here is the script

local RenderService = game:GetService("RunService")
local Part = script.Bubble
local Size = .1
local Db = true
local BlowTime = 20
local Character = script.Parent
local Player = game:GetService("Players"):GetPlayerFromCharacter(Character)
local BubbleSize = Player:WaitForChild("leaderstats"):WaitForChild("BubblePower")
local SizeIncrease = .05
function BlowBubble(plyr)
	if plyr ==  Player then	
		if Db then
			print("Doing")
			Db = false
			Size = 0.1
			UpdateWeld()
			Part.Transparency = 0.1
			Part.Blow:Play()
			local ActualSize = .01 + BubbleSize.Value * SizeIncrease
			local Increase = ActualSize/BlowTime
			for i = 1,BlowTime do
				wait()
				Size = Size + Increase
				UpdateWeld()
			end
			wait(.3)
			Part.Pop:Play()
			Part.PopParticle.Enabled = true
			UpdateWeld()
			Part.Transparency = 1
			BubbleSize.Value = BubbleSize.Value + 1
			wait(.1)
			Part.PopParticle.Enabled = false
			Db = true
		end
	end
end
Part.Parent = Character
Part.Transparency = 0
Player:WaitForChild("BlowBubbleEvent").OnServerEvent:connect(BlowBubble)
-- create weld
Part.Size = Vector3.new(Size,Size,Size)
local Distance = Character.Head.Size.Z/2 + Size/2 + .05
local BubbleWeld = Instance.new("Weld")
BubbleWeld.C1 = CFrame.new(0,.27,Distance)
BubbleWeld.Parent = Part
BubbleWeld.Part0 = Character.Head
BubbleWeld.Part1 = Part
function UpdateWeld()
	
	-- oh roblox physics
	Part.Parent = game.ServerStorage
	Part.CanCollide = false
	Part.Size = Vector3.new(Size,Size,Size)
	Part.CanCollide = false
	Part.Parent = Character
	local Distance = Character.Head.Size.Z/2 + Size/2 + .05 -- got to account for the mesh stuff and shet
	BubbleWeld:Destroy()
	BubbleWeld = Instance.new("Weld")
	BubbleWeld.Parent = Part
	BubbleWeld.Part0 = Character.Head
	BubbleWeld.Part1 = Part
	BubbleWeld.C1 = CFrame.new(0,.27,Distance)
end