CS2 Cases

AnkiWeb addon 1285285941

Earn virtual dollars for answering flashcards, then spend them opening CS2-style cases, collecting, trading up, and gifting skins offline.
AI-generated summary; may contain mistakes.

statisticsgamificationmotivation

Open on AnkiWeb GitHub Ask about alternatives

AnkiWeb

Rating
3 (πŸ‘ 3 Β· πŸ‘Ž 0)
Updated
2026-07-18
Anki versions
2.1.1~
Description language
en

Maintenance

active

  • Last update or commit was 75 days before the snapshot (2026-07-18).
  • The repository has 6 test files.

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
2.1.1+2026-07-18
History across monthly snapshots

Loading…

Similar addons

AnkiSlots

Rewards Anki reviews with virtual dollars for slots, blackjack, higher-or-lower, patient statues, and optional leaderboard competition, saving progress locally without affecting scheduling.

statisticsgamification

Rating 0 πŸ‘ 0 Β· πŸ‘Ž 0 Anki 2.1.1~ Updated 2026-09-11
Break Bank

Rewards consistent studying with configurable break time accumulated in a bank and virtual dollars for correct cards, daily streaks, and redeemable rewards.

progress-trackinggamificationmotivationtimer

Rating 0 πŸ‘ 0 Β· πŸ‘Ž 0 Anki 26.08.2~ Updated 2026-08-26
Card Speed Tracker

Times cards reviewed per minute with a countdown and high score, and awards coins spendable in an extensible item shop.

statisticsgamificationtimer

Rating 5 πŸ‘ 5 Β· πŸ‘Ž 0 Anki 2.1.1~ Updated 2025-03-19

README

CS2 Cases β€” an Anki add-on

Turn studying into a reward loop. Every flashcard you answer earns virtual in-app dollars; you spend them in a built-in market to open CS2-style weapon cases and collect skins β€” the decelerating reel, real skin art, rarity colours, wear/float, StatTrakβ„’, the hidden gold "Rare Special Item" tier, and the real CS2 sounds.

All currency is virtual. No real money is involved, nothing can be bought or cashed out, and there is no connection to your Steam account or inventory. This is a self-motivation toy for studying β€” not gambling, and not a way to get real skins.

What you get

  • A dockable market panel inside Anki, and a full-window case-opening animation.
  • 206 real CS2 containers (all 42 weapon cases plus every souvenir package) with their 5,200+ real skins, real drop odds, wear tiers, float, and StatTrak.
  • Real market prices for sell-back and collection value (see Prices).
  • Trade-up contracts, favourites, per-case odds preview, and career stats.
  • Gift skins to friends with a copy-paste code β€” no account, no server (see Gifting).
  • A free case every day to get you started, and it all runs fully offline.

Install

  • One-click: download cs2_cases.ankiaddon from the releases, double-click it (or in Anki: Tools β–Έ Add-ons β–Έ Install from file…), and restart Anki.
  • Manual: copy the cs2_cases/ folder into your add-ons folder (Tools β–Έ Add-ons β–Έ View Files) and restart.

Requires Anki 23.10+ (Qt6). Tested on macOS; Windows/Linux should work but are less exercised β€” please report issues.

How to use it

  • Answer cards in the reviewer β†’ your balance ticks up $0.10 each.
  • The β˜… in Anki's toolbar (or Tools β–Έ CS2 Cases) opens the market panel, a sidebar you can drag out to float and dock back.
  • A free weapon case lands in your market the first time you review each day.
  • Opening a case takes over the whole Anki window with the reel and reveal. Click during the spin to skip to the result, then Open Another, Continue, or Sell.

The panel has five tabs:

  • Cases β€” browse every container; click one to see its full skin pool and real odds, then open it.
  • Inventory β€” search, sort, and filter; sell one skin or multi-select to bulk-sell; favourite skins to protect them.
  • Trade Up β€” pick 10 skins of one rarity (5 for Covert β†’ Gold) to forge one of the next tier, or hit Auto-fill to grab your cheapest eligible skins.
  • Friends β€” your Player ID, a box to redeem a friend's gift code, and your log of sent codes.
  • Stats β€” cards answered, cases opened, spend, collection value (cash + inventory), a rarity breakdown, and recent unboxes.

Prices and offline use

The add-on ships with a tiny offline starter set so it works the moment you install it. Tools β–Έ CS2 Cases: Update catalog does a one-time (~1–2 min) download of the full catalog, real market prices, and skin images, caching everything locally β€” after which it runs 100% offline.

Being transparent about how values are set, because it's the number you'll stare at:

  • Where the market lists a price for that exact skin + wear + StatTrak, that real price is used verbatim β€” about 94% of items.
  • For the combinations nobody currently lists (some StatTrak variants, rare knives), there is no real price to fetch, so the value is estimated from real market patterns β€” wear-decay and StatTrak-premium curves calibrated from thousands of priced skins. These are clearly approximations, and they're the only non-real values in the app.
  • Your inventory re-prices against the latest catalog every time it loads, so sell-back and collection value track the market rather than freezing at unbox time.

Prices and skin data come from the open ByMykel CS2 API and price tracker.

Gifting

Select a skin β†’ Gift β†’ paste your friend's Player ID (both of you find it in the Friends tab). You get a CS2GIFT-… code; send it however you like, and your friend pastes it into their Friends tab to receive the skin, tagged with your ID.

It's deliberately simple and trust-based, not secure. There's no server, no account, and it works offline. Codes are locked to one recipient so a code pasted in a group chat can't be grabbed by the wrong person, but they are not cryptographically protected β€” this is a toy to share skins between friends, not an anti-fraud system. Two honest caveats:

  • Favourites can't be gifted β€” unfavourite first.
  • There is no cancel: the code is the skin. It leaves your inventory the moment you generate the code (your Sent log keeps every code so it can't be lost, but if your friend never redeems it, that skin is gone).

The economy is fixed on purpose

Payout ($0.10/card), case prices (real market price + a fixed $2.49 key), and sell-back (100% of value) are locked in code and are not configurable. Everyone runs the same rules, which is what keeps trading skins between friends meaningful β€” a tunable payout would let anyone mint value at will. The currency is virtual regardless; this is about the game feeling fair, not about real stakes.

Privacy

The add-on makes no network requests except the catalog/image download you explicitly trigger from the menu. There is no telemetry, no account, and no contact with Steam. Your progress lives in a single local file (user_files/state.json).

Attribution & disclaimer

This is an unofficial fan project, not affiliated with, endorsed by, or sponsored by Valve Corporation. "Counter-Strike", "CS2", the case and skin names and artwork, and the in-game sounds are trademarks and copyrighted works of Valve β€” all rights to those assets remain with Valve. They're included here for personal, non-commercial use to recreate the case-opening experience as a study aid. If you represent Valve and want something removed, open an issue.

The substitute UI font is Chakra Petch (SIL Open Font License); drop a real Stratum2 at user_files/assets/fonts/stratum2.woff2 for an exact match. The add-on's own code is MIT licensed (see LICENSE); the bundled Valve assets are not covered by that licence and remain Valve's property.

For developers

Python is the authoritative engine β€” economy, seedable-RNG unboxing, real-price valuation, dataset import, and persistence, all unit-tested. Two webviews (the dockable market panel and the full-window opening overlay) are pure presentation talking to Python over Anki's pycmd bridge, so game logic never lives in the browser.

cs2_cases/
  economy.py unboxing.py store.py controller.py gifting.py   # pure logic (no Anki imports)
  data.py                                                    # catalog import, real prices, image cache
  reviewer_hook.py entry.py ui.py                            # Anki wiring (hooks, dock, overlay)
  web/                                                       # SPA: cases / inventory / trade-ups / friends / reel
  data/cases.json                                            # bundled offline starter set
  user_files/assets/                                         # bundled sounds + fonts (+ cached images)
tests/                                                       # 145 tests
docs/superpowers/                                            # design specs + implementation plans

Run the tests:

python3 -m unittest discover -s tests -v

They cover rarity-distribution accuracy, wear bands, seeded reproducibility, real-price valuation and its estimate fallbacks, buy/sell/bulk-sell/trade-up invariants, inventory revaluation, gift-code encode/decode and its trust-boundary validation, history/stats, and atomic persistence.

Build the installable add-on:

python3 scripts/build_ankiaddon.py

This writes dist/cs2_cases.ankiaddon, bundling the code plus Valve sounds/fonts and the starter dataset, and excluding per-user runtime files (your save, the downloaded catalog, and cached images).

Roadmap

Ideas under consideration: cobblestone/gamma-style packages, pattern-based inspection, and an equippable loadout.

Not planned: a global marketplace. Currency is minted by a local event ("you answered a card") in an open-source add-on on your own machine, so no server can prove a review really happened β€” which means a shared, public economy can't be protected from a single determined cheater, who would wreck it for everyone. Friend-to-friend gifting exists precisely because a small circle of people who trust each other doesn't need that enforcement. The reasoning is written up in docs/superpowers/specs/2026-07-17-friend-gifting-design.md.