Skip to content

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|Brand on 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 send vanilla.
  • 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 mods folder. 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.