Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Attempted to index nil with 'Clone'? Problemo :/

Asked by 3 years ago

Alrighty, so i am currently making a Egg Hatching system and when i try to clone my pet to the Egg position to show the player what they got, It doesn't show the pet! I dont know if i need to include my module script or not so that will be at the bottom:

--Local Script--
local TweenService = game:GetService("TweenService")

local camera = game.Workspace.Camera
local studio = game.Workspace.Studio

game.ReplicatedStorage.HatchEgg.OnClientEvent:Connect(function(pet)
    camera.CameraType = Enum.CameraType.Scriptable
    camera.CFrame = studio.CamPart.CFrame

    wait(1.5)

    for i = 1, 50, 1 do
        studio.Egg.Size = studio.Egg.Size + Vector3.new(0.1,0.1,0.1)
        wait(0.01)
    end

    local explosion = Instance.new("Explosion")
    explosion.BlastRadius = 10
    explosion.BlastPressure = 0
    explosion.Position = studio.Egg.Position
    explosion.ExplosionType = Enum.ExplosionType.NoCraters
    explosion.DestroyJointRadiusPercent = 0

    explosion.Parent = studio.Egg

    studio.Egg.Transparency = 1

    local petClone = pet:Clone()

    if petClone then
                for i, v in pairs(petClone:GetChildren()) do
        if v:IsA("BasePart") then
            v.Anchored = true
        end
    end
    petClone:SetPrimaryPartCFrame( CFrame.new(studio.Egg.Position,studio.CamPart.Position) )
    petClone.Parent = studio

    local tweenInfo = TweenInfo.new(
        2.5,
        Enum.EasingStyle.Bounce,
        Enum.EasingDirection.Out,
        0,
        false,
        0
    )

    local tween = TweenService:Create(camera, tweenInfo,{CFrame = CFrame.new(petClone.PrimaryPart.Position + (petClone.PrimaryPart.CFrame.lookVector * 5) + Vector3.new(0,0.75,0)),petClone.PrimaryPart.Position})

    tween:Play()

    wait(3)

    camera.CameraType = Enum.CameraType.Custom
    studio.Egg.Transparency = 0
    studio.Egg.Size = Vector3.new(4.732, 6, 4.732)
    petClone:Destroy()

end
end)

Here is my Module

local petModule = {}

petModule.pets = {
    ["Epic"] = {game.ReplicatedStorage.pets.LavaBird};
    ["Rare"] = {game.ReplicatedStorage.pets.StereoPet};
    ["Uncommon"] = {game.ReplicatedStorage.pets.DodgeBall};
    ["Basic"] = {game.ReplicatedStorage.pets.BasicDoggo};

}

petModule.rarityTable = {

    ["Epic"] = 4;
    ["Rare"] = 16;
    ["Uncommon"] = 30;
    ["Common"] = 50;

}

petModule.chooseRandomPet = function()

    local randomNumber = math.random(1,100)

    local counter = 0

    for rarity, weight in pairs(petModule.rarityTable) do
        counter = counter + weight
        if randomNumber <= counter then

            local rarityTable = petModule.pets[rarity]
            local chosenPet = rarityTable[math.random(1, #rarityTable)]

            return chosenPet
        end
    end
end

return petModule
0
what did the server pass as the "pet" variable to the RemoteEvent, a direct link to the object (ReplicatedStorage.pets.SomePet), or a clone of it (SomePet:Clone()) ? kaytikookie 45 — 3y

Answer this question