I have a module script that handles the different gamemodes that will be present in my game and I was wondering how I could optimize it/write it more efficiently.
To explain why I have it like this, it is simply because it seemed like the shortest and neatest way of writing the code for this specific scenario. However, I am worried what problems and/or performance issues may arise from requiring a module every time a function is called.
I want to find a more efficient and safer way of doing what I’m showcasing below. I also included a screenshot of how the modules are setup in the explorer so you can better understand. Any help would be greatly appreciated!

--//Services local rep = game:GetService("ReplicatedStorage") --//References local serverData = rep.ServerData local roundData = serverData.Round --//Functions local Gamemodes = {} function Gamemodes.CheckPlayerRemoved(activePlayers, player) local gamemode = roundData.Gamemode.Value require(script[gamemode]).CheckPlayerRemoved(activePlayers, player, roundData.Roles) end function Gamemodes.GetRoles(activePlayers) local gamemode = roundData.Gamemode.Value require(script[gamemode]).GetRoles(activePlayers, roundData.Roles) end function Gamemodes.GiveWeapons() local gamemode = roundData.Gamemode.Value require(script[gamemode]).GiveWeapons(roundData.Roles) end -- keep in mind this module is not finished but I wanted to make this post before I have a bunch of functions doing this return Gamemodes