All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Remnant

Remnant

by bibireden • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Remnant banner

BML 1.0 Build GitHub CurseForge

Fabric NeoForge

Remnant

Remnant lets mods read registered player data after a player logs out. It is a server-side library for Minecraft 1.21.1 on Fabric and NeoForge, continuing Offline Player Cache (OPC).

An integrating mod registers a value, a Mojang Codec, and a serializer for reading that value from a live player. On disconnect, Remnant snapshots every registered value into world SavedData. When the player comes back, the stale offline snapshot is removed and reads return to the live player.

Use it for leaderboards, statistics, progression, and server tools that need player data while someone is offline. Remnant stores the values registered by integrating mods.

Requirements

  • Fabric 1.21.1 — requires Fabric API and Fabric Language Kotlin
  • NeoForge 1.21.1 — requires Kotlin for Forge
  • Java 21

Install the JAR for your loader. Remnant does not add player-facing features on its own; other mods use its API.

Commands

All commands require permission level 2.

/remnant keys
/remnant players

/remnant get name <name> <key>
/remnant get uuid <uuid> <key>

/remnant list name <name>
/remnant list uuid <uuid>

/remnant remove name <name> <key>
/remnant remove uuid <uuid> <key>

/remnant clear name <name>
/remnant clear uuid <uuid>

get and list can inspect either a live player or an offline snapshot. remove and clear only modify offline cache data.

For developers

A registered value is identified by a ResourceLocation, serialized with a Mojang Codec, and produced from a live Player.

public static final PlayerLedgerKey<Contract> CONTRACT = PlayerLedger.register(
    ResourceLocation.fromNamespaceAndPath("example", "contract"),
    Contract.CODEC,
    player -> new Contract(player.getName().getString(), true)
);

Read through PlayerLedger.getPlayer(...) to get either a live LedgerPlayer.Online or a cached LedgerPlayer.Offline.

For Modrinth Maven, use the project ID so the coordinate stays stable if the public slug changes:

repositories {
    exclusiveContent {
        forRepository {
            maven("https://api.modrinth.com/maven")
        }
        filter {
            includeGroup("maven.modrinth")
        }
    }
}

dependencies {
    implementation("maven.modrinth:oLPaySSb:<version>")
}

Full API examples, source, development notes, and release history are available on the main GitHub repository.

Links

Sponsor

Use code bareminimum to get 25% off your first month.

License

Remnant is licensed under the Bare Minimum License (BML) v1.0. See the full license.

How to Install Remnant (Mod)

Remnant by bibireden is verified for Fabric, Forge, Neoforge, Quilt across Minecraft versions 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1 (latest release: 3.0.0+1.21.1-fabric, file size: 51 KB). Follow the steps below to install it safely from ModCraft.tv:

  1. Click the Download button above and select your Minecraft version (1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1) and platform (Fabric, Forge, Neoforge, Quilt).
  2. Make sure you have the compatible loader or environment installed for Fabric, Forge, Neoforge, Quilt.
  3. Move the downloaded Remnant file into your Minecraft .minecraft/mods folder and launch the game.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Fabric
28d ago 1
1.21.1
Neoforge
28d ago 1
1.20.1
Forge Neoforge
last yr. 1
1.20.1
Fabric Quilt
last yr. 1
1.21
Neoforge
last yr. 1
1.21
Fabric Quilt
last yr. 1
1.21
Neoforge
last yr. 1
1.21
Fabric Quilt
last yr. 1
1.20.1
Forge Neoforge
last yr. 1
1.20.1
Fabric Quilt
last yr. 1
1.20.1
Forge Neoforge
last yr. 1
1.20.1
Fabric Quilt
last yr. 1
1.20.1
Forge Neoforge
last yr. 1
1.20.1
Fabric Quilt
last yr. 1
1.20.x
Fabric Quilt
last yr. 1
1.20.1
Forge Neoforge
last yr. 1
1.20.1
Fabric Quilt
last yr. 1
1.20.1
Fabric Quilt
last yr. 1
1.20.1
Fabric
last yr. 1
## [3.0.0] - 2026-10-07

Stable release for Minecraft 1.21.1 on Fabric and NeoForge. Remnant continues Offline Player Cache (OPC).

### Added

  • Separate Fabric and NeoForge publishing jobs for Modrinth and CurseForge, plus a single GitHub release containing both loader JARs.
  • Manual recovery options for each loader and destination, so one failed upload can be retried without repeating successful uploads.
  • Release validation for version tags, loader JARs, and missing marketplace credentials.
  • A refreshed Remnant logo and banner based on the original OPC artwork, with a 256×256 icon and a 1920×640 banner optimized for web use.
  • GitHub, Modrinth, and CurseForge descriptions, with the Bare Minimum Studios BisectHosting banner and sponsor code.
  • MixinMCP 1.5.0 development tooling and an IntelliJ/Gradle setup guide.
  • Dependabot configuration for Gradle and GitHub Actions maintenance.

### Changed

  • Public versions use 3.0.0+1.21.1-fabric and 3.0.0+1.21.1-neoforge; the internal mod version remains 3.0.0 and the GitHub tag is v3.0.0+1.21.1.
  • Publishing builds both loaders once, then uploads to each destination independently with stable Release status.
  • GitHub release authentication uses the automatic GITHUB_TOKEN with permission to write repository contents.
  • Publishing stages verified runtime JARs under consistent filenames and uses only the current release's changelog section as release notes.
  • Project version and Maven group are configured in gradle.properties.
  • Builds use Java 21, Gradle build and configuration caches, and a checksum-verified Gradle distribution.
  • Gradle parallel execution is disabled for the MixinMCP/Vineflower development workflow to reduce decompilation memory pressure.
  • Cached UUID and name collections now return snapshots instead of mutable backing-map views; the registered-key map is exposed as an unmodifiable view.
  • Offline cache loading and per-key serialization handle malformed or failing data more safely.
  • Documentation reflects the current API, commands, dependencies, project links, and BML v1.0 license. Maven examples use Modrinth project ID oLPaySSb.
  • GitHub Actions and mc-publish references remain pinned to commit SHAs.

### Removed

  • Unused repositories, buildscript dependencies, compiler flags, and the unused maven-publish plugin.

### Fixed

  • Build-tool incompatibilities by aligning Gradle 9.8.0, Cloche 0.18.10, Kotlin 2.2.21, and matching Fabric Language Kotlin, with Kotlin 2.2 language/API output.
  • Fabric dependency transforms running before their required mapping archive was generated.
  • Duplicate ledger registrations returning an unregistered key instead of rejecting the duplicate ID.
  • Offline player persistence using an unstable player-data directory when a player entry is closed.
  • Username changes leaving inconsistent UUID/name mappings, and case-sensitive offline name lookups.
  • Command registration conflicts involving /remnant clear.
  • get and list failing to handl
...
## [3.0.0] - 2026-10-07

Stable release for Minecraft 1.21.1 on Fabric and NeoForge. Remnant continues Offline Player Cache (OPC).

### Added

  • Separate Fabric and NeoForge publishing jobs for Modrinth and CurseForge, plus a single GitHub release containing both loader JARs.
  • Manual recovery options for each loader and destination, so one failed upload can be retried without repeating successful uploads.
  • Release validation for version tags, loader JARs, and missing marketplace credentials.
  • A refreshed Remnant logo and banner based on the original OPC artwork, with a 256×256 icon and a 1920×640 banner optimized for web use.
  • GitHub, Modrinth, and CurseForge descriptions, with the Bare Minimum Studios BisectHosting banner and sponsor code.
  • MixinMCP 1.5.0 development tooling and an IntelliJ/Gradle setup guide.
  • Dependabot configuration for Gradle and GitHub Actions maintenance.

### Changed

  • Public versions use 3.0.0+1.21.1-fabric and 3.0.0+1.21.1-neoforge; the internal mod version remains 3.0.0 and the GitHub tag is v3.0.0+1.21.1.
  • Publishing builds both loaders once, then uploads to each destination independently with stable Release status.
  • GitHub release authentication uses the automatic GITHUB_TOKEN with permission to write repository contents.
  • Publishing stages verified runtime JARs under consistent filenames and uses only the current release's changelog section as release notes.
  • Project version and Maven group are configured in gradle.properties.
  • Builds use Java 21, Gradle build and configuration caches, and a checksum-verified Gradle distribution.
  • Gradle parallel execution is disabled for the MixinMCP/Vineflower development workflow to reduce decompilation memory pressure.
  • Cached UUID and name collections now return snapshots instead of mutable backing-map views; the registered-key map is exposed as an unmodifiable view.
  • Offline cache loading and per-key serialization handle malformed or failing data more safely.
  • Documentation reflects the current API, commands, dependencies, project links, and BML v1.0 license. Maven examples use Modrinth project ID oLPaySSb.
  • GitHub Actions and mc-publish references remain pinned to commit SHAs.

### Removed

  • Unused repositories, buildscript dependencies, compiler flags, and the unused maven-publish plugin.

### Fixed

  • Build-tool incompatibilities by aligning Gradle 9.8.0, Cloche 0.18.10, Kotlin 2.2.21, and matching Fabric Language Kotlin, with Kotlin 2.2 language/API output.
  • Fabric dependency transforms running before their required mapping archive was generated.
  • Duplicate ledger registrations returning an unregistered key instead of rejecting the duplicate ID.
  • Offline player persistence using an unstable player-data directory when a player entry is closed.
  • Username changes leaving inconsistent UUID/name mappings, and case-sensitive offline name lookups.
  • Command registration conflicts involving /remnant clear.
  • get and list failing to handl
...
## Changes 🌽
  • Added extension (reified) functions that could prove to be useful to Kotlin users.
## Changes 🌽
  • Added extension (reified) functions that could prove to be useful to Kotlin users.
## Changes 🌽
  • Added extension (reified) functions that could prove to be useful to Kotlin users.
## Changes 🌽
  • Added extension (reified) functions that could prove to be useful to Kotlin users.
## Changes 🌽
  • Updated to 1.21 (yes, other mods will follow suit as well).
## Changes 🌽
  • Updated to 1.21 (yes, other mods will follow suit as well).
## Changes 🌽
  • This update just served to remove a duplicate initializer (Forge).
## Changes 🌽
  • This update just served to remove a duplicate initializer (Forge).
## Additions 🍎
  • Hey, hey, I figured out how to do a multi-loader project! (sorta)
  • This update is compatible for (hopefully) all loaders.

## Changes 🌽
  • Rewrote the cache (again).
  • The cache now uses a record-based system for registering with a provided Codec.
  • Register your record using OfflinePlayerCacheAPI#register.
  • Get your cache using OfflinePlayerCacheAPI#getCache.
  • Proper documentation will arrive upon release.*
## Additions 🍎
  • Hey, hey, I figured out how to do a multi-loader project! (sorta)
  • This update is compatible for (hopefully) all loaders.

## Changes 🌽
  • Rewrote the cache (again).
  • The cache now uses a record-based system for registering with a provided Codec.
  • Register your record using OfflinePlayerCacheAPI#register.
  • Get your cache using OfflinePlayerCacheAPI#getCache.
  • Proper documentation will arrive upon release.*
## Additions 🍎
  • Hey, hey, I figured out how to do a multi-loader project! (sorta)
  • This update is compatible for (hopefully) all loaders.

## Changes 🌽
  • Rewrote the cache (again).
  • The cache now uses a record-based system for registering with a provided Codec.
  • Register your record using OfflinePlayerCacheAPI#register.
  • Get your cache using OfflinePlayerCacheAPI#getCache.
  • Proper documentation will arrive upon release.*
## Additions 🍎
  • Hey, hey, I figured out how to do a multi-loader project! (sorta)
  • This update is compatible for (hopefully) all loaders.

## Changes 🌽
  • Rewrote the cache (again).
  • The cache now uses a record-based system for registering with a provided Codec.
  • Register your record using OfflinePlayerCacheAPI#register.
  • Get your cache using OfflinePlayerCacheAPI#getCache.
  • Proper documentation will arrive upon release.*
alpha build but working, until actual publishing tools this is what will be used for maven
Remnant Icon
Download Remnant
Select game version
Select platform