Back-End Scripting

Datastores • Logic • Systems • Serverside

What I Can Do

Advanced Example — Service Container Runtime

local Container = {} Container.__index = Container function Container.new() return setmetatable({services = {}}, Container) end function Container:register(name: string, provider: () -> any) self.services[name] = provider end function Container:resolve(name: string) return self.services[name]() end ------------------------------------------------------ local Scheduler = {} Scheduler.__index = Scheduler function Scheduler.new() return setmetatable({ tasks = {} }, Scheduler) end function Scheduler:add(fn) table.insert(self.tasks, fn) end function Scheduler:start() while true do for _,taskFn in self.tasks do taskFn() end task.wait() end end ------------------------------------------------------ local container = Container.new() container:register("PlayerDataService", function() local service = {} function service:Get(id) return {Coins = math.random(1,500), Level = math.random(1,50)} end return service end) local scheduler = Scheduler.new() scheduler:add(function() local DataService = container:resolve("PlayerDataService") local data = DataService:Get(1) end) task.spawn(function() scheduler:start() end)
← Back