Skip to content

pjwendy/eqmap.net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

67 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

EQMap.NET - EverQuest Protocol Encapsulation for Headless BOTS and alternative clients

A comprehensive toolkit for EverQuest client side protocol handling ideal for headless bots and alternative clients, featuring real-time mapping, packet analysis, and protocol debugging tools.

๐ŸŽฎ What is EQMap.NET?

EQMap.NET is a suite of tools designed for EverQuest client side headless bots and alternative clients. It provides real-time visualization of game data, comprehensive packet analysis, and debugging capabilities for EQEmu server.

๐ŸŽฅ Demo Videos

๐Ÿš€ Key Features

๐Ÿ—บ๏ธ Real-time Mapping (EQMap)

  • Live visualization of player positions, NPCs, and game objects
  • Zone mapping with dynamic updates
  • Multi-player tracking and session management
  • Lua scripting support for custom behaviors

๐Ÿ“Š Packet Analysis (EQLogs)

  • Comprehensive packet capture and analysis
  • Support for server and bot log comparison
  • Session-based filtering and organization
  • Real-time packet structure parsing using reflection
  • Bidirectional packet support (ToServer/FromServer)
  • Hex dump visualization with structure breakdown

๐Ÿ”ง Protocol Library (EQProtocol)

  • Complete EverQuest protocol implementation
  • Automatic opcode-to-structure mapping
  • Support for compression (Zlib) and encryption (DES)
  • Extensive packet structure definitions
  • Cross-platform .NET Standard 2.1 compatibility

๐Ÿค– Console Bot Framework (EQConsole)

  • Headless bot implementation with console interface
  • JSON-based configuration system for multiple accounts
  • Automated patrol movement with configurable waypoints
  • Event-driven bot behaviors and chat interactions
  • Real-time logging with comprehensive debugging output
  • Example implementation demonstrating EQGameClient usage

๐Ÿ“ Project Structure

eqmap.net/
โ”œโ”€โ”€ EQMap/              # Real-time mapping application
โ”œโ”€โ”€ EQLogs/             # Packet analysis and logging tools
โ”œโ”€โ”€ EQProtocol/         # EverQuest protocol library
โ”œโ”€โ”€ EQConsole/          # Console utilities
โ””โ”€โ”€ docs/               # Documentation

๐Ÿ“– Documentation Index

Getting Started

EQMap (Real-time Mapping)

EQLogs (Packet Analysis)

EQProtocol (Protocol Library)

EQConsole (Console Bot Framework)

Development

๐Ÿš€ Protocol-Level Client Encapsulation

EQMap.NET provides a complete protocol-level encapsulation of the EverQuest client/server communication, enabling the development of headless bots and alternative clients in any .NET-compatible language. This abstraction layer opens up unprecedented possibilities for EverQuest automation and tooling.

๐ŸŽฏ What This Enables

Headless Bot Development

  • No Game Client Required: Bots run independently without needing the EverQuest game client
  • Server Farm Deployment: Deploy hundreds of bots on headless servers
  • Resource Efficient: Minimal CPU/memory usage compared to full game clients
  • Scriptable Automation: Full programmatic control over character actions

Alternative Client Development

  • Custom User Interfaces: Build specialized UIs for specific use cases
  • Mobile Clients: Develop lightweight mobile EverQuest clients
  • Web-based Interfaces: Create browser-based EverQuest tools
  • Specialized Tools: Build focus-specific clients (auction tracking, map tools, etc.)

๐Ÿ› ๏ธ Development Options

C# / .NET Applications

// Simple bot example
var gameClient = new EQGameClient(logger);
await gameClient.LoginAsync(username, password, server, character);

// Event-driven programming
gameClient.NPCSpawned += (sender, npc) => {
    if (npc.IsAttackable) AttackTarget(npc);
};

// High-level commands
await gameClient.MoveTo(x, y, z);
gameClient.SendChat("Hello world!", ChatChannel.Say);

Other .NET Languages

  • F#: Functional programming approach to bot logic
  • VB.NET: Classic Visual Basic syntax for rapid development
  • PowerShell: Scripting-based automation and server management
  • IronPython: Python scripts with .NET integration

Cross-Platform Deployment

  • Windows: Native .NET 8.0 support
  • Linux: Full compatibility via .NET runtime
  • Docker: Containerized bot deployments
  • Cloud Services: Azure, AWS, Google Cloud deployment

๐Ÿ—๏ธ Architecture Benefits

Protocol Abstraction

  • Complete Encapsulation: All EverQuest networking handled internally
  • Event-Driven Design: React to game events naturally
  • Type-Safe Operations: Strongly-typed models prevent runtime errors
  • Automatic State Management: Character, zone, and game state tracked automatically

Extensibility

  • Plugin Architecture: Add custom behaviors without modifying core code
  • Custom Packet Handlers: Extend protocol support for new opcodes
  • Behavior Trees: Complex AI logic through composable behaviors
  • Integration APIs: Connect with external systems and databases

๐Ÿ”ง Technical Highlights

Advanced Packet Analysis

  • Reflection-based Structure Mapping: Automatically maps opcodes to packet structures using naming conventions
  • Bidirectional Packet Support: Handles ToServer/FromServer packet variants seamlessly
  • Session Management: Filter and organize packets by game sessions with automatic session detection
  • Multiple Log Sources: Compare server logs with bot logs for comprehensive analysis

Real-time Capabilities

  • Live Data Streaming: Real-time updates from running EQEmu servers
  • Multi-session Support: Track multiple players and sessions simultaneously
  • Performance Optimized: Efficient handling of large data streams and log files

Protocol Implementation

  • Complete Coverage: Extensive implementation of EverQuest network protocol
  • Modern Architecture: Clean .NET Standard 2.1 implementation with async/await patterns
  • Extensible Design: Easy to add new packet types and extend functionality

๐Ÿ› ๏ธ Built With

  • .NET 8.0 - Modern cross-platform framework
  • WPF - Rich desktop UI for Windows applications
  • MVVM Pattern - Clean separation of concerns
  • NLog - Comprehensive logging framework
  • Docker Integration - Seamless integration with containerized EQEmu setups

๐Ÿค Contributing

This project is actively developed for EQEmu server client development and protocol research. Contributions are welcome!

๐Ÿ“„ License

This project is developed for educational and private server development purposes. Please respect the intellectual property rights of the original EverQuest game.

๐Ÿ™‹ Support

For questions, issues, or contributions:

  • Open an issue on this repository
  • Check the documentation links above
  • Review the demo videos for usage examples

EQMap.NET - Bringing modern development tools to classic EverQuest server development

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages