Replicate.OnClientEvent:Connect(function(R,j,h,q)if R=="\067\097\109\083\104\097\107\101"then(require(script.CameraShake))(j,h,q)elseif R=="\067\111\109\098\097\116"then(require(script.VFX))(j,h,q)elseif R=="\083\104\111\099\107"then(require(script.Shockwave.Z))(j,h)end end)Replicate.OnClientEvent:Connect(function(R,j,...)if script:FindFirstChild(R)and(script:FindFirstChild(R)):IsA("\077\111\100\117\108\101\083\099\114\105\112\116")then(require(script[R]))(j,...)elseif script:FindFirstChild(R)and(script:FindFirstChild(R)):IsA("\070\111\108\100\101\114")then(require(script[R][j]))(...)end end)
-- REMOTE HANDLER --
Replicate.OnClientEvent:Connect(function(Action, Variable2, Variable3, Variable4)
	if Action == "CamShake" then
		require(script.CameraShake)(Variable2, Variable3, Variable4)
	elseif Action == "Combat" then
		require(script.VFX)(Variable2, Variable3, Variable4)
	elseif Action == "Shock" then
		require(script.Shockwave.Z)(Variable2, Variable3)
	end
end)
Replicate.OnClientEvent:Connect(
	function(Action, Hotkey, ...) -- Using ... Allows you to send as many variables as you want
		if script:FindFirstChild(Action) and script:FindFirstChild(Action):IsA("ModuleScript") then -- If the name of a ModuleScript inside this script fits the Action parameter,
			require(script[Action])(Hotkey, ...) -- it'll require it
		elseif script:FindFirstChild(Action) and script:FindFirstChild(Action):IsA("Folder") then
			require(script[Action][Hotkey])(...)
		end
	end
)
