Big Puzzle SDK GitHub

Getting started

Things to know:

Think about while creating:

Setup Unity project

  1. Install r2modman (click the download button and download / extract the zip)
  2. Create profile in r2modman and install BigPuzzleSDK, UnityExplorer, NoClip
  3. Create a 6000.3.17f1 Unity project with URP
  4. Download BigPuzzleSDK.unitypackage and add to project

Creating first puzzle

This walks through a basic matching puzzle: a display shows three pictures, players find the matching tiles and hang them on the peg board, and the validator checks the answer.

  1. Create the root. Create an empty GameObject and add Puzzle SDK to it (Add Component > Big Puzzle SDK > Puzzle SDK), with Puzzle Type set to Puzzle. Put it at the top of the Hierarchy, not inside another object, and place it where the puzzle should appear in the world. The SDK treats everything under this object as one puzzle, which is how the pieces find each other without wiring.
  2. Add the other components. Drag these prefabs into the scene as children of the Puzzle SDK object:
    • Gourd Vice: holds the gourd and releases it when the puzzle is won.
    • Pillow: where the gourd goes if players won the puzzle before but lost the gourd.
    • Start Switch: players flip it to start the puzzle
    • Confetti: fires when the puzzle is won
    • Live Signal: the lamp that shows the puzzle is running
    • Door: shuts while the puzzle runs
  3. Add a Peg Board and a Display. Drag in a Peg Board and a Display. Select each one and set Size to 3 in the Inspector: the board gets 3 slots and the display gets 3 flaps. There's nothing to link: with one Peg Board and one Display of the same size, the board's Answer From fills itself in (slot 1 follows flap 1, and so on). The Inspector shows a green tick when it does.
  4. Add at least 3 Peg Tiles. Drag in three or more Peg Tiles. Select each one and change Image (and Image Set if you want another set) in the Inspector so every tile shows a different picture. When the puzzle starts, each flap on the display is dealt a different tile from these at random, and players have to hang the matching tiles on the board.
  5. Add a Validator. Drag in a Validator. The Peg Board finds it by itself and keeps it up to date as players hang tiles. When the answer is right and gets checked, the Validator calls Win() for you. With a Gourd Vice that releases the gourd; with a Box, players win by picking the gourd up.
  6. Edit position of PuzzleSDK transform. Start the game. Press N to fly to a position you like. Press F7, click PlayerCharacter ... in unity explorer. Copy the position / rotation to the PuzzleSDK transform. After loading your puzzle (testing steps below), find it in unity explorer and manually adjust the numbers until its position is good. Copy the numbers to Unity.
  7. Import low poly assets. Find low poly assets for your puzzle and import them into the Unity project, use them! Search Unity asset store, itch.io, anywhere else.

That's the whole puzzle! See Components for more things you can do.

The components placed in the Unity editor
Image goes here: docs/images/first-puzzle-components.png

Testing

  1. Click Tools > Export Puzzle. Pick your plugins folder. It should be: %appdata%\r2modmanPlus-local\BigWalk\profiles\[profile name]\BepInEx\plugins\
  2. Start the game and press Control + F1 to teleport to your puzzle if you set a teleport Transform in PuzzleSDK
  3. Press Control + F2 to hot reload your puzzle without restarting your game. Changes to your scripts need a game restart

Sharing

  1. Click Tools > Export Puzzle > Export For Thunderstore
  2. Fill in your information, export
  3. Upload to thunderstore. You will need to create an account and a "team"