local players = {} local activePlayers = {} function SetCustomSpell(player, customSpellIndex, charges) local handle = player:GetHandleIndex() -- set fake hud -- player:SetFakeSendProp("m_iSelectedSpellIndex", 1) -- player:SetFakeSendProp("m_iSpellCharges", 1) player["$SetProp$m_iSelectedSpellIndex"](0) player["$SetProp$m_iSpellCharges"](charges) players[handle] = { Index = customSpellIndex, Charges = charges } end function OnPlayerConnected(player) -- on item equip player:AddCallback(10, function(_, weapon) local handle = player:GetHandleIndex() print(weapon.m_iClassname) if weapon.m_iClassname ~= "TF_WEAPON_SPELLBOOK" then return end activePlayers[handle] = true SetCustomSpell(player, 1, 1) end) -- on death player:AddCallback(9, function() local handle = player:GetHandleIndex() activePlayers[handle] = nil end) -- on spawn player:AddCallback(1, function() local handle = player:GetHandleIndex() activePlayers[handle] = nil end) -- on input player:AddCallback(5, function(_, input) print(input) end) end function OnPlayerDisconnected(player) local handle = player:GetHandleIndex() players[handle] = nil activePlayers[handle] = nil end