Nostalgic Memories
Stage progression for modpacks. Lock whole mods, single items, item tags or recipes behind memories. Until a player recovers a memory, everything it locks is hidden from JEI and can't be crafted, placed, used or worn. When they recover it, a "Memory Recovered" title plays and the items fade back into JEI.
Memories are plain datapack JSON files. Players recover them through the requirements set. These can be commands, items, advancements, and more. See below for more details.
How It Works
1. Add memory files to a datapack (or KubeJS data folder) at data/<namespace>/nostalgicmemories/memories/<name>.json.
2. Everything a memory locks is hidden in JEI and blocked from crafting for players who haven't recovered it.
3. Grant it with /memories grant <player> <namespace:name> or whatever requirement you set.
4. The player sees "Memory Recovered", hears a sound, and the locked items appear in JEI right away.
Writing a Memory
{
"name": "Memory of Gears",
"hint": "Cogs turning in a dream you can't place.",
"locks": ["@create"],
"except": ["create:wrench"],
"collect": ["16x minecraft:andesite", "4x minecraft:iron_ingot"],
"unlock": {
"subtitle": "The gears start turning again",
"commands": ["give @s create:wrench"]
},
"disguise": true
}
| Field | What it does |
|---|---|
name |
Display name. Plain text or a text component ({"translate": "..."}). Required. |
hint |
Tooltip line on locked items. Default: "You can't quite remember how to use this…" |
locks |
What this memory locks. "@modid" locks every item from a mod, "#c:ingots/iron" locks an item tag, "minecraft:furnace" locks one item. @modid also hides that mod's fluids in JEI and locks enchanted books carrying its enchantments. Fluid ids and fluid tags work too. |
except |
Same format as locks. These stay unlocked even if locks matches them. |
recipes |
Extra recipes to lock by id ("minecraft:iron_block") or by namespace ("@create"), even when their result isn't locked. |
requires |
Memories the player must already have. /memories grant refuses until they do (add force to skip). |
advancement |
Earning this advancement recovers the memory automatically (once requires is met). |
collect |
Having all of these in the inventory recovers the memory automatically, KubeJS style: ["8x minecraft:cobblestone", "#c:ingots/copper", "3x @create"]. No count means 1. Counted across the whole inventory. |
disguise |
true (default): locked items show as Faded Memory with only the hint. false: real name plus hint. |
unlock |
What happens on recovery, see below. |
unlock options
| Field | Default |
|---|---|
announce |
true: show the title and play the sound |
title |
"Memory Recovered" |
subtitle |
the memory's name |
message |
none (chat message) |
sound |
minecraft:ui.toast.challenge_complete |
commands |
none. Run as the player at permission level 2, e.g. "give @s minecraft:iron_ingot 3" or a teleport to a story room |
What it Locks
- Crafting: the crafting table and inventory grid show no result.
- JEI: locked items are removed from the item list. Recipes whose result is locked, or whose id is in
recipes, are hidden too. - Using: right-clicking with the item, placing it, attacking or mining with it, and using it on mobs is disabled.
- Placed blocks: right-clicking a placed block from a locked mod (e.g. a machine found in a structure). Breaking it is still allowed. Can be turned off.
- Armor: locked armor is taken off (back into the inventory) once a second.
- Inventory (config): by default players can carry locked items from loot chests but not use them. Set
locked_items = "DROP"to stop them picking those items up.
Commands
All need permission level 2.
| Command | |
|---|---|
/memories grant <players> <memory> |
Recover a memory, with the title and sound. Add force to skip requires, or silent for no effects. |
/memories grant <players> all |
Recover every memory (no effects). |
/memories revoke <players> <memory|all> |
Forget memories. If a memory unlocks from an advancement, that advancement is taken away too, so the player can earn it again. A collect memory comes back within a second if the player still has the items. |
/memories has <player> <memory> |
Returns 1 or 0, for execute store result. |
/memories list [player] |
Show every memory and whether the player has it. |
/memories why [player] |
Say which memory locks the item in the player's main hand. |
Config
Server config, synced to clients: saves/<world>/serverconfig/nostalgicmemories-server.toml
| Option | Default | |
|---|---|---|
locked_items |
KEEP |
KEEP: carry but not use. DROP: can't pick up, dropped from inventory. |
lock_block_interaction |
true |
Block right-clicking placed blocks whose item is locked. |
creative_bypass |
true |
Creative players can use and craft locked items (they stay hidden in JEI). |
show_messages |
true |
Action bar message when a player tries to use something locked. |

