Skip to content

A Minecraft mod that integrates Spaced Repetition System (SRS) flashcards into gameplay. It interrupts the game with review cards based on specific in-game triggers like dying, breaking blocks, or timers.

License

Notifications You must be signed in to change notification settings

DedInc/learnplay

Repository files navigation

LearnPlay

A Minecraft mod that integrates Spaced Repetition System (SRS) flashcards into gameplay. It interrupts the game with review cards based on specific in-game triggers like dying, breaking blocks, or timers.

Works on Fabric, Forge, NeoForge, and Quilt via Architectury.

Motivation

Most "educational games" are boring because the gameplay is an afterthought. This mod takes the opposite approach: you play normal Minecraft, and the learning is injected via triggers. The idea is to associate the "pain" of a death or the repetition of grinding resources with memory reinforcement.

Mechanics

Spaced Repetition (SRS)

The mod uses a fixed interval system for flashcards. It's not as complex as Anki's algorithm, but it gets the job done for casual review.

Intervals: 10m -> 20m -> 1d -> 3d -> 7d -> 14d -> 30d -> 60d -> 120d -> 240d

  • Remember: Moves card to the next interval.
  • Forgot: Resets card to 10 minutes (Level 0).

Triggers

Events that force a review session:

  • Death: Configurable. Default is every 2 deaths.
  • Timer: Fixed interrupt every X minutes.
  • Block Break: Triggers after breaking N blocks (supports whitelist).
  • Entity Kill: Triggers after killing N mobs.
  • Chat: Regex matching (rarely used, but exists).

Usage

  1. Install the .jar and Architectury API.
  2. Press I in-game to open the manager.
  3. Create a Deck and add Cards manually in the GUI.
  4. Enable the deck.

The mod saves progress per player UUID in config/learnplay/player_progress/.

Configuration

Main config file: config/learnplay/config.json.

You can edit this while the game is running; it should hot-reload on the next trigger check, but a restart is safer.

{
  "triggers": {
    "enableDeathTrigger": true,
    "enableTimerTrigger": false,
    "deathTriggerEveryNDeaths": 2,
    "timerIntervalMinutes": 15,
    "blockBreakTriggerThreshold": 100,
    "blockBreakWhitelist": "stone,dirt,oak_log,iron_ore,diamond_ore",
    "entityKillTriggerThreshold": 10,
    "entityKillWhitelist": "zombie,skeleton,creeper,spider,enderman"
  },
  "maxCardsPerSession": 20,
  "maxNewCardsPerDay": 10,
  "maxReviewsPerDay": 100,
  "pauseGameDuringReview": true,
  "showHudStats": false,
  "keybindCode": 73
}

Data Structure

If you want to mass-import cards, it's easier to generate the JSON files externally than using the in-game GUI.

Decks are located in config/learnplay/decks/. Format:

{
  "id": "deck_math_101",
  "name": "Basic Math",
  "cards": [
    {
      "id": "card_1",
      "question": "2 + 2",
      "answer": "4"
    }
  ]
}

Build

Requires JDK 21+.

# Build all
./gradlew build

# Specific loaders
./gradlew :fabric:build
./gradlew :neoforge:build

Output jars land in <loader>/build/libs/.

About

A Minecraft mod that integrates Spaced Repetition System (SRS) flashcards into gameplay. It interrupts the game with review cards based on specific in-game triggers like dying, breaking blocks, or timers.

Topics

Resources

License

Stars

Watchers

Forks

Languages