--[[
{Madwork}

-[RateLimiter]---------------------------------------
	Prevents RemoteEvent spamming; Player references are automatically removed as they leave
	
	Members:
	
		RateLimiter.Default   [RateLimiter]
	
	Functions:
	
		RateLimiter.NewRateLimiter(rate) --> [RateLimiter]
			rate   [number] -- Events per second allowed; Excessive events are dropped
			
	Methods [RateLimiter]:
	
		RateLimiter:CheckRate(source) --> is_to_be_processed [bool] -- Whether event should be processed
			source   [any]
			
		RateLimiter:CleanSource(source) -- Forgets about the source - must be called for any object that
			has been passed to RateLimiter:CheckRate() after that object is no longer going to be used;
			Does not have to be called for Player instances!
			
		RateLimiter:Cleanup() -- Forgets all sources
		
		RateLimiter:Destroy() -- Make the RateLimiter module forget about this RateLimiter object
	
--]]


local SETTINGS = {
	DefaultRateLimiterRate = 120,
}
