[DEPRECATED] This has been replaced with RCON validation on teamwork.tf due to server providers not understanding what to do.
Source SDK Plugin that provides community server authentication and additional information.
This plugin allows anyone to identify your server as part of a larger community. This plugin will publish a unique beacon to the world, and with that beacon, anyone in the world can verify that your server is indeed part of a community provider. teamwork.tf will use this for the website, but the techologies are opensource and can be used by anyone.
This plugin can help websites that use TF2 gameserver information in one way or another to securely identify that a gameserver is part of a community with multiple servers. This will be for example useful to identify fake community servers, and helps websites provide additional details about these servers (e.g. the URL/Forum/Name/Image of the community provider/group).
If you want to verify a server, you can do so with this online tool, or look at the examples/
folder for some programming examples and useful local tools.
This sections is only relevant to people who run TF2 servers. In order for a server to emit a beacon, which others can verify, the server needs a plugin. The only function the plugin has, is that it allows you to set the tw_beacon
ConVar in your server config. It does not do anything else!
- Clone this repository on your server (
git clone https://github.com/teamworktf/teamwork_server_beacon.git
). - Alternatively you can download this repository and unzip it somewhere on your server.
- CD to
teamwork_server_beacon\dist\addons
and copy the contents of that folder. - Natigate to your TF2 server folder and CD into
tf\addons
. Paste the contents here. - Restart the TF2 server and verify the plugin has loaded (type in console:
tw_version
, this should return a version number). - Now you can start requesting beacons for your sever. Read the next chapter below.
By default, a beacon is valid for 1 year and 2 months. This means that you need to request a beacon for each server at least once a year to keep the beacons valid.
- Make sure you are a community provider on teamwork.tf. Click here to apply.
- Log in with your Steam account on the website, and copy the API key that is under "Manage Community Provider".
- Now CD into the location where you unpacked/cloned this repository.
- CD into
tools/
. - Execute
python request_beacon.py
(Windows/Linux, Python 3+ required, make sure you havepython-valve
installed,pip install python-valve
) or./request_beacon
(Linux). Click here to download python for Windows, this only takes a minute. - Set the API key, and choose
request-file
, to set the beacon permanently (RCON is gone after a server restart). - Enter IP/Port of your server, and give the location of your
server.cfg
once it asks for the .cfg file. - Make sure you restart the server.
- Learn here how to verify/check a signature.
- Learn how to automate the beacon refreshing here, or just make a reminder a year from now that you need to refresh the beacon (outdated beacons are invalid).
As said before, the beacon will only be valid for 1y2m, if the validity expires the beacon will be no longer valid. At this point the specification will ignore your beacon. Note that your signature is bound to your IP:PORT; if you run the gameserver on a non-static IP adress, you need to update the beacon everytime your IP changes.
OPTIONAL STEP, only recommended if you want to verify the code itself.
Windows
- Download and install Visual Studio 2013.
- Follow this guide to setup Source SDK 2013.
- CD to the root folder of the source sdk.
cd mp\src\utils\
git clone https://github.com/teamworktf/teamwork_server_beacon.git
- Now open Visual Studio and navigate to the
teamwork_server_beacon
folder located in<source-sdk>\mp\src\utils\
. - Open the solution file (.sln)
- To see the plugin contents, look at
teamwork_beacon.cpp
. - Right click and choose
Build Solution
to build the plugin. - The
teamwork_beacon.dll
will appear in thedebug
folder. - Copy this
teamwork_beacon.dll
into thedist\addons\teamwork_beacon\bin
folder, replacing the old one. - Now follow the chapter above on how to install the plugin.
Linux
- Download and install CodeLite.
- Follow this guide to setup Source SDK 2013.
- CD to the root folder of the source sdk.
cd mp\src\utils\
git clone https://github.com/teamworktf/teamwork_server_beacon.git
- Now open Code Lite and navigate to the
teamwork_server_beacon
folder located in<source-sdk>\mp\src\utils\
. - Open the project file (.project)
- To see the plugin contents, look at
teamwork_beacon.cpp
. - Build the solution to check if its working.
- The
teamwork_beacon.so
will appear in the../../game/bin/
folder. - Copy this
teamwork_beacon.so
into thedist\addons\teamwork_beacon\bin
folder, replacing the old one. - Now follow the chapter above on how to install the plugin.