Skip to content

RogueRust v4.0.0-testing

Pre-release
Pre-release

Choose a tag to compare

@RogueAssassin RogueAssassin released this 20 Sep 11:08
· 26 commits to main since this release

RogueRust Changelog

3.3.11-testing

  • Advanced project, assembly and runtime testing identity to 3.3.11; testing CI publishes the canonical 3.3.11-testing prerelease.
  • Added the shared IRogueSkinCatalogService catalogue with immutable read snapshots and generation tracking.
  • Added IRogueSkinService for validated, low-overhead in-place skin application.
  • Added IRoguePlayerSkinCacheService for generation-aware per-player effective-skin snapshots.
  • Added IRogueSkinSessionService for bounded 48-slot skin-browser paging, lifecycle state and cleanup.
  • Added runtime imported skin registration/removal with source and owner metadata so Workshop/custom skin workflows can update the catalogue without rescanning Rust definitions.
  • Added a persistent server-side skin manifest at oxide/data/RogueRust/RogueRustSkins/skin-manifest.json (and the equivalent Carbon data root), loaded on startup and atomically refreshed when Steam inventory definitions are available.
  • Added late Steam inventory-definition discovery without a compile-time Steamworks dependency, allowing the manifest to include Workshop definitions that are not present in the early ItemSkinDirectory snapshot.
  • Exposed Steam-manifest readiness and last-refresh metadata so plugins can distinguish cached/startup data from a fully established Steam skin catalogue.
  • Preserved native Rust/content skin aliases across runtime catalogue mutations.
  • Registered skin catalogue, application, player-cache and session services through RogueServices and the capability registry.
  • Redirect skin replacement remains guarded until state-preserving item replacement is validated against the current Rust server API.
  • Updated README and feature documentation for the RogueRustSkins backend platform.

3.3.8-testing

Binary embedded image foundation

  • Advanced project, assembly and runtime testing identity to 3.3.8.
  • Reworked packaged artwork around real binary .png assembly resources; legacy Base64 resource packaging is no longer used.
  • Valid embedded PNGs now follow the same proven direct-validation path as valid downloaded PNGs and are never unnecessarily decoded/re-encoded through Unity.
  • Retained Unity ImageConversion only as a normalization fallback for non-PNG embedded formats.
  • Added full PNG chunk/CRC/IEND validation before FileStorage registration.
  • Added immediate FileStorage round-trip verification after a new embedded image is stored.
  • Retained SHA-256 content deduplication, owner namespaces, stale CRC cleanup, persisted metadata and CommunityEntity identity handling.
  • This establishes the reusable local-only image foundation for RogueRustDeathNotes and future RogueRust plugin icons.

3.3.7-testing

Embedded asset delivery hardening

  • Advanced project, assembly and runtime testing identity to 3.3.7.
  • Embedded images are now fingerprinted before reuse; a packaged icon change invalidates the previous cached FileStorage record automatically.
  • Valid current embedded assets reuse their existing FileStorage CRC without decoding or storage work beyond initialization.
  • Stale CRCs are replaced and unreferenced FileStorage entries are cleaned up.
  • Added explicit diagnostics for missing assembly resources, CommunityEntity readiness and successful embedded-image registration including the resulting FileStorage CRC.
  • Retained local-only delivery: no HTTP, GitHub, SteamID or external image host is required.

3.3.6-testing

Embedded RogueRust icon assets

  • Advanced project, assembly, runtime and testing release identity to 3.3.6.
  • Added a dedicated src/Oxide.Ext.RogueRust/Icons/ asset folder for current and future RogueRust plugin artwork.
  • Added the RogueRustDeathNotes icon as an assembly embedded resource.
  • Extended IRogueImageLibraryService with an additive embedded-image resolver that validates the PNG, stores it once through Rust FileStorage, reuses content hashes, and persists normal ImageLibrary metadata.
  • Embedded assets require no SteamID, HTTP request, GitHub request or external image host at runtime.
  • Prepared RogueRustDeathNotes to consume its branded icon through the shared DLL ImageLibrary path.

3.3.5-testing

Vehicle catalogue / administration cleanup

  • Advanced project, assembly, runtime and default plugin-manifest identity to 3.3.5.
  • Expanded modular cars into distinct 2/3/4-module spawned cars and chassis with exact Rust item IDs, shortnames and prefabs.
  • Split submarines into solo/duo variants and added the motorbike-with-sidecar.
  • Added additive ItemShortname and ItemId descriptor metadata and populated validated prefab paths where available.
  • Kept existing service families intact for current plugins; this stage removes no shared non-UI contracts.
  • Enables AdminMenu and future plugins to prefer native Rust ItemId artwork and exact prefab identity over guessed image/spawn mappings.

3.3.5-testing

3.3.5 consolidates the current F1 administration, vehicle-catalogue and ImageLibrary hardening work into the active testing release.

Release identity

  • Advanced project, assembly, runtime and default plugin-manifest identity to 3.3.5.
  • Testing CI resolves the source version to v3.3.5-testing and keeps the stable/testing updater channels isolated.
  • Refreshed README, feature catalogue and F1 administration documentation for the current testing release.

RogueUI / F1 administration

  • Added reusable F1 workspace, top-navigation, category-bar, content, search, grid-cell and tile-action geometry.
  • Added shared F1 workspace/tab/tile component models and bounded grid-column calculation.
  • Added bounded catalogue filtering for dense item/vehicle browsers.
  • Added standard item amount tokens/actions for 1, 100, 1000 and native stack size.
  • Continued charcoal/slate surfaces, muted olive selection and restrained orange interaction accents.
  • F1 helpers remain stateless and introduce no polling/timers/per-frame work.

Vehicle catalogue

  • Added shared IRogueVehicleService / RogueVehicleService catalogue support.
  • Added stable vehicle descriptors and categories for Animals, Bikes, Boats, Cars, Helicopters, Misc, Siege and Trains.
  • Added bounded category/search filtering and stable image keys for F1/AdminMenu consumers.
  • Vehicle entity spawning remains game/plugin-side until safe spawn resolution is finalized.

ImageLibrary hardening

  • Valid PNG downloads now use a direct validation/storage path rather than being unnecessarily decoded/re-encoded through Unity.
  • Non-PNG sources retain Unity image decode/PNG normalization.
  • Added PNG header/IHDR dimension validation while retaining source/PNG/dimension limits.
  • Added five-minute failure cooldowns to prevent repeated broken URL/404 requests from hammering the server.
  • Retained SHA-256 content deduplication, Rust FileStorage persistence, owner namespaces, reverse index, warmup and telemetry.
  • RogueRust metadata remains persisted under oxide/data/RogueRust/ImageLibrary/images.json.

CI/API compatibility correction

  • Run #89 compiled successfully but failed pre-stable validation because the source-contract exporter treated public implementation members inside the internal RogueImageLibraryService class as public SDK API.
  • The compatibility comparison now excludes that internal implementation file while continuing to validate the actual public IRogueImageLibraryService contract.
  • This prevents implementation-only formatting/refactoring from being misclassified as a breaking public API removal.

3.3.1-testing

  • Continued the administration/backend integration line with RogueUI design tokens, shared teleport/vanish state and ImageLibrary-v2 direction.
  • Maintained isolated testing release/update metadata.

3.3.0-testing

  • Began the coordinated administration-platform overhaul with shared vanish state, RogueUI design/font primitives and shared teleport direction.

3.0.0

  • Consolidated the mature 2.x framework into the stable 3.x platform with diagnostics, lifecycle safety, API compatibility checks and public documentation.

2.x development summary

  • 2.9.0: bounded stability/soak monitoring.
  • 2.8.0: developer platform, capability contracts and API-baseline release gating.
  • 2.7.0: resilience/circuit breakers and drain-first shutdown.
  • 2.6.0: ImageLibrary reverse indexes, owner namespaces/pressure and warmup.
  • 2.5.0: UI/data efficiency and reusable DB command templates.
  • 2.4.0: adaptive observability and recent metrics.
  • 2.3.0: pressure attribution, HTTP protection and image content dedupe.
  • 2.2.0: runtime pressure/lifecycle hardening.
  • 2.1.0: performance/public-package consolidation.