The client¶
The Xol client is a Forge mod that ships inside the launcher and is installed into the Xol 1.8.9 and Xol 1.7.10 profiles. It adds 50 modules, a Right Shift menu to switch and set them, a HUD editor, and Xol's look for the game's menus. The current version is 0.3.5, the same number as the launcher.
Opening it¶
| How | Where it works |
|---|---|
| Right Shift | In a world, with no other screen open. The key is a normal Minecraft key binding named Open Xol settings, in the Xol category of Options ▸ Controls, and can be rebound there. |
| Xol settings on the themed title screen | Outside a world. HUD elements then show sample values. |
| The small Xol button in the top left corner | On the pause menu, and on the title screen while themed menus are off |
| Open the HUD editor | A second key binding in the same category, with no key by default |
The Right Shift menu opens with your HUD live behind it, so you can switch a module on and put it where you want it in one place.
What it consists of¶
| Part | Page |
|---|---|
| The Right Shift menu: module grid, tabs, search, settings pages, client settings | Right Shift menu |
| The HUD editor: drag, resize, snap, reset | HUD editor |
| Layouts, and the export and import file | Layouts, export and import |
| 50 modules under four tabs | Modules |
| Xol's look for the title screen, the server list, the pause menu and the game's other menus | Menu theme |
Ground rules¶
- Two modules are on by default: FPS and FOV Changer. Every other module is off until you switch it on, and every module can be switched off.
- Mostly display. Most modules read what the game already shows you and draw it differently. The ones that do more are listed with exactly what they do on Modules. One module, Auto Hotkey, sends a chat line you wrote when you press its key, and nothing else in the client sends a message for you. See Multiplayer and fair play.
- Network use. The client connects to very few places. The Ping module's server ping asks the server you are already on for its status. The themed server list starts the same status pings the vanilla list would, with the game's own pinger. The game talks to the Xol service for two things only: the network level and Bed Wars star of Hypixel ▸ Player info, and the Xol badge. Both send account IDs, never names. See Privacy.
- A local status file. So that the launcher can show your Discord status, the client writes
xol/presence.jsonin the instance folder: whether you are in the menus, in singleplayer or in multiplayer, and the address of the server you are connected to. It never holds your name, your own address or your session. The launcher decides what is safe to show. - The HUD hides with the vanilla HUD. It is not drawn while F1 hides the interface or while the F3 debug screen is open.
- Settings are shared. They are stored in
xol/config.jsonand saved whenever a Xol screen closes. The launcher keeps one copy for the 1.8.9 and 1.7.10 profiles, so a change in one version is there in the other. - A failing module stops itself. If one of a module's hooks throws an error, that module is switched off at once, its page in the menu says so, and the game carries on. It gets another try when the game next reloads its resources.
How it hooks into the game¶
The client uses Forge events for most of its work: the client tick, key and mouse input, the overlay render passes, screens opening and drawing, and received chat. Where Forge has no event, it uses mixins. They are registered as optional, so a mixin that cannot apply does not stop the game from starting; the feature it serves is then missing.
Two of them change something a server can see:
- The client brand. The brand message sent on join reads
Xolinstead of Forge'sfml,forge. The debug screen and crash reports keep the loader's own brand. - The handshake. With Connect as a vanilla client on (the default, under Multiplayer in the client settings), Xol leaves Forge's modded marker out of the first packet, which is what lets modern proxies accept the connection. See Right Shift menu.
The mod is client-side only and declares that servers never need it. The window title reads "Xol 1.8.9" or "Xol 1.7.10" instead of "Minecraft".
What has been checked in a running game¶
Client 0.3.1 was built and walked through in a test harness on Linux without a graphics card, on 1.8.9 and 1.7.10, with mouse and keyboard input sent by a test tool. That covers the menu, the modules, the HUD editor and the themed menus.
These have not been checked:
- anything on a real Mac, a real Windows PC or a real graphics card
- true fullscreen
- how the HUD editor feels with a real mouse
- No Hurt Cam, and the sky and texture checks, on 1.7.10
- a real session on Hypixel
If something misbehaves for you, that is useful to know: contact@xol.dev.