[FIXED] Egg Hatching System Not Finding Module

In-Game Error:

When I’m Inside Of Studio It Works, But When I’m In The Published Game I Get Errors

When E Activated Script:

local cost = 500

local petModule = require(game.ServerScriptService.Modules:WaitForChild("PetModule"))
	
script.Parent.ProximityPrompt.Triggered:Connect(function(player)

	if player.leaderstats.Coins.Value >= cost then
		
		player.leaderstats.Coins.Value = player.leaderstats.Coins.Value - cost
		
		print(player.Name.."Purchased This Egg")
		
		local pet = petModule.chooseRandomPet2ndEgg()
		
		print(pet.Name.." selected")
		
		game.ReplicatedStorage.HatchEgg:FireClient(player,pet)
		
		local petVal = Instance.new("StringValue")
		petVal.Name = pet.Name
		petVal.Parent = player.PetInventory
		
	end
	
end)

Module:

local petModule = {}

petModule.petsBasic = {

	["Legendary"] = {
		game.ReplicatedStorage.Pets.Bee;
	};

	["Rare"] = {
		game.ReplicatedStorage.Pets.Bear;
	};

	["Uncommon"] = {
		game.ReplicatedStorage.Pets["Lava Lord"];
	};

	["Common"] = {
		game.ReplicatedStorage.Pets.Monkey;
		game.ReplicatedStorage.Pets.TV;
	};

}

petModule.pets2ndEgg = {

	["Legendary"] = {
		game.ReplicatedStorage.Pets.Bee;
	};

	["Rare"] = {
		game.ReplicatedStorage.Pets.Bear;
	};

	["Uncommon"] = {
		game.ReplicatedStorage.Pets["Lava Lord"];
	};

	["Common"] = {
		game.ReplicatedStorage.Pets.Monkey;
		game.ReplicatedStorage.Pets.TV;
	};

}

-- 100 total weight

petModule.raritiesBasic = {

	["Legendary"] = 5;

	["Rare"] = 15;

	["Uncommon"] = 30;

	["Common"] = 50;

}

petModule.rarities2ndEgg = {

	["Legendary"] = 5;

	["Rare"] = 15;

	["Uncommon"] = 30;

	["Common"] = 50;

}

petModule.chooseRandomPetBasicEgg = function()

	local randomNumber = math.random(1,100)

	local counter = 0

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

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

			return chosenPet

		end
	end

end

petModule.chooseRandomPet2ndEgg = function()

	local randomNumber = math.random(1,100)

	local counter = 0

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

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

			return chosenPet

		end
	end

end

return petModule

GuiClient:

local TweenService = game:GetService("TweenService")

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

local template = script:WaitForChild("Template")
local scrollingFrame = script.Parent:WaitForChild("ScrollingFrame")

local buttonConnections = {}

local function setTemplateEquipped(template)
	
	for i, v in pairs(scrollingFrame:GetChildren()) do
		if v:FindFirstChild("Equipped") then
			v.Equipped.Text = "UNEQUIPPED"
			v.Equipped.TextColor3 = Color3.fromRGB(255,0,0)
		end
	end
	
	template.Equipped.Text = "EQUIPPED"
	template.Equipped.TextColor3 = Color3.fromRGB(0,255,0)
end

local function addToFrame(pet)
	
	local newTemplate = template:Clone()
	newTemplate.Name = pet.Name
	newTemplate.PetName.Text = pet.Name
	newTemplate.Parent = scrollingFrame
	
	local newPet = pet:Clone()
	newPet.Parent = newTemplate.ViewportFrame
	
	local camera = Instance.new("Camera")
	camera.CFrame = CFrame.new(newPet.PrimaryPart.Position + (newPet.PrimaryPart.CFrame.lookVector * 3),newPet.PrimaryPart.Position)
	camera.Parent = newTemplate.ViewportFrame
	
	newTemplate.ViewportFrame.CurrentCamera = camera
	
	buttonConnections[#buttonConnections + 1] = newTemplate.MouseButton1Click:Connect(function()
		if newTemplate.Equipped.Text == "EQUIPPED" then
			-- We know that as it is already equipped they want to unequip it
			game.ReplicatedStorage.UnequipPet:FireServer()
			newTemplate.Equipped.Text = "UNEQUIPPED"
			newTemplate.Equipped.TextColor3 = Color3.fromRGB(255,0,0)
		else
			-- We know that it is already UNEQUIPPEd and they want to equip it
			game.ReplicatedStorage.EquipPet:FireServer(pet.Name)
			setTemplateEquipped(newTemplate)
		end
	end)
	
end

game.ReplicatedStorage.SendData.OnClientEvent:Connect(function(petNames)
	print("picked up on the client")
	for i, petName in pairs(petNames) do
		if game.ReplicatedStorage.Pets:FindFirstChild(petName) then
			addToFrame(game.ReplicatedStorage.Pets:FindFirstChild(petName))
		end
	end
end)

game.ReplicatedStorage.SetEquippedPet.OnClientEvent:Connect(function(petName)
	if scrollingFrame:FindFirstChild(petName) then -- Double checking that the pet template has been crated
		setTemplateEquipped(scrollingFrame[petName])
	end
end)

game.ReplicatedStorage.HatchEgg.OnClientEvent:Connect(function(pet)
	
	addToFrame(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
	
	-- By now the egg is huge
	
	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()
	
	for i,v in pairs(petClone:GetChildren()) do
		if v:IsA("BasePart") then
			v.Anchored = true
		end
	end
	
	for i,v in pairs(studio.Confetti:GetChildren()) do
		if v:IsA("ParticleEmitter") then
			v.Enabled = true
		end
	end
	
	petClone:SetPrimaryPartCFrame(CFrame.new(studio.Egg.Position, studio.CamPart.Position))
	petClone.Parent = studio
	
	local tweenInfo = TweenInfo.new(
		2,
		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(5)
	
	for i,v in pairs(studio.Confetti:GetChildren()) do
		if v:IsA("ParticleEmitter") then
			v.Enabled = false
		end
	end
	
	camera.CameraType = Enum.CameraType.Custom
	studio.Egg.Transparency = 0
	studio.Egg.Size = Vector3.new(4.732, 6, 4.732)
	petClone:Destroy()
	
end)

Roblox Was Going Down, Waiting A Few Hours It Works