File Details
OptiPortal-1.0.4.jar
- R
- Mar 18, 2026
- 18.40 MB
- 35
- Early Access
File Name
OptiPortal-1.0.4.jar
Supported Versions
- Early Access
Added
- Corridor prioritization — chunks near WorldPath waypoints are sorted ahead of equivalent non-corridor chunks during predictive loads, reducing visible pop-in along high-traffic routes
- Velocity-aware preload radius — when a player enters a portal zone while moving above a configurable speed threshold, an extra chunk ring is preloaded to compensate for the reduced time before arrival
- Chunk complexity scoring — loaded chunks are scored based on terrain density and used to produce per-chunk RAM estimates
- Ownership drift auditing — periodic background audit detects and corrects chunk ownership records that have drifted from actual loaded state
- Async keepalive manager — warm and hot zone keepalive heartbeats run off the world thread with proper load balancing
- Circuit breaker — world thread operations back off automatically when failure rate exceeds threshold, preventing cascading overload
Fixed
- Corrected
AsyncLoadBalancerdrain loop to useArrayDequefor proper FIFO task ordering - Fixed thread-unsafe
HashSetin warp file watcher that could cause data corruption under concurrent access - Batch chunk eviction callbacks — auditor now processes all evicted chunks in a single pass rather than one call per chunk, avoiding redundant map operations on large eviction events
Changed
- Chunk preloader upgraded to async implementation with world thread isolation; all chunk loads now go through
WorldThreadBridgerather than blocking the event handler thread EnhancedChunkPreloaderreplaces baseChunkPreloaderas the active implementation; base class retained for compatibility- Predictive load dispatch in
TeleportInterceptoris now overridable viatriggerPredictiveLoadhook, allowing subclasses to augment radius without duplicating event handling logic - Position update batch skipped entirely when no players are online, eliminating unnecessary allocation on idle servers
- Tier decay scheduler now skips the full zone map iteration when no zone is due for decay, reducing overhead to a single atomic read per 10-second tick on idle servers
- Load balancer task processor skips all priority queue acquisitions when the queue is empty
Configuration
New config.json fields (all optional, defaults apply if absent):
- Config migration — on each startup, any keys present in the bundled default
config.jsonbut absent in the server's file are automatically added with their default values; existing operator settings are never overwritten densityBased.corridor.enabled— enable/disable corridor prioritization (default:true)densityBased.corridor.radiusChunks— waypoint radius in chunks (default:3)activation.velocityAwareActivation— enable/disable velocity radius boost (default:true)activation.velocityRadiusBoostThreshold— speed in blocks/tick above which boost applies (default:0.5)async.tpsMonitorEnabled,async.tpsLowThreshold,async.tpsCriticalThreshold— TPS guard settingscache.ownershipAuditIntervalMinutes— how often the ownership auditor runs (default:5)