5.3.0-beta.1+26.2
Compatibility
Changes
5.3.0-beta.1
-
Labeled the current testing build ExoScanner 5.3.0-beta.1 (
5.3.0-beta.1+26.2) for private testing before public release. Updated the in-game title, Fabric metadata, packaged jar version, and current-build documentation. -
Armor sighting counts now increase at most once per item per lobby visit across local, island, API, and fresh Profile Viewer scans. Repeat scans still refresh the latest observation, scan method, and ownership evidence. Actual world arrivals start new visits; duplicate chat/server signals and disconnects do not. Queued work keeps its source visit, failed saves do not consume a count, and replay protection/import count-max semantics remain intact. Existing counts are retained; no JSONL or central-upload schema change.
-
Fixed Profile Viewer account-access assessment for players wearing the Vanilla cape. Mojang exposes the currently equipped cape, which can differ from NameMC's displayed cape history. Both Migrator and Vanilla capes now support Likely accessible; Vanilla evidence does not claim historical migration. Added a regression fixture from the actual public Mojang response, identity/texture validation tests, and preserved Hypixel-activity priority.
-
Spaced Profile Viewer Overview's Account & Links section into separate access, social-account, and Plancke groups. Each social account now has its own padded card with adjacent Copy/Open actions; long links wrap, controls wrap on narrow layouts, and Plancke uses a separate left-aligned button.
-
Profile Viewer now assesses Account access rather than requiring historical migration: valid reported Hypixel session activity after the final migration grace period supports Likely accessible, with its date and evidence shown. A visible Migrator cape also supports presumed access; older/missing activity stays Unknown, and public evidence does not verify the owner's current credentials. Added timestamp validation and cutoff/cache regression coverage.
-
Preserve Mojang account evidence when automatic Profile Viewer scans prepare alternate SkyBlock profiles, so switching to a prepared profile retains the correct account evidence and linked socials.
-
Added an Account & Links section to Profile Viewer Overview with a public account-access assessment, reported linked social accounts, copy/open actions, and a UUID-based Plancke.io link. Missing social data stays distinct from an explicitly empty links list. Optional Mojang evidence is fetched on the network executor, prepared off-thread, and retained across cached profile switches.
-
Reworked large database imports into streaming, bounded shard batches with indexed UUID/soft-key matching, unchanged-evidence fast paths, cached normalization, and batched search-index updates. Unchanged duplicates cause no shard writes; ownership history, conservative sighting counts, UUID promotions, legacy formats, and upload notifications remain supported. Imports now show immediate startup, five-second phase/count/speed heartbeats even during persistence, detailed completion summaries, and cancellation/failure summaries with committed changes. Atomic shard publication retains completed work after cancellation. Added regression coverage and an opt-in
importBenchmarktask; seedocs/database-imports.mdfor measured results and limitations. -
Central uploads now send schema v2 sighting metadata and observed ownership history, retain event identity, and reconcile previously acknowledged metadata when existing-database uploads are enabled. Older JSONL and durable retry state remain supported.
-
Aligned Settings and Database navigation SVG rasters to physical pixels after GuiLib's cached, antialiased SVG rasterization, avoiding fractional texel resampling without changing icon designs, logical layout, colors, or hitboxes. Profile Viewer keeps its existing rendering path unchanged; Minecraft item textures are excluded.
-
Added spacing above Ownership History's Local Player Records action. Overview's Progression Snapshot now uses six aligned metrics: SkyBlock Level, Skill Average, Catacombs Level, Fairy Souls, HOTM Level, and Garden Level. Mining/Fishing show only the best detected candidate per slot using documented base-stat priorities, preserving equipped/carried/stored labels; upgrades and situational bonuses are not included in that ranking.
-
Spaced Delete Record apart from Add to Watchlist in the item details action row. Each sidebar now uses a different icon for every destination within that screen, retaining the shared monochrome style and accent.
-
Database item details now have a fixed frame/header and a separately clipped, bounded scroll viewport with selection-based scroll reset and theme-colored headings. Added confirmed Delete Record for exact local UUID/soft identities, atomic shard rewrites on the database executor, revision/cache refresh, stale-confirmation rejection, and pruning of stale queued upload observations after rebuilds. This does not delete central data or prevent future scans/imports from recording an item again.
-
Corrected modern one-based armor/equipment wardrobe positions while retaining explicitly zero-based maps and genuine empty/sparse slots. Profile headers now say SkyBlock Level. Mining/Fishing show paginated equipped/carried/stored candidates from accessible decoded containers using bundled Hypixel category/stat metadata, including Divan gear; no unsupported best-gear ranking is asserted.
-
Bestiary now groups reported families by verified NEU island/event definitions with levels/kill progress and an unmapped fallback. Removed redundant HOTM presentation from Progression; Mining retains its details. Normalized explicit Sunflower collection aliases, preserving reported zero and unavailable flower quantities.
-
Added shared monochrome SVG sidebar icons and 140 ms hover transitions with stable hitboxes, selected/focus/disabled states, compact accordion hover bounds, independently sized Farming cards, and token-based Rift list spacing. Added persistence/failure, executor/cache, upload retry, wardrobe, collection, gear, Bestiary, and actual GuiLib paint/hover regressions.
-
Unified Settings, Database Explorer, and Profile Viewer typography, controls, headers, navigation, cards, and palette through shared logical-pixel tokens. Profile Viewer uses denser responsive overview/progression cards and compact player context; narrow sidebars retain icon navigation. GuiLib remains responsible for scaling and pointer conversion.
-
Appearance now includes a lightweight live theme/accent/size preview and Reset to Default; size dragging still commits on release without resetting the selected category. Explorer cards omit redundant raw armor identifiers while preserving them in details. Added actual GuiLib cascade regressions across window sizes and GUI sizes; native Minecraft hover tooltips retain Minecraft's own scale/placement.
-
Escape now closes all ExoScanner screens directly to Minecraft, including focused inputs, dropdowns, and item dialogs. Back buttons retain internal navigation; queued screen-open requests are cleared on Escape.
-
/exo dbopens the local Database Explorer. Armor/color searches (/exo search,/exoarmorsearch,/findsimilararmor) open it with validated canonical armor, color, metric, tolerance, type, and time filters. Player searches and other result commands retain their behavior. -
Profile Viewer caches ten recently viewed players by UUID with LRU eviction and a five-minute freshness window, shares concurrent requests, retains profile/page navigation, and reuses bounded background preparations. Refresh explicitly retrieves live data.
-
Fresh Profile Viewer responses automatically scan available supported inventories/loadouts/backpacks through the existing API armor classifier and serialized database writer. Cached views do not create sightings; native colors and name-marked modern dyes remain excluded. Modern serialized item components are adapted without constructing Minecraft items off-thread.
-
Fixed HOTM XP, nodes, and selected abilities for the current
skill_treeAPI structure, retaining legacy mining data. Copper reads member Garden data, including explicit zero. Farming contests show SkyBlock calendar dates, recorded medals, collection, placement, and reported participant percentages; shared labels support camelCase and readable identifier values. -
Added Show/Hide Seymour filtering before pagination, counts, saved searches, watch refresh, set matching, and exports. Removed the redundant Item History tab while retaining item-level Ownership History. Seymour-specific details and preview badges now require Seymour classification.
-
Added optional local JSONL sighting metadata: earliest known retained baseline, latest sighting, recorded count since tracking began, and last scan method. Newer observations update unchanged items; snapshot timestamps prevent duplicate/replayed counts. Imports conservatively merge aggregates rather than summing overlapping counts. Legacy lifetime totals remain unknown; ownership history, export columns, and upload schema v1 are preserved.
-
Refined GUI Size to 0.05 steps with stable two-decimal commits on release/keyboard adjustment, shared absolute scaling, viewport-bounded windows, centered action labels, a themed Search border, and 140 ms color hover transitions. Database item details use one centered scrollable overlay at all scales instead of switching layouts at a viewport breakpoint.
-
Added regressions for query migration, command registration, player caching/coalescing, current/legacy profile fields, automatic armor scanning, Seymour filtering/export parity, and sighting persistence/idempotency. In-game visual and pointer checks are documented in
docs/5.3-improvements.md. -
Fixed clickable Profile Viewer progression cards inheriting horizontal button layout. Cards now wrap long headings and values, use compact content-sized heights, and adapt columns to available space while keeping the header fixed and sidebar/content independently scrollable.
-
Added a searchable, crop-filtered Farming contest browser with numeric SkyBlock date sorting, collection sorting, eight contests per page, and individual record inspection. Missing counts remain unavailable; raw IDs and unknown fields remain inspectable.
-
Moved dungeon floor selection and floor records above class levels. Activity pages preview relevant carried tools instead of repeating equipped armor/equipment. Pets support active-first, rarity, level and name sorting, rarity filters, compact expandable details, and readable item/skin names with raw IDs on hover.
-
Reorganized the Profile Viewer into a compact live-profile workspace: real Minecraft player heads, a profile dropdown, grouped scrollable navigation, per-page scroll restoration, shared GUI scaling, and responsive light/dark theme styling.
-
Rebuilt Overview around numeric wealth/level cards, a progression snapshot, linked combat/skill metrics, equipped item previews, the active pet, and collapsible profile details with a copyable UUID. Added click-to-inspect Minecraft tooltip dialogs for inventory items and pets, while preserving native hover tooltips, wardrobe layouts, grouped backpacks, and local Database Sightings navigation.
-
Unified skill, pet, Catacombs/class, HOTM, Garden and Slayer progression cards. Viewer bars show progress within the current level, with accumulated XP and remaining XP on hover; skill caps remain profile-specific. Added clearer dungeon mode/floor controls, grouped Mining dashboards, crop/fishing collection sections, and compact Rift resource cards. Unreported collection quantities remain unavailable.
-
Paginated searchable pet collections at 24 cards per page and memoized raw-data tables at 180 rows per page, cached reconstructed items, and moved decoded inventories/dashboard preparation onto the background executor with bounded snapshot caches. Late requests cannot overwrite newer player/profile selections or update a closed viewer; Refresh preserves the chosen profile and inventory subview. Added regression coverage for missing/zero values, progression boundaries, active pets, 1,200-pet pagination, executor routing, and cache isolation/eviction.
-
Redesigned Set Finder cards with a uniform four-column armor grid, Minecraft empty-slot silhouettes, target-color swatches, and compact piece-coverage bars. Exact and approximate matches are labeled separately, with actual observed colors and ΔE00/ΔE76 distances.
-
Added candidate counts and paginated per-slot inspection without changing existing color filtering or set grouping. Primary items are chosen by closest color then stable identity; all matching records remain inspectable. Icon clicks open the existing detail panel without resetting filters or result scroll, and native item tooltips include database metadata. Empty slots remain inactive, and four observed pieces are explicitly not presented as a verified owned set.
-
Added CIE76 tolerance alongside Exact color and CIEDE2000 in Database Color Search and Set Finder. The selected metric controls matching, distance sorting/labels, saved searches, watch refresh, pagination, and filtered exports; older saved queries default to CIEDE2000. Both tolerance modes reuse the existing 0–30 ΔE control and shared color algorithms.
-
Renamed Historical Player Sightings to Local Player Records to clarify that it searches latest retained player associations.
-
Added persistent, paginated Ownership History for items with valid item UUIDs. Observed player changes (including A → B → A) are embedded in the existing JSONL row, preserved through reloads, shard moves, maintenance, and compatible JSONL imports. Older imports merge evidence without reverting the latest player; repeated same-player scans and UUID-preserving name changes do not create transfers.
-
Existing retained records supply the history baseline; already-lost owners cannot be reconstructed. UUID-less records receive no ownership history. History records observed possession rather than verified trades and stays local; CSV/XLSX columns and central upload payloads remain unchanged.
-
Rounded Skills-tab XP labels and hover totals to whole numbers without changing the XP used for levels or bar fills. Added progress bars within the current Catacombs/class level and more space above the dungeon floor selector.
-
Combined backpack entries into a single Backpacks inventory option, with previous/next arrows cycling bags in numeric order. Unavailable backpacks remain navigable, and oversized bags retain all contents through additional pages.
-
Reworked armor and equipment wardrobes into Hypixel-style nine-column, four-row grids with numbered page buttons, correct piece order, and equipped-set highlighting when reported. Empty set positions are preserved, and modern API set IDs now display as one-based wardrobe numbers.
-
Fixed legacy flower variants for Moonflower, Sunflower, Wild Rose, and Caducous Stem collection icons; bundled missing Mole, Subzero Wisp, Ankylosaurus, Hedgehog, Mammoth, and Spinosaurus base skull textures. Pets with missing skin data now say No skin applied.
-
Dungeon floors now show completions, fastest S+/S runs, and best score, with other records behind a per-floor Advanced Stats control. Added Catacombs and all five class levels from their XP curves.
-
Replaced Rift statistics dumps with explicit timecharm counts/names, current/lifetime motes, visits, grubber stacks, found cats, and unlocked eyes. Unreported API fields remain unavailable.
-
Fixed equipped armor/equipment decoding for individual-item loadout NBT, direct payloads, and older top-level inventory fields; invalid loadouts no longer replace valid legacy gear.
-
GUI Size now applies on mouse release (or a keyboard step), while the slider thumb and numeric label follow the draft value without rescaling the window during a drag.
-
Profile Viewer purse and bank cards use single-line compact coin values with full rounded balances on hover. Slayer bars now show total accumulated XP against the next cumulative level threshold, such as
100.5k / 400k, instead of progress within the current level. -
Item watchlist entries now show the actual locally recorded dyed piece and a labeled hex-color swatch. Missing items are explicitly marked unavailable; previews are resolved together on the background executor.
-
Fixed Watchlist Apply/Edit converting unset saved dates into invalid
0date filters. Real saved dates now use the GUI date format, legacy first-sighting filters are removable, and Edit uses the same search-refresh path as Apply. -
Added spacing above item-detail and watchlist action buttons. Adding/removing filters now explicitly invalidates pending results and refreshes the first result page; both Clear Filters controls preserve the search text, sort, and page size. Applying a saved search also resets pagination.
-
Left-aligned Database sidebar labels using the shared config-menu structure. Moved Actions into the GUI overlay layer so sorting controls cannot cover the menu; clicking outside or pressing Escape dismisses it. Aligned the labeled armor family and piece selectors.
-
Fixed
/exo db updateto persist canonical armor keys, family, and piece metadata for reforge-prefixed legacy records, including Lapis display-name aliases. Repaired records move to canonical JSONL shards before deduplication and index rebuilding; known owners survive incomplete duplicate rows. -
Refined Database Explorer cards with larger dyed item models, armor identifiers, Seymour tiers, truncated long names, and right-click collector actions. Item details now open in an animated side panel (full-width overlay on small screens) while preserving results and pagination.
-
Consolidated exports and Save Search into Actions, added removable filter chips, compact local statistics, oldest/classification sorts, 20–100 record page sizes, Ctrl+F search focus, and separate Color Search / Set Finder controls with labeled ΔE tolerance. Tabs preserve their filters and page.
-
Warmed Database light surfaces, aligned toolbars and navigation, and improved compact card and detail styling across both themes. Cached statistics and normalized search text by database revision and bounded dyed-preview reuse. First sightings and observation totals remain unavailable where the JSONL schema does not retain them.
-
Added a Database Clear button that resets search/filter/player state. Back now navigates out of item details, player searches, and subsections before returning to a parent screen; command-opened root views no longer close from Back. Database tabs retain their own search filters and page.
-
Unified Database and configuration window styling, compact text/icons, theme accents, and real GuiLib scaling. Appearance now includes a persistent GUI Size slider, independent of Minecraft's scale, with bottom-left settings shortcuts. Returning from Appearance preserves Database navigation.
-
Replaced Database item previews' vanilla tooltips with themed GuiLib tooltips that share the interface font, palette, and GUI scale while showing recorded item/color/sighting information.
-
Reduced the Database Explorer window size and content padding. Inventory highlights are suppressed only on Database Viewer screens; the saved highlighting setting and other screens retain their behavior.
-
Database color fields and swatches now accept ExoScanner's named colors (including red, dark blue, cyan, navy, and ice), resolving them to canonical hex values for search, saved filters, and exports.
-
Database Explorer now displays Velvet Top Hats as leather helmets, Cashmere Jackets as leather chestplates, Satin Trousers as leather leggings, and Oxford Shoes as leather boots, preserving recorded colors even when Seymour piece metadata is missing or incorrect.
-
Corrected Database Explorer to use only the existing local
ExoScanDatabaseJSONL shards. Removed the draft central read client, read-service URL, Worker query endpoints, D1 projection migration, and separate Explorer journal; central scan synchronization remains upload-only. -
Preserved the native SBO Explorer, color/set search, item details, player/profile links, analytics, and local watchlist. Details now show the latest retained sighting without inventing earlier owners, first-seen dates, timelines, or total scan counts.
-
Added filtered CSV/XLSX exports through the existing export writers, database-change cache invalidation, indexed family prefiltering, stable pagination, cancellable background queries, and serialized watchlist writes. Existing journal files are left untouched; old remote saved filters are treated locally with stale status cleared.
-
Added local JSONL integration, query/pagination/color/set/player/analytics/watchlist/threading regressions and an upload-only HTTP transport check. No production deployment, destructive migration, or scan-record conversion is required.
-
The experimental profile viewer is now disabled by default. Enable it under Settings > Debug > Enable Profile Viewer (Experimental) to access
/exo profile,/exoprofile, and the configuration-header button; the setting takes effect without a restart. -
Reorganized Overview statistics into persistent expandable categories; added skill progression cards, pet levels/rarity sorting and skull icons, collection category navigation with actual item icons and tier progress, and Catacombs/Master Mode floor selectors.
-
Integrated backpacks into Inventory, consolidated armor and equipment loadouts into nine-set paginated subviews, and added Rift Stats/Inventory/Ender Chest views. Museum is temporarily hidden while its implementation remains available.
-
Rebuilt Farming and Fishing around the reference layouts with gear, contests/chips/Garden information, catch statistics, trophy fish/frog records, and shared themed panels and progress bars.
-
Centralized compact/exact number formatting, large-number suffixes, Unix date conversion, and elapsed-time displays. Added verified Hypixel/NEU skill, collection, pet, skin, and trophy metadata snapshots with attribution.
-
Corrected legacy numeric armor material selection and prevented modern item decoding from swallowing legacy names, lore, dyes, and counts. Dyed armor tooltips now append the actual uppercase RGB hex color.
-
Unified the profile viewer's main inventory, armor, and equipment into a compact loadout with Minecraft slot ordering and the hotbar below the inventory. Consolidated backpacks behind one persistent selector, preserving container dimensions and empty slots.
-
Added Slayer level progress bars with per-level XP, total-XP hover tooltips, maximum-level states, and thresholds verified against NEU's leveling data. Purse and bank values now round half-up to whole coins with consistent grouping.
-
Fixed transformed skull helmets (including Royal Mineral skins) falling back to leather armor: embedded skull identity and textures now take precedence over base material metadata. Modern item components and native tooltips remain intact.
-
Standardized profile-viewer spacing, typography, theme-aware inventory colors, dropdowns, progress bars, and responsive layout. Inventory decoding now runs off the client thread, and equipped loadout armor/equipment is supported.
-
Added a native SBO-styled SkyBlock Profile Viewer (
/exo profile [player]or/exoprofile [player]) with official Mojang/Hypixel lookup, profile switching, cached refreshes, overview/progression sections, interactive Minecraft inventory rendering and tooltips, pets, collections, dungeons, mining, farming, fishing, museum, Rift, search, and pagination. -
Integrated Hypixel's official SkyBlock item definitions, models, and textures for profile-viewer inventory items. The viewer resolves the live API's
item_modelidentifiers directly and retains vanilla-material fallbacks for items without an official model.
Added
- Rebuilt the configuration screen with GuiLib in the visual language of SkyBlock Overhaul: a responsive dark window, sidebar navigation, live cross-category search, animated hover/focus states, rounded controls, color pickers, sliders, dropdowns, editable lists, collapsible macro cards, and in-screen hotkey capture.
- Added an Appearance tab with persistent light/dark modes and a live, user-selectable accent color applied across controls, selection states, focus rings, and highlights.
Changed
- Replaced the Cloth Config screen dependency with GuiLib 0.12.9 and Fabric Language Kotlin while retaining the existing
/exo configentry point, configuration schema, save/reload behavior, and all settings. - Stored command and warp macro modifiers now use an ExoScanner-owned compatibility helper instead of Cloth Config runtime classes; the persisted modifier bit format is unchanged.
Fixed
- The Appearance accent color now updates title text, section headings, sidebar icons, and the ExoScanner heading glow in dark mode instead of leaving them cyan.
- Profile-viewer items no longer show the magenta missing-texture checkerboard when live Hypixel metadata references a model absent from the bundled official pack; those items now retain the server-provided player-head skin or their vanilla fallback model.
- Fixed the profile viewer's Inventories tab failing to render when it encountered a player head. Skull items now preserve the server-provided SBPV-style texture profile ahead of optional item-model overrides.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:DjlYVzoU:WWAOZ8RZ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DjlYVzoU:WWAOZ8RZ"
}

