Skip to content

ErkoKnoll/AoE2HDLobbyCompanion

Repository files navigation

Age of Empires 2 Lobby Companion

Lobby Companion is a desktop app that works with Age of Empires 2 HD and provides additional info for players who join your lobby. It works for both lobby hosting and lobby joining scenarios. Additional info that is being displayed is Location, Total Games, Win Ratio, and Drop Ratio, so you can make a more educated guess whom you would like to play with. To keep the track of players who you don't want to play with in the future, or who you would like to, you can use a reputation system. Reputation system allows to assign negative or positive reputation for players who you played the game with, so the next time when the same player joins your lobby you can check player's reputation history and decide whether to let that person stay or not. Players are tracked by SteamID, so evasion is not possible by changing a name. To increase the user experience Lobby Companion is capable of projecting an in-game overlay with all the information you need to make a decision about the player, without having to alt-tab into the actual Lobby Companion app. Optionally (which is enabled by default) overlay is also shown when the game is not active, so you can do other stuff while waiting for your lobby to get full, and still keep an eye on the lobby progress without constantly alt-tabbing to check if the lobby is full. Additional features include balanced team calculation either based on Rank (ELO), Total Games or Win Ratio. This tool does not require logging into Steam account or ask any other credentials, it works side by side with your running Steam instance.

Short link for sharing: aoe2lc.net

Screenshots

Download

Download v1.4.0

Minimum Requirements: Windows 7 SP1 or newer

Prerequisites

How to use it

Just download the ZIP, extract it and launch AoE2HDLobbyCompanion.exe while your Steam Client is also running. When you are planning to play click on "Start Session". When you join a lobby or host a lobby you should see a lobby state being reflected in Lobby Companion app. When the game starts Lobby Companion should automatically mark the lobby as started and close the overlay in 1 minute into the game. To do it sooner you can click on "Start the lobby manually". When the game has finished you must seal the lobby before starting a new session. Befor sealing the lobby make sure you have assigned reputations. You can start assigning reputations even before the lobby has started. Lobby Companion tries to be as flexible as possible in terms of workflow. It's main purpose is to be your personal notepad when it comes to reputations and it makes no attempt to restrict you, therefor you can perform invalid actions without Lobby Companion stopping you, for example starting the lobby manually without the actual game being started. First time users have to go through a setup process where among other things most common problems are being explained and how to solve them. It is strongly recommended to go through the setup process with attention and not to skip anything.

How it works

Lobby Companion injects a NetHook2 DLL into Steam process to tap into Steam Client's network stream. That's how it is capable of knowing who the players are. There are 3 distinct components that work together: AoE2HDLobbyCompanion.exe, Backend.exe and NetHook2.dll:

  • AoE2HDLobbyCompanion.exe is a main process and a UI layer that is built with Electron. It also spawns Backend.exe and NetHook2.dll processes, because it is not powerful enough to peform all the tasks on its own. Because it is spawning additional processes some Anti-Viruses may flag those processes as malicious activities and therefor block them. To avoid Anti-Virus interruptions you have to add exclusions for those files. If you scan those files separately you should see that there is nothing malicious about them.
  • Backend.exe is a Kestrel web server built with .NET Core running on port 5000. It is a web server so the AoE2HDLobbyCompanion.exe could communicate with it. It's main purpose is to read NetHook2's network dump, deal with all the database related operations, and project an overlay.
  • NetHook2.dll purpose is to be injected into Steam Client's address space so the network traffic could be dumped for further inspection.

Database is stored separately from the installation folder to make the sure the database is not lost while upgrading. To make a backup of your database make a copy of C:\Users\[user]\AppData\Roaming\AoE2HDLobbyCompanion (AppData is hidden folder).

Known Issues

  • Some Anti-Viruses might block NetHook2 DLL when session is started. If it happens your Steam client along with the game will crash. To prevent it happening again you have to add an exclusion to your Anti-Virtus to prevent it from scanning NetHook2 process in the future.

Wiki

Building and Development