When a player selects a job first, and then a another. The latter is the only one payed instead. I don’t know how to fix it to be completely honest.
local Job_Module = require(script.Parent)
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(P)
local Folder = Instance.new("Folder")
Folder.Name = "leaderstats"
Folder.Parent = P
local Money = Instance.new("NumberValue")
Money.Name = "Cash"
Money.Value = 0
Money.Parent = Folder
local Job = Instance.new("StringValue")
Job.Name = "Job"
Job.Value = "N/A"
Job.Parent = Folder
coroutine.resume(coroutine.create(function(d)
local LS = P:WaitForChild("leaderstats", 1)
local M : NumberValue = LS.Cash
local J : StringValue = LS.Job
while wait(5) do
Job_Module.GiveWage(P, J.Value)
end
end))
end)
Module Script
local Job = {
["Jobless"] = {
["Description"] = "An unemployed person",
["Wage"] = 0,
},
["Barber"] = {
["Description"] = "Hair cutting be like",
["Wage"] = 25,
},
["Cashier"] = {
["Description"] = "Imagine???",
["Wage"] = 10,
},
}
function Job.GiveWage(Player, name)
Player.leaderstats.Cash.Value += Job[name].Wage
end
return Job