Okay, so if you are not familiar with "Stands", it is basically your ability and it is from the anime "JoJo's Bizarre Adventure"

I have an issue where when my character dies, the stand just disappears. I tried unsummoning the stand when the player dies but i had no success, i also tried manually moving it to a different location but for some reason it just doesn't work. Am I missing something?

Sorry if my coding is messy or such, this is my whole summoning script. I learned along the way and some of it may be inefficient or such.

local ReplicatedStorage = game.ReplicatedStorage
local AnimationsDir = ReplicatedStorage.Animations
local AnimFloatDir = AnimationsDir.Floating
local AnimEtcDir = AnimationsDir.Etc
local AnimGroundDir = AnimationsDir.Ground
local character = script.Parent

local TweenService = game:GetService("TweenService")

local function summonStand(player)
	if player.Character.Name == character.Name then
	print("starting stand summon")
	local standLoc = game.ReplicatedStorage.TempStands:FindFirstChild(player.Name)
	local stand = standLoc:FindFirstChild("Stand")
		local standVal = standLoc:FindFirstChild("StandSummoned")
		local obtained = standLoc:FindFirstChild("StandObtained")
		if obtained.Value == true then
			
	standVal.Value = true
	
	stand.Parent = player.Character
	wait(0.1)
	local hum = stand:WaitForChild("AnimController") -- Find the Humanoid
	local anim = hum:LoadAnimation(AnimFloatDir.Idle) -- It finds anything inside of the script that is "Animation" and loads it.
	anim:Play()
	stand.Head.Summon:Play()
		print("summoned")
	--	stand.HumanoidRootPart.CFrame = character.HumanoidRootPart.CFrame*CFrame.new(-3, 2, 3)
		weld = Instance.new("Weld")
		weld.Parent = stand.HumanoidRootPart
		weld.Part0 = stand.HumanoidRootPart
		weld.Part1 = character.HumanoidRootPart
			weld.C0 = CFrame.new(-3, -2, -3)
			
			local goal = {}
			goal.C0 = weld.Part0.CFrame:ToObjectSpace(weld.Part1.CFrame)
			goal.C1 = weld.Part0.CFrame:ToObjectSpace(weld.Part1.CFrame * CFrame.new(-3,1,2))
			local info = TweenInfo.new(.5)
			local tween = TweenService:Create(weld, info, goal)
			tween:Play()
			
			
	    noCollisionConstraint = Instance.new("NoCollisionConstraint")
		noCollisionConstraint.Parent = character.HumanoidRootPart
		noCollisionConstraint.Part0 = stand.HumanoidRootPart
		noCollisionConstraint.Part1 = character.HumanoidRootPart
		
		noCollisionConstraint2 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint2.Parent = character.Head
		noCollisionConstraint2.Part0 = stand.HumanoidRootPart
		noCollisionConstraint2.Part1 = character.Head

		noCollisionConstraint3 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint3.Parent = character.Torso
		noCollisionConstraint3.Part0 = stand.HumanoidRootPart
		noCollisionConstraint3.Part1 = character.Torso

		noCollisionConstraint4 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint4.Parent = character.HumanoidRootPart
		noCollisionConstraint4.Part0 = stand.Torso
		noCollisionConstraint4.Part1 = character.HumanoidRootPart

		noCollisionConstraint5 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint5.Parent = character.Torso
		noCollisionConstraint5.Part0 = stand.Torso
		noCollisionConstraint5.Part1 = character.Torso

		noCollisionConstraint6 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint6.Parent = character.Head
		noCollisionConstraint6.Part0 = stand.Torso
		noCollisionConstraint6.Part1 = character.Head

		noCollisionConstraint7 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint7.Parent = character.HumanoidRootPart
		noCollisionConstraint7.Part0 = stand.Head
		noCollisionConstraint7.Part1 = character.HumanoidRootPart
		
		noCollisionConstraint8 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint8.Parent = character.Torso
		noCollisionConstraint8.Part0 = stand.Head
		noCollisionConstraint8.Part1 = character.Torso
		
		noCollisionConstraint9 = Instance.new("NoCollisionConstraint")
		noCollisionConstraint9.Parent = character.Head
		noCollisionConstraint9.Part0 = stand.Head
		noCollisionConstraint9.Part1 = character.Head
		
		for i, v in ipairs(stand:GetDescendants()) do
			if v:IsA("BasePart") then
				v.CanCollide = false
				v.Massless = true
			end 
			end
		else
			print("not ready")
			end
	end
end

local function unsummonStand(player)
	if player.Character.Name == character.Name then
	print("starting stand unsummon")
		local standLoc = game.ReplicatedStorage.TempStands:FindFirstChild(player.Name)
		if player.Character:FindFirstChild("Stand")then
			local stand = player.Character:FindFirstChild("Stand")
			local standVal = standLoc:FindFirstChild("StandSummoned")
			local obtained = standLoc:FindFirstChild("StandObtained")
			if obtained.Value == true then
				standVal.Value = false
				stand.Parent = standLoc
				print("unsummoned")
				weld:Destroy()
				noCollisionConstraint:Destroy()
				noCollisionConstraint2:Destroy()
				noCollisionConstraint3:Destroy()
				noCollisionConstraint4:Destroy()
				noCollisionConstraint5:Destroy()
				noCollisionConstraint6:Destroy()
				noCollisionConstraint7:Destroy()
				noCollisionConstraint8:Destroy()
				noCollisionConstraint9:Destroy()
				end
		
				end
			end
		end


local function standDie(player)
	local stand = player.Character:FindFirstChild("Stand")
	stand:Destroy()
	-- repeat
	--	warn("Waiting...")
	--	wait(0.1)
	--until player.Character:WaitForChild("Humanoid")
	--local standName = ReplicatedStorage.Standstore:FindFirstChild(player.name)
	--local newStand = ReplicatedStorage.Stands:FindFirstChild(standName.Value)
	--local newStandModel = newStand:Clone()
	--newStandModel.Parent = ReplicatedStorage.TempStands:FindFirstChild(player.name)
--	print("done death cycle")
end

game.ReplicatedStorage.Functions.SummonStand.OnServerEvent:Connect(summonStand)
game.ReplicatedStorage.Functions.UnsummonStand.OnServerEvent:Connect(unsummonStand)
game.ReplicatedStorage.Functions.StandDie.OnServerEvent:Connect(standDie)

Thanks!

2 comments

0

maybe just try summoning the stand again when the player dies?

0

Thank you!!! I just had to rewrite my code, i used a way that wasn't very good and was prone to breaking. I hadn't cloned it before and only just moved it back and forth.