Multiplayer and fair play¶
Xol does not change movement, combat, reach, hitboxes, interaction timing or packets. It is not "approved", not "undetectable" and not safe for every server. A server may ban any modified client. Check the target server's current rules before playing there.
The rule¶
Every module is reviewed against one rule: it may read what vanilla already shows you and draw it differently, and nothing else.
| What Xol does | What Xol never does |
|---|---|
| Draws HUD elements from your own client state: frame rate, your position, your armor, your key presses | Change movement, combat, reach, hitboxes or interaction timing |
Identifies itself honestly. Xol profiles send the client brand Xol, so servers can see what you are running. |
Send, delay, reorder, cancel or edit a packet |
| Keeps Forge's normal handshake intact, so a server sees the same mod list it would see from any Forge client | Generate, repeat or modify clicks and key presses |
| Lets you switch any module off, per instance | Reveal anything the vanilla game hides: no ESP, no X-ray, no player or entity highlighting |
| Hide from servers or anti-cheat, or pretend to be another client |
Two modules write something local rather than only drawing: Toggle sprint and Zoom. Both are described exactly below.
Client brand¶
When a Minecraft client joins a server it sends a short label naming itself: the brand. Vanilla sends vanilla; Forge sends fml,forge.
- Xol profiles send
Xol. It is the standard brand message (MC|Brandon these versions), sent at the same time and on the same channel as vanilla's. Only the label differs. - The change is scoped to that one message at join time. The F3 screen and crash reports keep the loader's own brand.
- Other profiles are untouched and report accurately: the Forge profiles send
fml,forge, and the OptiFine profiles sendvanilla. - A brand is a self-reported label and trivially spoofable. Server owners should never grant permissions or anti-cheat trust because of it. Xol sends it so that it does not pretend to be something else, not as proof of anything.
What servers can see¶
| What | Detail |
|---|---|
| The brand | Xol, as above |
| Forge's handshake | Preserved, unchanged. A Forge client registers the channel names of its mods, so a server can see which channel-registering mods are present. That is normal Forge behaviour. With Xol 1.7.10, the observed registration was FML\|HS, FML, FML, gtnhlib, archaicfix, FORGE, hodgepodge, followed by the brand Xol. |
| The Xol mod in Forge's mod list check | The Xol client is client-side only and declares that servers never need it and accept any version |
| Everything else | The same packets a vanilla client sends. No module adds, removes, delays or edits one. |
Xol makes no attempt to hide from servers or from anti-cheat software.
What has been verified¶
On private test servers under the project's control, in offline mode:
| Client | Server | Result |
|---|---|---|
| Xol 1.8.9 | Paper 1.8.8 with a plugin that logs the brand | Joined, stayed two minutes, the server logged brand="Xol", clean disconnect |
| Xol 1.7.10 | Vanilla 1.7.10, with no integration, behind a logging relay | Joined, stayed two minutes, the relay saw Forge's registration and then the brand Xol, clean disconnect |
Not verified: an authenticated join to an online-mode server, because Microsoft sign-in is not live yet; sustained play; any public server. How a given anti-cheat plugin displays an unknown brand has not been observed.
Module review¶
Every module is client-side, individually switchable, and off by default except FPS. "Reads" lists the only game state the module looks at. None of them sends, delays, reorders, cancels or edits a packet, and none touches movement, combat, reach, hitboxes or timing.
| Module | Default | Reads | Writes (local only) | Sends anything | Note |
|---|---|---|---|---|---|
| FPS | on | The client's frame counter | no | Display only | |
| Ping | off | Your own latency entry in the tab list the server already sends | no | No extra packets, no pinging | |
| Coordinates | off | Your own position, the same numbers as F3 | no | 1.8.9: hides itself whenever reduced debug info is on (set by the server or by the local option), like F3. 1.7.10 has no such flag, so there it always shows what F3 shows. | |
| Session timer | off | The system clock | no | Display only | |
| CPS | off | Forge's mouse event for your own physical left and right button presses while no screen is open | no | Counts only; never generates, repeats, delays or cancels a click | |
| Keystrokes | off | Pressed state and key names of the vanilla forward, left, back, right, jump, attack and use binds | no | Display only | |
| Armor and held item | off | Your own armor slots and held stack (item, damage, count) | no | Icons drawn with the version's own item renderer | |
| Potion effects | off | Your own active effects (the list the inventory screen shows), once per tick | no | Display only | |
| Toggle sprint | off | Key-down events of the key bound to vanilla Sprint | The pressed state of the vanilla Sprint key binding | no | See below |
| Zoom | off | Physical state of the configured zoom key | The FOV modifier while the key is held; optionally the vanilla smooth camera option, restored on release | no | See below |
| Custom crosshair | off | The conditions under which vanilla draws its crosshair | Cancels the vanilla crosshair overlay element and draws rectangles at the same centre | no | Hidden whenever vanilla would hide it |
| Resource packs | off | Names of your selected resource packs, every two seconds | no | Display only | |
| Chat appearance | off | Received chat messages; the chat draw calls | Transparency of the chat line background, shadow flag of the chat text, optional local-time prefix on received lines | no | No hook on the send path: outgoing messages and commands are never read or changed |
| General | no | Interface preferences, HUD layouts, settings export and import (module switches, settings and layouts only; no account, server or path data) |
Toggle sprint¶
The module reads key-down events of the key bound to vanilla Sprint. It writes the pressed state of the vanilla Sprint key binding, with the same call a real key event makes. It sends nothing.
It never calls the game's set-sprinting function. Hunger, sneaking, blindness, item use, collisions and "moving forward" are still decided by vanilla. It keeps its hands off while any screen is open, and it releases the key when the module is turned off or you leave the world.
Some servers forbid toggle-sprint mods. Check their rules. The module is off by default.
Zoom¶
The module reads the physical state of the configured zoom key. While the key is held it writes the FOV modifier through Forge's FOV update event, and optionally the vanilla smooth camera option, which it restores on release. It sends nothing.
It is a camera effect only, like OptiFine's zoom. There is no change to reach, aim or interaction.
The client's mixins, in full¶
Two: the join-time brand label, and two draw-call redirects inside the chat's draw method. Everything else is Forge events and one vanilla key binding ("Open Xol settings", Right Shift, rebindable in Controls).
Every new module gets a row in this table and a multiplayer note in the client before it ships. Defaults stay conservative, and every module can be disabled.
Advice on server rules¶
- Read the rules of the server you play on, and read them again when they change. Servers make their own rules. Some forbid any modified client; some forbid specific features such as toggle sprint, or information displays.
- When in doubt, switch the module off, or ask the server's staff. Every module has a switch, and the settings are per instance.
- Xol does not claim to be approved by any server, and the project is not responsible for action a server takes against your account. The terms of use say the same.
- Do not modify Xol, or combine it with other software, in order to cheat, to evade a server's detection, or to misrepresent which client you are running. The terms forbid it.
- Mods you add yourself are your responsibility. A Forge instance loads whatever is in its
modsfolder. Xol lists files it did not install and leaves them alone.
For server owners¶
Xol sends the brand Xol so you can see it. Treat that label as information only; anyone can send any brand. If you want to allow or forbid Xol or one of its modules, the review table above is the complete list of what the client reads and writes. Questions: contact@xol.dev.
Open items before public-server use¶
The project's own list: authenticated session handling exercised end to end; sustained play on a private online-mode server; a code review of every mixin for protocol side effects; target server rules checked; known issues documented.