View Single Post
Author Message
Powerlord
AlliedModders Donor
Join Date: Jun 2008
Location: Seduce Me!
Old 02-05-2014 , 18:56   Steam GameServer Accounts and new TF2 QuickPlay Rules
Reply With Quote #1

Updating this post to consolidate useful information:

Steam GameServer Accounts
Updated 2015-12-10

Game Server Login Tokens are mandatory for CSGO servers.

All Games

You can register a Game Server on the Steam site and get a Game Server Login Token (or GSLT) for your server. You must have a phone number registered on your Steam account to register a game server.

Currently, the only "officially" supported games are Team Fortress 2 (440) and Counter-Strike: Global Offensive (730), but other games also seem to work.

You need a separate key for each server you run.

Each Steam account can register up to 1000 servers.

TF2 and CS:GO

GSLTs can be registered on your server using the following command either from autoexec.cfg or from an +exec on the server startup line (useful if you run multiple servers on the same physical machine).

Code:
sv_setsteamaccount <login_token>
Note: server.cfg executes too late to do this.

You can also put this directly on the command-line by prefixing it with a +, but other users on the same machine will be able to see your login_token.

Game Server accounts are now mandatory in CS:GO as of the November 9, 2015 update. There has been no indication that they will be mandatory in TF2, but do not be surprised if this comes up at a later date.

Despite these being registered to your Steam account, CS:GO servers still need a Steam WebAPI key to host Workshop maps.

Likewise, TF2 servers still need a QuickPlay ID to participate in the QuickPlay system.

Other games

You will need SourceMod, the SteamWorks extension, and the Set Game Server Account plugin.

Make sure to download the package version, extract the files, then open addons/sourcemod/configs/gameserveraccount_token.txt and put your login_token into it. Then, upload the files to your server.

Reported Bugs

Server loses connection to registered Steam account

If you use the same login_token on multiple servers, any time one of them comes online, it will knock all of the others off. You must use a different login_token for each server.

Server is disconnected from Steam3

According to the HLDS lists, some tokens will cause a server to be disconnected from Steam3 and be marked insecure when used. If you find this happening, generate a new login_token and use that. Doing so will quite often fix the original token as well, which you can then use on a different server.

Note: This is from the original version of the article and may have been fixed.

TF2 QuickPlay Rules

This is something going into Beta in the next TF2 update... tentatively tomorrow.

Basically, servers will now be registered to accounts and users using the Steam Beta client will have favo(u)rites added by their gameserver ID.

I'm still reading up on it and will update this post as I go.


Oh, and new Quickplay that allows non-vanilla rules (nocrits, increased_maxplayers, norespawntimes) but players have to choose which one(s) they want.

Additionally, none of the following are allowed on QuickPlay servers:
  • Opening a MOTD window (hidden or visible) that is not requested
  • Forcing clients to view the MOTD until a timer has expired
  • Giving or selling gameplay advantage to players
  • Kicking players to make room for reserved slots
  • Modifying stock maps, models, or materials
  • Running non-default game modes: prop hunt, dodgeball, etc
  • Enforcing class limits
  • Browser popups
  • Granting or modifying economy items, or taking actions that devalue players' items, or interfering with the TF2 economy

Quote:
Originally Posted by Fletcher Dunn
There are some changes coming that TF2 server operators should know about.

CHANGES TO QUICKPLAY
-------------------------------

The next TF2 update will make two changes to quickplay:

* "Show servers" button. This runs the ordinary quickplay search, but instead of joining the server with the highest score, it presents the user with an ordered list of about 20 servers and lets them pick. This gives players much of the convenience of quickplay by finding servers with a good ping and players on them, but also an easy way to express a preference over the map, server community, etc.
* We've added an advanced options page that allows players to opt into the most commonly-requested non-vanilla rules changes: nocrits, maxplayers, and instant respawn.

There are no more scoring penalties for maxplayers or rule changes; your server either matches their search criteria or it doesn't.

At this time, we are keeping the default quickplay option to Valve servers. However, note that if a player wants to find a server with any of the supported modifications, then they must land on a community server, since Valve servers do not run with these settings.

We've updated the quickplay policy to more clearly specify what sorts of server modifications are allowed in quickplay:
https://support.steampowered.com/kb_...2825-AFGJ-3513

STEAM GAMESERVER ACCOUNTS
-----------------------------------------

Gameserver accounts are now a Steam feature. The feature is currently in beta.

Using a steam gameserver account provides one important advantage right now: client favorite lists are keyed by the Steam account if present. This means that you can move your server to another IP address, and clients who have your server in their favorites or history will follow you to your new location.

CREATING AN ACCOUNT:

Creating an account is currently only possible via WebAPI. (Remember, this feature is currently in beta. We'll add a nicer interface for this soon.) Make a HTTPS POST request to the following URL:
https://api.steampowered.com/IGameSe...Account/v0001/

The POST arguments should be:
appid=440 (for Team Fortress)
key=<your WebAPIKey>

<your WebAPIKey> is the WebAPI key associated with the user account that will own the server accounts. See http://steamcommunity.com/dev for how to get one of these. (WARNING: Make sure and keep this key secret. This key is an authentication token in some respects and makes it possible to do certain actions on your behalf. Don't feed the key into anybody's nice convenient web page that automates this. With your WebAPI key they could impersonate you for some actions. If you don't want to go through the pain of making a WebAPI call, just wait until we have a nicer interface implemented.)

The output of the WebAPI will be the (permanent) SteamID of your gameserver, and a login token. The login token is a random string of text that allows you to actually login to your account.

You can view a list of the servers owned by a user account by making a HTTPS GET call to:
https://api.steampowered.com/IGameServersService/GetAccountList/v0001/?key=<yourkey<https://api.steampowered.com/IGameServersService/GetAccountList/v0001/?key=%3cyourkey>>

LOGGING IN TO YOUR ACCOUNT (TF only for now):

Once you have a gameserver login token, you can specify your login credentials on a Source engine server by executing this console command sometime before it loads the first map:

sv_setsteamaccount <login token>

The server output should make it clear when you are using a Steam gameserver account and when you are logging in anonymously. (The ordinary gameserver login that has always been used.)

Remember, for now you will need to login to both your Steam gameserver account and also your TF account. The two accounts are not related. The TF account is the one that determines quickplay eligibility, and the Steam one does favorites migration. Eventually we will remove the TF accounts and only use Steam gameserver accounts.

HOW FAVORITES MIGRATION WORKS:

In the next few days we will release an updated Steam Client beta that knows how to migrate favorites. On the client, each favorite has an IP:port and a gameserver account. The account might be empty --- that will of course be the case for all previously existing favorites. Periodically, a client will try to sync up the favorites list IP:port addresses and accounts. If there is an IP:port without an associated account, it will ask the master server for information about that address. If a server is running on that address and logged into an account, the client will record the account. Once the client has an account associated with the favorite, the account becomes the primary key and will not change. Instead, we will periodically try to refresh the address from the account. (Again, this is done by querying the master server, and it depends on your server bring logged into the account and running on the address.) The client always caches the last known IP:port of a favorite, even though the account ID is the main "key". That way, if Steam is down, or the gameserver is down, it will used the cached IP:port. All of the above applies to history as well as favorites.

In the future, when a client adds a favorite or history item, the account will be recorded immediately.

If you know you have many clients that have your server in their favorites or history, then you should not move your server yet. You need to give clients time to logon with new Steam client binaries and get their favorite entry linked up with your account. We'll let you know when you can try out migrating favorites, as well as when the feature is active in the public client and all users have it.

QUESTIONS?

Since Steam gameservers are a Steam feature, all of the above will apply to all Steam games. (Provided that the game exposes a method for the gameserver to log in to an account.) Eventually, the TF2 gameserver accounts will be going away and replaced with these accounts. For now, they are separate.

Any further questions about the quickplay changes or gameserver accounts? Please direct them to this list so that all answers will be public.
__________________
Not currently working on SourceMod plugin development.

Last edited by Powerlord; 12-10-2015 at 12:48. Reason: Safety save thanks to accidental middle-click on browser tab losing everything when nearly done
Powerlord is offline