Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

I am asking this again cuz I didnt get an answer, Character is not a valid member what should I do?

local function equipPet(player,pet)
	
	local character =  player.Character--problem is here

	if pet ~= nil and character ~= nil then
		
		if character:FindFirstChild(player.Name.."'s pet") then character[player.Name.."'s pet"]:Destroy() end
		
		if character.HumanoidRootPart:FindFirstChild("attachmentCharacter")then 
			character.HumanoidRootPart:FindFirstChild("attachmentCharacter"):Destroy() 
		end

		pet.Name = player.Name.."'s pet"		

		pet:SetPrimaryPartCFrame(character.HumanoidRootPart.CFrame)

		local modelSize = pet.PrimaryPart.CFrame
		
		local attachmentCharacter = Instance.new("Attachment")
		attachmentCharacter.Visible = false
		attachmentCharacter.Name = "attachmentCharacter"
		attachmentCharacter.Parent = character.HumanoiRootPart
		attachmentCharacter.Position = Vector3.new(1,1,0) + modelSize

		local attachmentPet = Instance.new("Attachment")
		attachmentPet.Visible = false
		attachmentPet.Parent = pet.PrimaryPart
		
		local alignPosition = Instance.new("AlignPosition")
		alignPosition.MaxForce = 25000
		alignPosition.Attachment0 = attachmentPet
		alignPosition.Attachment1 = attachmentCharacter
		alignPosition.Responsiveness = 25
		alignPosition.Parent = pet.PrimaryPart

		local alignOrientation = Instance.new("AlignOrientation")
		alignOrientation.MaxTorque = 25000
		alignOrientation.Attachment0 = attachmentPet
		alignOrientation.Attachment1 = attachmentCharacter
		alignOrientation.Responsiveness = 25
		alignOrientation.Parent = pet

		pet.Parent = character
	

	end
	


end



game.Players.PlayerAdded:Connect(function(player)
	local inventory = Instance.new("Folder")
	inventory.Name = "PetInventory"
	inventory.Parent = player

	local equippedPet = Instance.new("StringValue")
	equippedPet.Name = "EquippedPet"
	equippedPet.Parent = player	

	player.CharacterAdded:Connect(function(char)
		if game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value)then
			equipPet(player,game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value):Clone())
		end	
	end)

	equippedPet.Changed:Connect(function()
		if equippedPet.Value ~= nil then
			if game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value)then
			equipPet(player,game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value):Clone())
			end
		end
	end)
	wait(5)
	equipPet(game.ReplicatedStorage.Pets.Storm)

end)

Problem is at line 3

6 comments

0

Please code block ALL of your script. Secondly, tell us what the character is not a valid member of?

0

I have no idea what you mean. Please explain clearly!

0

Click edit, click the code block, Copy and paste ALL of your code in it. Also, provide more of an explanation, such as what are you trying to accomplish? What is the character not a valid member of?

0

Just do local character = player.Character or player.CharacterAdded:Wait()

0

Problem is at line 3,I am trying to add pets into my game but I get error -Character is not a valid member of a model

0

And local character = player.Character or player.CharacterAdded:Wait() didnt work

1 answer

Try This

local function equipPet(player,pet)
    repeat wait() until game:GetService('Players'):FindFirstChild(player).Character
    local character =  game:GetService('Players'):FindFirstChild(player).Character
	
    if pet ~= nil and character ~= nil then

        if character:FindFirstChild(player.."'s pet") then character[player.."'s pet"]:Destroy() end

        if character.HumanoidRootPart:FindFirstChild("attachmentCharacter")then 
            character.HumanoidRootPart:FindFirstChild("attachmentCharacter"):Destroy() 
        end

        pet.Name = player.."'s pet"        

        pet:SetPrimaryPartCFrame(character.HumanoidRootPart.CFrame)

        local modelSize = pet.PrimaryPart.CFrame

        local attachmentCharacter = Instance.new("Attachment")
        attachmentCharacter.Visible = false
        attachmentCharacter.Name = "attachmentCharacter"
        attachmentCharacter.Parent = character:WaitForChild('HumanoiRootPart')
        attachmentCharacter.Position = Vector3.new(1,1,0) + modelSize

        local attachmentPet = Instance.new("Attachment")
        attachmentPet.Visible = false
        attachmentPet.Parent = pet.PrimaryPart

        local alignPosition = Instance.new("AlignPosition")
        alignPosition.MaxForce = 25000
        alignPosition.Attachment0 = attachmentPet
        alignPosition.Attachment1 = attachmentCharacter
        alignPosition.Responsiveness = 25
        alignPosition.Parent = pet.PrimaryPart

        local alignOrientation = Instance.new("AlignOrientation")
        alignOrientation.MaxTorque = 25000
        alignOrientation.Attachment0 = attachmentPet
        alignOrientation.Attachment1 = attachmentCharacter
        alignOrientation.Responsiveness = 25
        alignOrientation.Parent = pet

        pet.Parent = character


    end



end



game.Players.PlayerAdded:Connect(function(player)
    local inventory = Instance.new("Folder")
    inventory.Name = "PetInventory"
    inventory.Parent = player

    local equippedPet = Instance.new("StringValue")
    equippedPet.Name = "EquippedPet"
    equippedPet.Parent = player 

    player.CharacterAdded:Connect(function(char)
        if game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value)then
            equipPet(player,game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value):Clone())
        end 
    end)

    equippedPet.Changed:Connect(function()
        if equippedPet.Value ~= nil then
            if game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value)then
            equipPet(player.Name,game.ReplicatedStorage:WaitForChild("Pets"):FindFirstChild(equippedPet.Value):Clone())
            end
        end
    end)
    wait(5)
    equipPet(game.ReplicatedStorage.Pets.Storm)

end)

1 comment

0

Now I get this ServerScriptService.MainScript:2: attempt to index nil with 'Character'

This discussion is preserved as it was. New answers, comments, and votes are closed.