I wrote a little wrapper API for ContectActionService to compress code, and now getting into it I'm not sure how I would test if a player is holding a button!

Here's my scripts

API

local API = {}
local ContextActionService = game:GetService("ContextActionService")

API.Bind = function(Name, Function, ...) -- Name, Function, Key
	return ContextActionService:BindAction(Name, Function, false, ...)
end

API.Unbind = function(Name)
	ContextActionService:UnbindAction(Name)
end

return API

Accessing Local Script

local CASAPI = require(script.ContextActionServiceAPI)

CASAPI.Bind("Name",Function,Enum.KeyCode.LShift)