Skip to content

Python library designed for querying game servers. It supports 24 different query protocols and has been downloaded over 34,000 times.

License

Notifications You must be signed in to change notification settings

opengsq/opengsq-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fd1ecc2 · Jan 22, 2025
Feb 13, 2024
Jan 22, 2024
Jan 19, 2025
Jan 19, 2025
Jan 19, 2025
May 25, 2021
Jun 23, 2023
May 25, 2021
Jan 19, 2025
Jan 26, 2024
Nov 15, 2023
May 30, 2021
Feb 6, 2024

Repository files navigation

OpenGSQ Python Library

Python Package GitHub license PyPI version Python versions Downloads

The OpenGSQ Python library provides a convenient way to query servers from applications written in the Python language.

Supported Protocols

The library supports a wide range of protocols. Here are some examples:

from opengsq.protocols import (
    ASE,
    Battlefield,
    Doom3,
    EOS,
    FiveM,
    GameSpy1,
    GameSpy2,
    GameSpy3,
    GameSpy4,
    Kaillera,
    KillingFloor,
    Minecraft,
    Palworld,
    Quake1,
    Quake2,
    Quake3,
    RakNet,
    Samp,
    Satisfactory,
    Scum,
    Source,
    TeamSpeak3,
    Unreal2,
    Vcmp,
    WON,
)

Requirements

  • Python 3.7 or higher

Installation

The recommended installation method is using pip:

pip install --upgrade opengsq

Usage

Here’s an example of how to query a server using the Source protocol:

import asyncio
from opengsq.protocols import Source

async def main():
    source = Source(host='45.147.5.5', port=27015)
    info = await source.get_info()
    print(info)

asyncio.run(main())

You can also use the Source Remote Console:

import asyncio
from opengsq.exceptions import AuthenticationException
from opengsq.rcon_protocols.source_rcon import SourceRcon

async def main():
    with SourceRcon("123.123.123.123", 27015) as source_rcon:
        try:
            await source_rcon.authenticate("serverRconPassword")
        except AuthenticationException:
            print('Failed to authenticate')

        response = await source_rcon.send_command("cvarlist")
        print(response)

asyncio.run(main())

Command-line interface

This library additionally provides an opengsq command-line utility which makes it easy to query game servers from your terminal. Run opengsq -h for usage.

# query server using source protocol
opengsq source --host 123.123.123.123 --port 27015 --function get_info

Tests and Results

You can find information about tests and results at https://python.opengsq.com/tests/protocols

Stargazers over time

Stargazers over time