Skip to content

Instantly share code, notes, and snippets.

@Geczy
Last active March 22, 2025 15:49
Show Gist options
  • Save Geczy/ff04760f7ed1d0dd3be820a30d422710 to your computer and use it in GitHub Desktop.
Save Geczy/ff04760f7ed1d0dd3be820a30d422710 to your computer and use it in GitHub Desktop.
Dotabod GSI FPS Issue Summary

Dotabod GSI FPS Issue Summary

Problem Statement

The Dotabod integration causes cyclical FPS drops in Dota 2 due to the GSI configuration. Multiple streamers (ODPixel, Gorgc, and potentially Arteezy) have experienced this issue where FPS drops significantly every few seconds in a regular pattern.

Key Findings

  • The issue is caused by the GSI configuration file that Dotabod uses to get game data
  • Removing the GSI folder completely fixes the FPS drops but breaks Dotabod functionality
  • Modifying the buffer and throttle values in the GSI config can reduce the severity of FPS drops
  • ODPixel found that setting buffer: 0.0 and throttle: 5.0 helped minimize the issue
  • The FPS drops appear to be caused by Dota 2 taking resource-intensive snapshots of game state

Current Default Configuration

{
  "uri" "${process.env.NEXT_PUBLIC_GSI_WEBSOCKET_URL}"
  "timeout" "5.0"
  "buffer" "0.5"
  "throttle" "0.5"
  "heartbeat" "30.0"
  "data"
  {
    "abilities" "1"
    "buildings" "1"
    "events" "1"
    "hero" "1"
    "items" "1"
    "map" "1"
    "player" "1"
    "provider" "1"
    "wearables" "1"
  }
  "auth"
  {
    "token" "${userId}"
  }
}

Tested Alternative Configuration

"timeout" "5.0"
"buffer" "0.0"
"throttle" "5.0"
"heartbeat" "30.0"

Additional Notes

  • The issue appears to be on Valve's side with how the Dota 2 client handles GSI data collection
  • There's concern that increasing throttle/buffer values too much might cause missed events or delayed Dotabod functionality
  • The FPS drops might be less noticeable if players don't have FPS counters visible
  • A dual PC streaming setup won't fix this particular issue since it's on the game client side
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment