Problem with collision

I have local script which makes meshparts size from the head and size back making like a wavy effect. But the problem is that when I size these meshparts with tweenservice, it makes the whole character being able to walk through anything. I tried most things to figure out if the script has anything to do with it, but it turns out it’s really just the sizing of the meshpart which causes this weird problem. Is this a bug or is this fixable?

https://gyazo.com/1ea6bf90c8f96b8f97c992ac75e8e33b

local TelepathyWaves = true
local Charger = Variable2
local TotalWaves = 1
local Connection = nil
Connection = Events:FindFirstChild("KineticEvent").OnClientEvent:Connect(function(State, Variable, Variable2, Variable3, Variable4, Variable5)
	if State == "TelepathyWavesOut" and Variable == false and Variable2 == Charger then
		TotalWaves = TotalWaves - 1
		if TotalWaves == 0 then
			TelepathyWaves = false
			Connection:Disconnect()
		end
	elseif State == "TelepathyWavesOut" and Variable == true and Variable2 == Charger then
		TotalWaves = TotalWaves + 1
	end
end)
while TelepathyWaves == true do
	if Variable2 == nil or Variable2.Parent == nil or Variable2:FindFirstChild("Head") == nil or Variable2:FindFirstChild("HumanoidRootPart") == nil or Variable3 == nil or Variable3.Parent == nil then
		Connection:Disconnect()
		break
	end
	local Waves = game:GetService("ReplicatedStorage"):FindFirstChild("Assets"):FindFirstChild("Telepathy"):FindFirstChild("TelepathyWaves"):Clone()
	Waves.Parent = game:GetService("Workspace"):FindFirstChild("Moves")
	local Weld = Instance.new("Weld", Waves)
	Weld.Part0 = Waves
	Weld.Part1 = Variable2:FindFirstChild("Head")
	Weld.C0 = Weld.C0 * CFrame.fromEulerAnglesXYZ(math.random(-360, 360), math.random(-360, 360), math.random(-360, 360)) * CFrame.new(0, -0.5, 0)
	Waves.Transparency = 1
	Waves.Size = Waves.Size/3.5
	local TweenInformation = TweenInfo.new(
		0.2,
		Enum.EasingStyle.Circular,
		Enum.EasingDirection.Out,
		0,
		true,
		0
	)
	local TweenGoals = {
		Size = Waves.Size * math.random(15, 25)/10,
	}
	local TweenAnimation = TweenService:Create(Waves, TweenInformation, TweenGoals)
	TweenAnimation:Play()
	if Variable2:FindFirstChild("Head").Transparency ~= 1 then
		local TweenInformation = TweenInfo.new(
			0.05,
			Enum.EasingStyle.Linear,
			Enum.EasingDirection.Out
		)
		local TweenGoals = {
			Transparency = 0.85,
		}
		local TweenAnimation = TweenService:Create(Waves, TweenInformation, TweenGoals)
		TweenAnimation:Play()
	end
	spawn(function()
		wait(0.05)
		if Waves ~= nil and Waves.Parent ~= nil then
			local TweenInformation = TweenInfo.new(
				0.15,
				Enum.EasingStyle.Linear,
				Enum.EasingDirection.Out
			)
			local TweenGoals = {
				Transparency = 1,
			}
			local TweenAnimation = TweenService:Create(Waves, TweenInformation, TweenGoals)
			TweenAnimation:Play()
			wait(0.35)
			if Waves ~= nil and Waves.Parent ~= nil then
				Waves:Destroy()
			end
		end
	end)
	wait()
end
2 Likes

Is it possible to show us the script.

local TelepathyWaves = true
local Charger = Variable2
local TotalWaves = 1
local Connection = nil
Connection = Events:FindFirstChild("KineticEvent").OnClientEvent:Connect(function(State, Variable, Variable2, Variable3, Variable4, Variable5)
	if State == "TelepathyWavesOut" and Variable == false and Variable2 == Charger then
		TotalWaves = TotalWaves - 1
		if TotalWaves == 0 then
			TelepathyWaves = false
			Connection:Disconnect()
		end
	elseif State == "TelepathyWavesOut" and Variable == true and Variable2 == Charger then
		TotalWaves = TotalWaves + 1
	end
end)
while TelepathyWaves == true do
	if Variable2 == nil or Variable2.Parent == nil or Variable2:FindFirstChild("Head") == nil or Variable2:FindFirstChild("HumanoidRootPart") == nil or Variable3 == nil or Variable3.Parent == nil then
		Connection:Disconnect()
		break
	end
	local Waves = game:GetService("ReplicatedStorage"):FindFirstChild("Assets"):FindFirstChild("Telepathy"):FindFirstChild("TelepathyWaves"):Clone()
	Waves.Parent = game:GetService("Workspace"):FindFirstChild("Moves")
	local Weld = Instance.new("Weld", Waves)
	Weld.Part0 = Waves
	Weld.Part1 = Variable2:FindFirstChild("Head")
	Weld.C0 = Weld.C0 * CFrame.fromEulerAnglesXYZ(math.random(-360, 360), math.random(-360, 360), math.random(-360, 360)) * CFrame.new(0, -0.5, 0)
	Waves.Transparency = 1
	Waves.Size = Waves.Size/3.5
	local TweenInformation = TweenInfo.new(
		0.2,
		Enum.EasingStyle.Circular,
		Enum.EasingDirection.Out,
		0,
		true,
		0
	)
	local TweenGoals = {
		Size = Waves.Size * math.random(15, 25)/10,
	}
	local TweenAnimation = TweenService:Create(Waves, TweenInformation, TweenGoals)
	TweenAnimation:Play()
	if Variable2:FindFirstChild("Head").Transparency ~= 1 then
		local TweenInformation = TweenInfo.new(
			0.05,
			Enum.EasingStyle.Linear,
			Enum.EasingDirection.Out
		)
		local TweenGoals = {
			Transparency = 0.85,
		}
		local TweenAnimation = TweenService:Create(Waves, TweenInformation, TweenGoals)
		TweenAnimation:Play()
	end
	spawn(function()
		wait(0.05)
		if Waves ~= nil and Waves.Parent ~= nil then
			local TweenInformation = TweenInfo.new(
				0.15,
				Enum.EasingStyle.Linear,
				Enum.EasingDirection.Out
			)
			local TweenGoals = {
				Transparency = 1,
			}
			local TweenAnimation = TweenService:Create(Waves, TweenInformation, TweenGoals)
			TweenAnimation:Play()
			wait(0.35)
			if Waves ~= nil and Waves.Parent ~= nil then
				Waves:Destroy()
			end
		end
	end)
	wait()
end

Bare with me, have you got a link to the game I can access it with.

Of course
https://www.roblox.com/games/4951130016/HUGE-REVAMP-WINTER-MAP-The-Kinetic-Abilities?refPageId=1ae33e72-095f-493b-b560-195fafb06ce3

So, you are the owner or just a developer.

I am the owner of the game and group

Okay, have you got a discord? It will be easier for me to explain a few things.

Itsyarne#7349 is my tag, add me

Figured it out myself, I could just put a specialmesh in a part and scale the mesh, instead of sizing a meshpart.

I swear thank you for telling people how to fix this, and not just saying “I figured it out”.

1 Like