Rust Wiki

Receiving player reports

Receiving Reports

When a player makes a report using the F7 dialog that report will be sent to Facepunch, there are also tools to receive these reports for your own custom servers. This should help you quickly respond to issues players encounter when playing on your server.

Printing to console

The simplest way to get notified of player reports is via the server.printReportsToConsole convar. This will print into the server console log every time a player makes a report along with a minimal summary of the report (for performance reasons).

Sending reports to an external endpoint

To receive the full report, it's also possible to send a report to an external service using the server.reportsServerEndpoint convar. Once a HTTP address is assigned any reports made by a player will be sent in their entirety to the given endpoint.

It's recommended to also assign a private password to the server.reportsServerEndpointKey convar. This will be included in any reports and can be used to verify the report is legitimate.

The data is sent as a POST - Dictionary<string,string> and the fields are:

Key Value
data The JSON formatted report
userid The Steam ID of the player making the report. This is also included in the data field
key If a key is assigned to server.reportsServerEndpointKey it will be included here

An example of the data:

{ "Subject":"Subject goes here", "Message":"Message goes here", "Type":0, "TargetReportType":null, "TargetId":null, "TargetName":null, "AppInfo":{ "Version":3, "Build":{ "Date":0, "Scm":{ "Type":null, "ChangeId":null, "Branch":null, "Repo":null, "Comment":null, "Author":null, "Date":null }, "Build":{ "Id":null, "Number":null, "Tag":null, "Url":null, "Name":null, "Node":null }, "Valid":false }, "Name":"COMPUTERNAME", "Os":"Windows 10 (10.0.0) 64bit", "Cpu":"Intel(R) Core(TM) i9-9920X CPU @ 3.50GHz", "CpuCount":24, "Mem":11049, "Gpu":"NVIDIA GeForce RTX 2080 Ti", "GpuMem":11049, "Arch":"x64", "UserId":"123456789123456", "UserName":"USERNAME", "ServerAddress":"127.0.0.1:28015", "ServerName":"My Untitled Rust Server", "LevelName":"Playground", "LevelPos":"(2.6, 8.5, 44.8)", "LevelRot":"(1.9, 214.7, 0.0)", "MinutesPlayed":0, "Image":"" } }

An example accessing the data in PHP:

$data = json_decode($_POST['data'], true); echo 'Reporter: ' . $_POST['userid'] echo 'Subject: ' . $data['Subject'] echo 'Msg: '. $data['Message']

The Type field contains the report type (General=0, Bug=1, Cheat=2, Abuse=3, Idea=4). The TargetId and TargetName will be populated with the targeted player in the case of a player report. The Image field will include a Base64 encoded jpg of the screenshot captured by the report dialog when reporting offensive content.

Notes

Player reports will print to console regardless of your variable, but do not seem to work with the endpoint. The endpoint only receives other reports ie; general, bug, ideas.