SteamTeam - Steam Group Membership Award System
Written by Buzzkill -- thehundredacrebloodbath.com
https://github.com/100acrebb/thab_tools(I apologize for the name. It's stupid, but it stuck)
SteamTeam is a framework for detecting player membership to a Steam group and awarding in-game bonuses as a result. It is currently a work in progress, and support for multiple groups and
multiple bonus types is forthcoming, as well as separating out and improving the configuration of groups/bonuses.
An example configuration is included in source, with notes on important values. This is probably the best approach to configuration documentation for now.
Membership is checked upon user initial spawn as well as every 10 mins.
NOTE: IT CURRENTLY ONLY SUPPORTS A SINGLE GROUP AND A SINGLE BONUS (Pointshop 1 points as well as a configurable callback -- see inline notes in source below).
-- One group for now
STEAMTEAM.Groups[1] = {}
-- URL of the target group
STEAMTEAM.Groups[1].URL = "http://steamcommunity.com/groups/100acrebb"
-- A configurable callback. In this example, I set a networked boolean if the user is a member of the above group.
-- I'm using this in other areas - for example, a custom icon in HatsChat
STEAMTEAM.Groups[1].OnIsMember = function(self, ply) ply:SetNWBool( "THABMember", true ) end
STEAMTEAM.Groups[1].Bonus = {}
-- One bonus for now
STEAMTEAM.Groups[1].Bonus[1] = {}
-- The bonus type (PSPOINTS only, for now)
STEAMTEAM.Groups[1].Bonus[1].Type = "PS1POINTS"
-- The number of points
STEAMTEAM.Groups[1].Bonus[1].Amount = 10000
https://github.com/100acrebb/thab_tools/blob/master/lua/autorun/server/steamteam.lua