Wiki

Clone wiki

ProxyKiller / Config

ProxyKiller configuration file


ProxyKiller in its entirety is configurable to a very reasonable extent

The configuration file is located under /csgo/cfg/sourcemod/ProxyKiller-Config.cfg in KeyValues format

See Config examples for more examples of configs.
Take the given example configuration as demonstration:

"ProxyKiller"
{
    "my-test"           "{steamid2}"
    "proxycheckio_key"  "xxxxxxxxxx"

    "proxycheck.io"
    {
        "method"        "GET"
        "url"           "http://proxycheck.io/v2/{ip}" // Contains: Player's IP
        "params"
        {
            "key"       "{{proxycheckio_key}}" // Contains: "xxxxxxxxxx"
            "vpn"       "1"
            "tag"       "ProxyKiller-Testing"
        }
        "headers"
        {
            "test"      "{{my-test}}" // Contains: "{steamid2}" - Player's SteamId2
        }
        "response"
        {
            "type"      "json"
            "compare"   "equal"
            "object"    "{ip}.proxy"
            "value"     "yes"
        }
    }
}

Runtime variables

  • Resolved every time the service is ran
  • Indicated by single { } brackets, e.g. "{ip}"

These variables are provided by ProxyKiller and cannot be modified.
See variables for all the available runtime variables provided by ProxyKiller.


Config variables

  • Resolved when the config is parsed
  • Can also contain runtime variables
  • Indicated by the double {{ }} brackets, e.g. "{{my-test}}"

These variables can be defined in the root scope of the configuration file.


Service

A single service can be configured and named anything.
The name of the service you use is displayed when logging.

A service needs the following:

  • "url" - The url of the service
  • "response" - Object defining what response is expected

The following are optional:

  • "method" - HTTP request method, defaults to "GET"
  • "params" - HTTP params of the service in KeyValues format
  • "headers" - HTTP headers of the service in KeyValues format

Parameters / Headers

Any request parameters and headers can be easily defined in KeyValues format

These params/headers can also use runtime- and config variables, e.g. "{ip}" "{{my-test}}"

  • Params are defined in the service's "params" block
  • Headers are defined in the service's "headers" block

Example of the KeyValue format:

"params"
{
    "my-param"          "value"
    "my-other-param"    "{ip}"
    "my-third-param"    "{{my-test}}"
}

"headers"
{
    "my-header"         "value"
    "my-other-header"   "{steamid2}"
    "my-third-header"   "{{my-test}}"
}


Response

The response object defines what kind of a response we're expecting as a positive result for Proxy/VPN
The "value" and "object" values support runtime- and config variables, e.g. "{ip}" "{{my-test}}"

The response object needs the following:

  • "value" - Value of the response considered as positive result for Proxy/VPN
  • "object" - Object to fetch the response value from (Only required on JSON)

The following are optional:

  • "type" - Type of the response

    • Valid types:
      • "json" - JSON (needs "object")
      • "plaintext" - Plaintext
      • "statuscode" - Status code
    • Defaults to "plaintext" if not defined
  • "compare" - Compare type of the response value

    • Valid compare types:
      • "equal" - Equality comparisation
      • "notequal" - Inequality comparisation
    • Defaults to "equal" if not defined

Example of the response object:

"response"
{
    "type"      "json"
    "compare"   "equal"
    "object"    "{ip}.proxy"
    "value"     "yes"
}

Updated