-------------------- --| WaitForChild |-- -------------------- -- Waits for parent.child to exist, then returns it local function WaitForChild(parent, childName) assert(parent, "ERROR: WaitForChild: parent is nil") while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end return parent[childName] end ----------------- --| Variables |-- ----------------- local GamePassService = Game:GetService('GamePassService') local PlayersService = Game:GetService('Players') local InsertService = Game:GetService('InsertService') local LightingService = Game:GetService('Lighting') --TODO: Use new data store service once that exists local GamePassIdObject = WaitForChild(script, 'GamePassId') local ToolAssetsToLoad = WaitForChild(script, 'ToolAssetsToLoad') local AdminTools = LightingService:FindFirstChild('AdminTools') ----------------- --| Functions |-- ----------------- -- Makes copies of all the admin tools and puts them in target local function CloneAdminTools(target) for _, tool in pairs(AdminTools:GetChildren()) do local toolClone = tool:Clone() toolClone.Parent = target end end -- When a player with the game pass joins, give them the admin tools local function OnPlayerAdded(player) if GamePassService:PlayerHasPass(player, GamePassIdObject.Value) then local starterGear = WaitForChild(player, 'StarterGear') CloneAdminTools(starterGear) if player.Character then -- They've already loaded and won't get their StarterGear until next spawn local backpack = WaitForChild(player, 'Backpack') CloneAdminTools(backpack) end end end -------------------- --| Script Logic |-- -------------------- -- Create AdminTools if it doesn't exist if not AdminTools then AdminTools = Instance.new('Model') AdminTools.Name = 'AdminTools' -- Load all of the assets in ToolAssetsToLoad and put them in AdminTools for _, intObject in pairs(ToolAssetsToLoad:GetChildren()) do if intObject and intObject:IsA('IntValue') and intObject.Value then local assetModel = InsertService:LoadAsset(intObject.Value) if assetModel then local asset = assetModel:GetChildren()[1] if asset then asset.Parent = AdminTools end end end end AdminTools.Parent = LightingService end PlayersService.PlayerAdded:connect(OnPlayerAdded)
This script is great, but it only works for ROBLOX Gears. How do I make it so it works for Models?
Closed as Too Broad by Azarth and Articulating
This question has been closed because it is too broad and is generally unanswerable. Please ask a more specific question.
Why was this question closed?