Automatic GUI creating

Hello!

I want to make Upgrade system and when player is joining to the game, the GUI is automaticly creating. I have module script with every Upgrade info and create function but I gets error.

Module Script:

local UpgradeModule = {
	Upgrades = {
		Teleport = {
			Description = "Unlock teleport and teleport to other areas!",
			LayoutOrder = 1,
			Amount = 1,
			StartPrice = 2500
		},
		Speed = {
			Description = "Increase your speed to 34",
			LayoutOrder = 2,
			Amount = 3,
			StartPrice = 500
		},
		["Better Luck"] = {
			Description = "Increase your Luck by 5%",
			LayoutOrder = 3,
			Amount = 4,
			StartPrice = 750
		},
		["More Energy"] = {
			Description = "Increase your Luck by 10%",
			LayoutOrder = 4,
			Amount = 5,
			StartPrice = 400
		},
		["More Storage"] = {
			Description = "Increase your storage by 25",
			LayoutOrder = 5,
			Amount = 5,
			StartPrice = 75
		},
		["Extra Company"] = {
			Description = "Increase the maximum pet you can equip by 1",
			LayoutOrder = 6,
			Amount = 1,
			StartPrice = 4500
		}
	}
}

function UpgradeModule.CreateUpgrade(name)

	if UpgradeModule.Upgrades[name] then
		local UpgradeTemp = script.Template:Clone()
		UpgradeTemp.Name = name
		UpgradeTemp.UpgradeName.Text = name
		UpgradeTemp.Amount.Text = "0/".. UpgradeModule.Upgrades[name].Amount
		UpgradeTemp.Info.Text = UpgradeModule.Upgrades[name].Description
		UpgradeTemp.LayoutOrder = UpgradeModule.Upgrades[name].LayoutOrder
		UpgradeTemp.BuyButton.Text = UpgradeModule.Upgrades[name].StartPrice
		UpgradeTemp.Parent = game.Players.LocalPlayer.PlayerGui.Main.Upgrades.Container.Scroller
		print('created')
	else
		warn("upgrade didn't exist: ".. name)
	end
end

return UpgradeModule

Local script:

--[[Upgrades]]--
for i, v in pairs(UpgradeModule.Upgrades) do
	print(v)
	UpgradeModule.CreateUpgrade(v)
end

Error:
image

When passing the argument “name” it passes a table name not the ability name

1 Like