API = {} Data = {} function Create(Type,Table) local P = Instance.new(Type) for i,v in pairs(Table) do P[i] = v end return P end API.SetupPart = function(Part) local Event = Create("RemoteEvent",{Name = "Click",Parent = Part}) Data[Part] = {Event; LastClick = nil; } Event.OnServerEvent:connect(function(Player) Data[Part].LastClick = Player; end) end API.FireOnClick = function(Part,TextButton,Function) if(Data[Part] == nil)then API.SetupPart(Part) end if(TextButton.ClassName ~= "TextButton") then return end TextButton.MouseButton1Click:connect(function() while true do wait(0) if(Data[Part].LastClick ~= nil)then break end end Function(Data[Part].LastClick) Data[Part].LastClick = nil end) end return API