Skip to content

Commit 5a3a4e6

Browse files
2 files | broadcast.html, icheatreportingservice.html
1 parent b3b99e7 commit 5a3a4e6

File tree

2 files changed

+9
-182
lines changed

2 files changed

+9
-182
lines changed

docs/store/broadcast.html

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,6 @@ <h2 class="bb_subsection"><a name="3"></a>Steam Broadcast Features</h2>
7171
<ul>
7272
<li>Automatically shows the 'Live' tag when applicable throughout the Steam store</li>
7373
</ul>
74-
<ul>
75-
<li>
76-
Popular streams are surfaced on the Steam home page which generates traffic for the streams
77-
</li>
78-
</ul>
7974
<ul>
8075
<li>Steam Chat is integrated into the streaming experience</li>
8176
</ul>

docs/webapi/icheatreportingservice.html

Lines changed: 9 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
<h1>ICheatReportingService Interface</h1>
2-
This service allows your game to report cheats and cheaters to the
3-
<a href="/doc/features/anticheat#VAC">VAC</a> system and provides the toolset behind the
4-
<a href="/doc/features/anticheat#GameBans">Game Bans</a> system. It enables two independent
5-
workflows for detecting and managing cheating in your game:<br />
2+
This service allows you to report cheating incidents and ban players from your game using the
3+
<a href="/doc/features/anticheat#GameBans">Game Bans</a> system. It enables two similar workflows
4+
for detecting and managing cheating in your game:<br />
65
<ul>
76
<li>
8-
Gather community reports of cheating and request bans/suspensions based upon this
7+
Gather community reports of cheating and issue bans/suspensions based upon this
98
information.<br />
109
</li>
1110
<li>
12-
Submit detailed information about known cheat software to the VAC system. Once processed,
13-
this information will be used to automatically detect and ban players using known cheats.
11+
Immediately ban a player with a 2 step process of reporting the cheating and then issuing a
12+
ban.
1413
</li>
1514
</ul>
1615
<br />
17-
To use this interface you must first opt in to VAC support. This can be done from the
16+
To use this interface you must first opt in to anti-cheat support. When enabling anti-cheat support
17+
you may choose a 3rd party to grant access to the ICheatReportingService interface for your
18+
application. This can be done from the
1819
<a href="/apps/vac/" target="_blank" rel="noreferrer">Anti-Cheat Configuration</a> page in the App
1920
Admin panel.<br />
2021
<br />
@@ -332,175 +333,6 @@ <h2 class="bb_section"><a name="GetCheatingReports"></a>GetCheatingReports</h2>
332333
<br />
333334
<strong>NOTE:</strong> This call requires a publisher API key to use this method. As such this API
334335
<strong>MUST</strong> be called from a secure server, and can never be used directly by clients!
335-
<h2 class="bb_section"><a name="ReportCheatData"></a>ReportCheatData</h2>
336-
<div class="bb_code http">
337-
POST https://api.steampowered.com/ICheatReportingService/ReportCheatData/v1/
338-
</div>
339-
<table>
340-
<tbody>
341-
<tr>
342-
<th>Name</th>
343-
<th>Type</th>
344-
<th>Required</th>
345-
<th>Description</th>
346-
</tr>
347-
<tr>
348-
<td><strong>key</strong></td>
349-
<td>string</td>
350-
<td></td>
351-
<td>Steamworks Web API user authentication key.</td>
352-
</tr>
353-
<tr>
354-
<td><strong>steamid</strong></td>
355-
<td>uint64</td>
356-
<td></td>
357-
<td>Steam ID of the user running and reporting the cheat.</td>
358-
</tr>
359-
<tr>
360-
<td><strong>appid</strong></td>
361-
<td>uint32</td>
362-
<td></td>
363-
<td>The App ID of the game.</td>
364-
</tr>
365-
<tr>
366-
<td><strong>pathandfilename</strong></td>
367-
<td>string</td>
368-
<td></td>
369-
<td>Path and file name of the cheat executable.</td>
370-
</tr>
371-
<tr>
372-
<td><strong>webcheaturl</strong></td>
373-
<td>string</td>
374-
<td></td>
375-
<td>Web url where the cheat was found and downloaded.</td>
376-
</tr>
377-
<tr>
378-
<td><strong>time_now</strong></td>
379-
<td>uint64</td>
380-
<td></td>
381-
<td>Local system time now. 64 bit windows system time.</td>
382-
</tr>
383-
<tr>
384-
<td><strong>time_started</strong></td>
385-
<td>uint64</td>
386-
<td></td>
387-
<td>
388-
Local system time when cheat process started. ( 0 if not yet run ) 64 bit windows
389-
system time.
390-
</td>
391-
</tr>
392-
<tr>
393-
<td><strong>time_stopped</strong></td>
394-
<td>uint64</td>
395-
<td></td>
396-
<td>
397-
Local system time when cheat process stopped. ( 0 if still running ) 64 bit windows
398-
system time.
399-
</td>
400-
</tr>
401-
<tr>
402-
<td><strong>cheatname</strong></td>
403-
<td>string</td>
404-
<td></td>
405-
<td>Descriptive name for the cheat.</td>
406-
</tr>
407-
<tr>
408-
<td><strong>game_process_id</strong></td>
409-
<td>uint32</td>
410-
<td></td>
411-
<td>Process ID of the running game.</td>
412-
</tr>
413-
<tr>
414-
<td><strong>cheat_process_id</strong></td>
415-
<td>uint32</td>
416-
<td></td>
417-
<td>Process ID of the cheat process that ran.</td>
418-
</tr>
419-
<tr>
420-
<td><strong>cheat_param_1</strong></td>
421-
<td>uint64</td>
422-
<td></td>
423-
<td>Extra cheat data.</td>
424-
</tr>
425-
<tr>
426-
<td><strong>cheat_param_2</strong></td>
427-
<td>uint64</td>
428-
<td></td>
429-
<td>Extra cheat data.</td>
430-
</tr>
431-
</tbody>
432-
</table>
433-
<br />
434-
Reports cheat data. Only use on test account that is running the game but not in a multiplayer
435-
session.<br />
436-
<br />
437-
This is for reporting specific cheats to the VAC system. This is done by running the cheat and the
438-
game and then calling this webapi.
439-
<div class="bb_callout bb_red bb_fixed">
440-
<div>
441-
<strong>NOTE:</strong> Because of this you should only use a test account on a disposable
442-
machine outside your network. You must also use a standard Web API key obtained from
443-
<a href="https://steamcommunity.com/developer" target="_blank" rel="noreferrer"
444-
>https://steamcommunity.com/developer</a
445-
>
446-
for that test account, not a partner Web API key. After calling this, the system should be
447-
left idle for at least a half an hour so that VAC may fully scan the system. The test
448-
account will be flagged and not allowed to authenticate into multiplayer games in the
449-
future, so be sure to always use a test account that is for cheat reporting only.
450-
</div>
451-
</div>
452-
<br />
453-
If the call does not report success, then the report has been ignored.<br />
454-
<br />
455-
<strong>Calling Example:</strong><br />
456-
<div class="bb_code">
457-
# requires python 2.7 import sys, os, time if sys.version_info &gt;= ( 2, 7 ): # import argparse
458-
print "Found python 2.7 or greater" else: print "Must use python 2.7 or greater" exit() import
459-
urllib import urllib2 import json g_mapUniverseToWebapiServer = { 'public' : { 'host' :
460-
'api.steampowered.com', 'port_http' : 80, 'port_https' : 443, }, } g_bReadied = False # get
461-
ready to issue webapi requests def readyAPIRequest( universe ): global g_bReadied # if proxy is
462-
needed enable here # WARNING: it is not recommended to use this from inside your LAN # because
463-
that would mean you are running cheats inside your LAN proxyneeded = 0 if proxyneeded == 1:
464-
urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler(
465-
{"http":"http://proxy.valvesoftware.com:80"} ) ) ) else: urllib2.install_opener(
466-
urllib2.build_opener( urllib2.ProxyHandler({}) ) ) g_bReadied = True # perform a webapi request
467-
- currently assumes response is JSON # # you must pass # universe - string # interface - which
468-
interface are you calling # request - the name of the method # # optional parameters # method -
469-
GET or PUT # protocol - http or https # version - defaults to 0001 # timeout - defaults to 120 #
470-
# other keyword arguments supplied are used as parameters to the webapi; e.g. to use # a webapi
471-
key, 'key=0123456' def issueWebAPIRequest( universe=None, interface=None, request=None,
472-
method='GET', protocol='http', version='0001', timeout=120, **kwargs ): if not universe or not
473-
request or not interface: raise NameError( 'Need universe, interface, and request' ) if not
474-
g_bReadied: raise RuntimeError( 'call readyAPIRequest first to ensure the proxy is set' ) entry
475-
= g_mapUniverseToWebapiServer[ universe ] server = entry[ 'host' ] port = entry[ 'port_' +
476-
protocol ] url = '%s://%s:%s/%s/%s/v%s/' % ( protocol, server, port, interface, request, version
477-
) if method == 'GET': sep = '?' for kw in kwargs: url = url + sep + kw + '=' + str( kwargs[ kw ]
478-
) sep = '&amp;' rf = urllib2.urlopen( url, timeout=timeout ) else: rf = urllib2.urlopen( url,
479-
urllib.urlencode( kwargs ), timeout=timeout ) return json.load( rf ) def sendcheatreport():
480-
readyAPIRequest( 'public' ) print "Current time is ",int(time.time()) # fill in defaults #
481-
steamid should look like 7XXXXXXXXXXXXXXX steamid = 0 # key should be a hex string key = '' #
482-
fill in your appid gameappid = 0 # init vars cheatprocid = 0 timecheatran = 0 cheatterminated =
483-
0 timecheatstopped = 0 if steamid == 0: steamid = raw_input( 'Input steam ID: ' ) if not key:
484-
key = raw_input( 'Input web api key: ' ) if gameappid == 0: gameappid = raw_input( 'Input game
485-
appid: ' ) cheatnamestring = raw_input( 'Input cheat descriptive name: ' ) cheatpathstring =
486-
raw_input( 'Input full path to cheat file: ' ) webcheaturlstring = raw_input( 'Input full URL to
487-
cheat download page (optional): ' ) cheatfiletype = int(raw_input( 'Input 1 if .exe or input 2
488-
if other file type: ' )) if cheatfiletype == 1: cheatprocid = raw_input( 'Input cheat process id
489-
(Input 0 if stopped or unsure): ' ) timecheatran = int(time.time()) cheatterminated =
490-
int(raw_input( 'Input 1 if cheat is still running or input 0 if it has stopped: ' ))
491-
timecheatstopped = int(time.time()) if cheatterminated == 1: timecheatstopped = 0 gameprocid =
492-
raw_input( 'Input game process id: ' ) print "sending webapi data now " print "steamid: ",
493-
steamid print "key: ", key print "gameappid: ", gameappid print "cheatnamestring: ",
494-
cheatnamestring print "cheatpathstring: ", cheatpathstring print "webcheaturlstring: ",
495-
webcheaturlstring print "cheatprocid: ", cheatprocid print "timecheatran: ", timecheatran print
496-
"timecheatstopped: ", timecheatstopped print "gameprocid: ", gameprocid # ready to go! results =
497-
issueWebAPIRequest( universe='public', interface='icheatreportingservice',
498-
request='reportcheatdata', key=key, protocol='https', method='POST', cheatname=cheatnamestring,
499-
appid=gameappid, game_process_id=gameprocid, cheat_process_id=cheatprocid,
500-
pathandfilename=cheatpathstring, webcheaturl=webcheaturlstring, time_now=int(time.time()),
501-
time_started=timecheatran, time_stopped=timecheatstopped, steamid=steamid ) print "webapi
502-
results:", results # clean up def main(): sendcheatreport() if __name__ == '__main__': main()
503-
</div>
504336
<h2 class="bb_section"><a name="RequestVacStatusForUser"></a>RequestVacStatusForUser</h2>
505337
<div class="bb_code http">
506338
POST https://partner.steam-api.com/ICheatReportingService/RequestVacStatusForUser/v1/

0 commit comments

Comments
 (0)