Content
| Name | |
|---|---|
| Client-State-Guard-1.0.11.jar | |
| Rendersnap-Sodium-Menu-Compat-1.0.14.jar | |
| X-Factor-Compatibility-Patcher-1.1.0.jar |
X-Factor Optimization 1.0.5 is a menu/session recovery and multiplayer stability update built on top of the chunk-throughput and networking changes introduced in 1.0.4.
This release keeps the existing optimization stack in place. The main change is a major update to X-Factor's custom Client State Guard after further singleplayer and multiplayer testing exposed a deeper Minecraft 26.2 Video Settings state-loss problem.
Minecraft.level and ClientPacketListener.level have already been clearedX-Factor 1.0.5 updates Client State Guard from:
1.0.6
to:
1.0.11
This is the main change in X-Factor 1.0.5.
The 1.0.4 release already protected several entity packet handlers from a temporary missing ClientLevel.
Further testing showed that the underlying issue was broader.
While navigating through:
Pause
→ Options
→ Video Settings
Minecraft 26.2 could temporarily detach the active client world from the network listener.
In more severe reproductions, the client could lose multiple related references at once:
Minecraft.level
Minecraft.player
ClientPacketListener.level
The visible result could include:
Client State Guard 1.0.11 changes the protection model from a small set of packet-specific guards into a broader session-recovery system.
Earlier versions mainly observed normal Minecraft screen transitions.
Further testing showed that this was not early enough for every failure path.
Client State Guard 1.0.11 now directly observes Sodium's Video Settings screen when it initializes.
The protected path is now effectively:
Live game session
↓
Pause
↓
Options
↓
Sodium Video Settings opens
↓
Client State Guard arms protection immediately
This allows the mod to capture the active session before a broken transition can destroy the information needed for recovery.
The direct Sodium hook is optional.
If Sodium is not present, Client State Guard can still load without requiring it.
In X-Factor, Sodium remains part of the tested rendering stack.
When protection is armed, Client State Guard now keeps a snapshot of the active session.
That snapshot includes the important live-session references needed to determine whether recovery is still safe:
Minecraft.level
Minecraft.player
ClientPacketListener
ClientPacketListener.level
Integrated server identity when applicable
If Minecraft temporarily clears the world while the same session is still active, Client State Guard can restore the protected state instead of immediately treating it as a real disconnect.
The recovery logic is intentionally conservative.
A missing reference can be restored only when the protected session is still the same live session.
If a replacement world, player, listener, or integrated server has genuinely appeared, the old snapshot is not forced back into the client.
The intended flow is:
Video Settings protection armed
↓
Minecraft temporarily clears client state
↓
same live session still owns the connection
↓
protected snapshot is restored
↓
gameplay continues
This is an important difference from simply checking whether a field is null.
A temporary null does not automatically mean the player intended to disconnect.
Client State Guard 1.0.6 directly protected several known entity packet handlers.
Those protections were useful, but further testing found additional packets that could become the first packet to touch the missing world.
Observed examples included:
ClientboundSectionBlocksUpdatePacket
ClientboundUpdateMobEffectPacket
This demonstrated that the bug was not limited to one packet family.
Any queued gameplay packet that needs the temporarily missing ClientLevel could potentially become the first failure.
Client State Guard 1.0.11 therefore protects the queued gameplay path more broadly.
The new flow is:
Clientbound gameplay packet arrives
↓
protected Video Settings session is active
↓
client-state snapshot is checked
↓
state is healthy?
↓
yes → packet continues normally
or
state is damaged?
↓
safe recovery is possible?
↓
yes → restore snapshot
↓
packet continues normally
If safe recovery is not possible, the gameplay packet can be suppressed rather than being allowed to enter a null-world handler and terminate the connection.
This avoids maintaining an endless blacklist of individual packet types.
The protection is not intended to trap the player inside an old session.
Real terminal session events are explicitly allowed to continue.
Examples include:
ClientboundDisconnectPacket
ClientboundTransferPacket
ClientboundStartConfigurationPacket
When one of these legitimate session-changing packets arrives, the protected Video Settings state is disarmed and the packet proceeds normally.
This means Client State Guard distinguishes between:
temporary broken menu state
and:
real server/session transition
The goal is to preserve a valid session, not prevent intentional disconnects.
Singleplayer required additional care because an integrated server can remain alive even after the client UI has lost the world reference.
That can leave the save unavailable to reopen because the still-running server process continues to own the world.
Client State Guard therefore protects against accidental teardown caused by the Video Settings bug while still allowing teardown that genuinely begins from the Pause screen.
Normal:
Pause
→ Save & Quit
is still allowed.
The protection is aimed at accidental menu/session destruction, not normal world shutdown.
One of the more visible failure modes during testing was a stale Pause or Options screen appearing over the title-screen panorama.
In that state, the UI could still look partly like an in-world menu even though Minecraft had already detached the client world.
Pressing Resume could then return to the title screen rather than gameplay.
Client State Guard 1.0.11 protects recoverable sessions against unexpected routing toward:
Title screen
World selection
Server selection
while the protected Video Settings session is still valid.
If the original session can safely be recovered, the snapshot is restored instead.
If the session has genuinely ended or been replaced, Client State Guard does not force the old world back into Minecraft.
The session-isolation work from X-Factor 1.0.4 remains in 1.0.5.
Once Minecraft has genuinely replaced an old ClientPacketListener, traffic from that old session can be isolated so it does not contaminate the replacement session.
This is designed to prevent stale data such as:
from an old listener affecting a later connection.
The important distinction remains:
temporary missing world on the current session
≠
old listener that Minecraft has genuinely replaced
The current active session should not be destroyed merely because a menu transition temporarily exposes incomplete state.
X-Factor 1.0.5 retains:
Rendersnap Sodium Menu Compat 1.0.14
This is the same compatibility version introduced in X-Factor 1.0.4.
Its safer Video Settings navigation behavior remains part of the pack:
The two Rendersnap controls remain integrated into Sodium's Video Settings layout.
Client State Guard 1.0.11 now adds an additional session-safety layer around that menu transition.
The safer Greedy Meshing configuration introduced in X-Factor 1.0.4 remains in 1.0.5.
The main configuration continues to use:
enabled=true
aggressiveGreedy=false
greedyWater=false
mergeOrientedBlocks=true
debugWireframe=false
debugComparison=false
Normal Greedy Meshing therefore remains enabled.
The more aggressive ambient-occlusion-crossing mode remains disabled.
X-Factor continues to keep the core geometry-reduction benefit without forcing the most aggressive available meshing path.
The previously discussed 900+ FPS development result remains a 1.0.3-era observation made with the older aggressive configuration.
It should not be treated as a guaranteed 1.0.5 benchmark.
Performance will continue to vary heavily by:
Direct Sodium Video Settings session protection
Recoverable client-state snapshots
Packet-wide queued gameplay protection during protected null-world states
Recovery of Minecraft.level, Minecraft.player,
and ClientPacketListener.level when the same live session is still active
Explicit terminal-session packet handling
Additional protection against unexpected title/world-selection routing
during a recoverable in-game Video Settings transition
Client State Guard
1.0.6 → 1.0.11
No new headline Greedy Meshing change.
aggressiveGreedy=false
remains the supplied default.
No 1.0.5 feature removal is required for the new Client State Guard protection.
The major 1.0.4 optimization additions remain in place:
Krypton 0.3.1
Multicore Magic
Rendersnap Sodium Menu Compat 1.0.14
Greedy Meshing with aggressiveGreedy=false
The tested rendering combination in the supplied 1.0.5 pack remains:
Sodium 0.9.1
Iris 1.11.2
X-Factor 1.0.5 continues to include the existing performance stack, including:
X-Factor's custom compatibility components also remain:
xfactor-compatibility-patches.txtX-Factor 1.0.4 expanded the pack's optimization pipeline into chunk-mesh scheduling and networking.
X-Factor 1.0.5 focuses on making the client state around that optimized stack more resilient.
The relevant failure/recovery path now looks roughly like:
Live world
↓
Pause / Options
↓
Sodium Video Settings
↓
Client State Guard snapshot
↓
temporary client-world loss
↓
safe recovery check
↓
snapshot restore or unsafe gameplay packet suppression
↓
return to gameplay
The focus of 1.0.5 is therefore not a new headline FPS mod.
The goals are:
For general performance comparisons between 1.0.4 and 1.0.5:
Because 1.0.5 is primarily a stability update, the most important test is the Video Settings path.
For multiplayer:
Join server
→ Pause
→ Options
→ Video Settings
→ change/open settings
→ back
→ resume gameplay
Repeat the sequence several times.
Confirm that:
Also test:
Server A
→ disconnect normally
→ Server B
and confirm that chat, tab-list decorations, boss bars, player-list state, and other server-specific data do not leak between sessions.
For singleplayer:
Open world
→ Pause
→ Options
→ Video Settings
→ back
→ resume gameplay
Then separately test:
Open world
→ Pause
→ Save & Quit
→ reopen world
Confirm that the world saves normally and can be reopened without a save-lock error.
A clean launcher update is recommended.
If updating an existing instance:
Do not use a launcher-wide Update All Mods action on X-Factor.
The pack contains compatibility-sensitive rendering, networking, and Mixin combinations that are tested together.
In particular, the supplied X-Factor 1.0.5 rendering combination uses:
Sodium 0.9.1
Iris 1.11.2
Do not assume a newer standalone Sodium build is compatible with the supplied Iris version simply because it is newer.
When reporting an issue, include:
latest.logFor performance reports, also include:
For menu/session problems, include the exact screen sequence used before the issue.
For the 1.0.5 Client State Guard changes, also mention whether the log contains messages similar to:
[Client State Guard] Armed client state protection for Sodium Video Settings
or:
[Client State Guard] Restored the protected client world snapshot before ...
These messages help distinguish a successfully recovered temporary state loss from a different disconnect path.
| Name | |
|---|---|
| Client-State-Guard-1.0.11.jar | |
| Rendersnap-Sodium-Menu-Compat-1.0.14.jar | |
| X-Factor-Compatibility-Patcher-1.1.0.jar |