Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Training lists duplicate classic puzzles because the training filter's set names don't match

Open Beginner friendly
#779 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
lua
Domain
game-dev

Research direction

Start in PuzzleLibrary.lua at invalidSetsForTraining and compare those names to the built-in set names in default_data/puzzles/Puzzles.json (puzzle_set_name_classic_set_1–6 vs puzzle_name_classic_set_1–6). Align the filter (or use a more stable key than the localized name). Then find where the training list is built and drop duplicate UUIDs so copies from puzzles/stock (example).json cannot sit next to the same built-in puzzles. Confirm by opening training and checking that classic puzzles no longer appear twice in a row.

Written by the indexing model from the issue text.

Description

Training sometimes shows the same puzzle twice in a row: solving it immediately brings up an identical copy. In my training list, 58 puzzles appear twice.

Causes

  1. invalidSetsForTraining in PuzzleLibrary.lua is meant to keep the classic sets out of training, but it lists puzzle_name_classic_set_1–6. The built-in sets in default_data/puzzles/Puzzles.json are named puzzle_set_name_classic_set_1–6, so nothing is filtered.
  2. The old puzzles/stock (example).json contains the same puzzles as "Classic set 1"–"Classic set 6". UUIDs are computed from puzzle content, so these copies share UUIDs with the built-in puzzles and sort right next to them. cleanupDefaultPuzzles only deletes the file if it was last modified before 2025-09-14. Mine wasn't deleted: it contains recorded solutions, so the game has written to it since then.

Suggested fix

  • Correct the names in invalidSetsForTraining (or filter by something more stable than the localized set name).
  • Remove repeated UUIDs from the training list, so copied puzzle files can't add the same puzzle twice.

Found while working on #778.

Dominant language
Lua
Stars
30
Forks
20
Avg merge
7d 1h
Merged PRs (30d)
9

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from panel-attack/panel-game

All issues in panel-attack/panel-game

Similar issues

More Lua issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.