How tanboy4u/gaydar works
Gaydar is a PUBG network radar: it captures live traffic or replays a PCAP, decodes replicated game state, and presents the resulting map and overlays. The graph preserves the packet, channel, actor, and game-specific decoding stages alongside the map UI and settings. Edges are limited to calls or data access shown in excerpts or the source index; some domain-decoder dispatch details were not sampled and are left unconnected.
Main entry points: GLMap.kt Radar map UI · ActorChannel.kt Actor channel · PacketParser.kt Packet parser · Game.kt Application entry
Components 18
Capture and decoding
- Application entry
src/main/kotlin/gaydar/Game.kt - Traffic capture
src/main/kotlin/gaydar/Sniffer.kt - Packet parser
src/main/kotlin/gaydar/deserializer/PacketParser.kt - Bit buffer
src/main/kotlin/gaydar/deserializer/Buffer.kt - Channel sequencing
src/main/kotlin/gaydar/deserializer/channel/Channel.kt - Control channel
src/main/kotlin/gaydar/deserializer/channel/ControlChannel.kt
Replicated game state
- Replicated bunch
src/main/kotlin/gaydar/struct/Bunch.kt - Actor channel
src/main/kotlin/gaydar/deserializer/channel/ActorChannel.kt - Actor model
src/main/kotlin/gaydar/struct/Actor.kt - Network GUID
src/main/kotlin/gaydar/struct/NetworkGUID.kt - GUID cache
src/main/kotlin/gaydar/struct/NetGuidCache.kt - Game decoders
src/main/kotlin/gaydar/struct/CMD - Item data
src/main/kotlin/gaydar/struct/Item.kt
Map and presentation
- Radar map UI
src/main/kotlin/gaydar/ui/GLMap.kt - User settings
src/main/kotlin/gaydar/util/Settings.kt
Other components
- Operator
- Game traffic
- PCAP input
Connections 25
- Operator → Application entry: launches
src/main/kotlin/gaydar/Game.kt - Application entry → Traffic capture: starts capture
src/main/kotlin/gaydar/Game.kt - Application entry → User settings: loads settings
src/main/kotlin/gaydar/Game.kt - Application entry → Radar map UI: opens UI
src/main/kotlin/gaydar/Game.kt - Game traffic → Traffic capture: supplies packets
src/main/kotlin/gaydar/Sniffer.kt - PCAP input → Traffic capture: provides replay
- Traffic capture → Packet parser: queues and parses
src/main/kotlin/gaydar/Sniffer.kt - Packet parser → Bit buffer: reads packet bits
src/main/kotlin/gaydar/deserializer/PacketParser.kt - Packet parser → Channel sequencing: dispatches channels
src/main/kotlin/gaydar/deserializer/PacketParser.kt - Packet parser → Control channel: dispatches control
src/main/kotlin/gaydar/deserializer/PacketParser.kt - Packet parser → Replicated bunch: constructs bunches
src/main/kotlin/gaydar/deserializer/PacketParser.kt - Channel sequencing → Replicated bunch: orders bunches
src/main/kotlin/gaydar/deserializer/channel/Channel.kt - Actor channel → Channel sequencing: extends channel
src/main/kotlin/gaydar/deserializer/channel/ActorChannel.kt - Actor channel → Replicated bunch: processes bunches
src/main/kotlin/gaydar/deserializer/channel/ActorChannel.kt - Replicated bunch → Bit buffer: inherits reads
src/main/kotlin/gaydar/struct/Bunch.kt - Bit buffer → GUID cache: resolves object IDs
src/main/kotlin/gaydar/deserializer/Buffer.kt - Actor channel → Actor model: creates and updates
src/main/kotlin/gaydar/deserializer/channel/ActorChannel.kt - Actor channel → Network GUID: indexes replicated actors
src/main/kotlin/gaydar/deserializer/channel/ActorChannel.kt - Actor channel → Game decoders: decodes properties
src/main/kotlin/gaydar/deserializer/channel/ActorChannel.kt - Game decoders → Actor model: updates actor state
src/main/kotlin/gaydar/struct/CMD/ActorCMD.kt - Radar map UI → Actor channel: reads live state
src/main/kotlin/gaydar/ui/GLMap.kt - Radar map UI → Actor model: renders actors
src/main/kotlin/gaydar/ui/GLMap.kt - Radar map UI → Game decoders: uses game state
src/main/kotlin/gaydar/ui/GLMap.kt - Radar map UI → Item data: renders item data
src/main/kotlin/gaydar/ui/GLMap.kt - Radar map UI → User settings: reads display options
src/main/kotlin/gaydar/ui/GLMap.kt