Character stretch problem

Dear fellow developers, I have a problem of something I was making. CONCEPT: So, in Roblox studio I’ve made a blackhole, whenever a client goes inside the black hole, in damages and stretch the client until it eventually dies.PROBLEM? However everything was going well, eventually I came across the stretching part, now since I’m not an experience scripter, and I lack of vocabulary and techniques I sadly couldn’t fix the problem, and I would appreciate if you will help me with my problem, thank you for reading this, hopefully I’m not too dumb. Have a good day/evening/night !!! Code:

local p = script.Parent -- describing the part
p.Size =, 8.405, 8.405) -- size
local function OnTouch(hit) -- when touched
	local char = hit.Parent -- defining "char"
	local hum = char:FindFirstChild("Humanoid")--defining "humanoid"
	if hum then -- "if humanoid touched then"
		if hum.Health > 50 then -- if the humanoid health is more than 50 then
			hum:TakeDamage(1) -- damage "1"{1}
			wait(.5) -- wait 
			hum:TakeDamage(2) -- damage "2"{2}
			wait(.5) -- wait
			hum:TakeDamage(3) -- damage"3"{3}
			wait(.5) -- wait 
			hum:TakeDamage(1) -- damage "4"{1}
			local weld ="Weld") -- new weld
			local t = hit.Parent.Torso -- defining "t"
			weld.Part0 = t -- part0
			weld.Part1 = p---part1
			weld.Parent = script.Parent -- the parent of weld is the script's parent
			while weld do -- while is welding do
				local RA = {hit.Parent:FindFirstChild("Right Arm")} -- defining RA
				local LA = {hit.Parent:FindFirstChild("Left Arm")} -- defining LA
				local LL = {hit.Parent:FindFirstChild("Left Leg")}-- defining LL
				local RL = {hit.Parent:FindFirstChild("Right Leg")}-- defining RL
				local H =  {hit.Parent:FindFirstChild("Head")} -- defining H
				RA.Size =,1.5,0.5)-- size
				LA.Size =,1.5,0.5)--size
				LL.Size =,3,0.5)--size
				RL.Size =,3,0.5)--size
				H.Size =,2,1)--size
			while char do
				hum:TakeDamage(100) --[[ while the player
is stuck in the blackhole, after the player is longer than 5 seconds it loses 100 hp.--]]

p.Touched:Connect(OnTouch) -- touch event finishing.

this is more like scripting support yeah?
move it here and you get more useful help

ok did it now what? please help on my script if possible please, ive been waiting for 20 h bruh like no one has responded now what do i do

ah- I’m not a scripter so, I don’t think I can. Have you tried asking an AI?

Also, you could try wording your problem better, like what is the expected behavior vs what happens.

does the character actually stretch? does it just not do anything?

I asked ChatGPT and it gave me a script that worked 4 me. not sure if its the effect you wanted tho

-- LocalScript

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

-- Function to stretch the character
local function stretchCharacter(scale)
	-- Check if the character exists and has a HumanoidRootPart
	if character and character:FindFirstChild("HumanoidRootPart") then
		-- Loop through all the body parts and scale them
		for _, part in pairs(character:GetChildren()) do
			if part:IsA("BasePart") then
				-- Stretch the part along the Y-axis
				part.Size =, part.Size.Y * scale, part.Size.Z)
				part.CFrame = part.CFrame +, (part.Size.Y * (scale - 1)) / 2, 0)
			elseif part:IsA("Accessory") then
				-- Adjust the accessory position to match the stretched body
				local handle = part:FindFirstChild("Handle")
				if handle then
					handle.CFrame = handle.CFrame +, (handle.Size.Y * (scale - 1)) / 2, 0)

		-- Adjust the humanoid root part position to keep the character on the ground
		character.HumanoidRootPart.CFrame = character.HumanoidRootPart.CFrame +, (character.HumanoidRootPart.Size.Y * (scale - 1)) / 2, 0)

-- Stretch the character by a factor of 3