Skip to content

ObjC implementation of the Source Engine Query Protocol for querying game servers and the Valve Master Server.

License

Notifications You must be signed in to change notification settings

hugmouse/objc-sourcequery

Repository files navigation

Source & GoldSRC & Valve Master Server Query Library

An Objective-C implementation of the Source Engine Query Protocol for querying game servers and the Valve Master Server.

Based on the Valve Developer Wiki documentation.

Supported Games

Only Valve games were tested.

  • Source Engine Games: Half-Life 2, Team Fortress 2, Counter-Strike: Source, Garry's Mod, Left 4 Dead 2, etc.
  • GoldSource Engine Games: Half-Life 1, Counter-Strike 1.6, Team Fortress Classic, Day of Defeat, etc.

Installation

Copy all .h and .m files to your project. Or use git submodules.

Examples

In examples/ you can find a few code examples:

  • 01_simple_master_server_query.m - Basic master server usage
  • 02_master_server_filtering.m - Some filtering techniques
  • 03_ricochet_server_details.m - Server info + player lists
cd examples
make run1  # Runs "01_simple_master_server_query"
make run2  # Runs "02_master_server_filtering"
make run3  # Runs "03_ricochet_server_details"

Available Game Directories

SQGameDirHalfLife              // Half-Life 1
SQGameDirCounterStrike         // Counter-Strike 1.6
SQGameDirTeamFortressClassic   // Team Fortress Classic
SQGameDirDayOfDefeat           // Day of Defeat
SQGameDirCounterStrikeSource   // Counter-Strike: Source
SQGameDirTeamFortress2         // Team Fortress 2
SQGameDirHalfLife2Deathmatch   // Half-Life 2: Deathmatch
SQGameDirGarrysMod             // Garry's Mod
SQGameDirLeft4Dead2            // Left 4 Dead 2
SQGameDirRicochet              // Ricochet

Available Regions

SQRegionUSEastCoast    // US East Coast
SQRegionUSWestCoast    // US West Coast  
SQRegionSouthAmerica   // South America
SQRegionEurope         // Europe
SQRegionAsia           // Asia
SQRegionAustralia      // Australia
SQRegionMiddleEast     // Middle East
SQRegionAfrica         // Africa
SQRegionRestOfWorld    // Worldwide

Filter Options

  • filterWithGameDir: - Specific game/mod directory
  • filterWithAppID: - Steam Application ID
  • filterWithMap: - Specific map name
  • filterDedicatedOnly - Dedicated servers only
  • filterSecureOnly - VAC-secured servers only
  • filterNonEmpty - Non-empty servers
  • filterNonFull - Non-full servers
  • filterNoPassword - Password-free servers
  • filterLinuxOnly - Linux servers only
  • filterByHostname: - Hostname pattern matching (supports wildcards)

RCON Usage

SourceQuery *query = [[SourceQuery alloc] init];

if ([query connectWithAddress:@"127.0.0.1" port:27015 timeout:3 engine:SQEngineSource]) {
    if ([query setRconPassword:@"your_rcon_password"]) {
        NSString *response = [query rcon:@"status"];
        NSLog(@"RCON Response: %@", response);
    }
    [query disconnect];
}

References

About

ObjC implementation of the Source Engine Query Protocol for querying game servers and the Valve Master Server.

Resources

License

Stars

Watchers

Forks

Releases

No releases published