SAMMI Stuff

Find all the information you need to set up Deck Hopper and my extensions for your SAMMI.

Random Bunny

SAMMI Extensions

Minesweeper

Get on Ko-fi
Slide 1
Slide 2
Slide 3
Slide 4
Slide 5

Minesweeper is an extension that allows your viewers to play Minesweeper on your stream. It's a fun and interactive way to engage with your audience while you're live. The extension comes with an OBS overlay and can be fully controlled via SAMMI through chat commands.

Features

  • Chat commands to reveal, flag, and unflag cells.
  • Different difficulty levels: Beginner, Intermediate, and Expert.
  • Adjustable leaderboard settings, such as how many points are awarded for uncovering a cell.
  • Comes with an OBS overlay to display the game on stream.
  • Get game state, such as the number of cells left to uncover or how much time has passed.

Disclaimer

  • This extension includes a modified version of the original repository, Minesweeper by OleksandrYehorov.
  • The original code has been adapted to fit the functionality of this extension. The original project is licensed under the MIT License.
  • While the original code remains under the MIT License, the modifications made to this repository are part of a proprietary extension and are not distributed for free.

Setup

  1. Install the extension. You can follow the Extension Install Guide.
  2. Setup the INIT button inside the premade Minesweeper deck.
    • OBS Name: OBS Connection Name SAMMI will use to control the OBS extension. Default is Main.
    • Base Points: How many points a player receives for uncovering a cell without hitting a mine. Default is 10.
    • Penalty Points: How many points a player is deducted if they hit a mine. Default is 100. Leave at 0 to deduct ALL points.
    • Display Names: Whether to display the player's name above the cell when they uncover or flag it.
  3. Make sure your OBS is running and SAMMI is connected to it. Press Setup OBS button and follow the instructions.
  4. The extension is now ready to play!

Commands

Start Game

Starts a new game. You must end the current game first to start a new one.

Ensure OBS Source is Active

The OBS source "Minesweeper by Christina" must be active in order to start a new game.

How to start a new game:

  1. Manually press Start Game button (difficulty will remain the same)

  2. Use !ms start <difficulty> chat trigger (mods and broadcasters).

    • difficulty can be beginner (1), intermediate (2), expert (3). Remains the same if none provided.
    • example: !ms start beginner or !ms start 1 (both options are accepted)
  3. Set up a Minesweeper channel point trigger, so your viewers can redeem it.

    • user input for difficulty can be beginner (1), intermediate (2), expert (3).
    • remains the same if none provided.

You can place your own logic inside the Start Game button, such as making the Minesweeper OBS source visible.

Delay when switching difficulty levels

When switching difficulty levels, there might be a brief moment where the previous difficulty is shown. You can keep the source active, but hide it (e.g. set its opacity to 0), wait for 1-3 seconds, and then show it.

Play Game

The chat message command to play the game is: !ms <coordinates> <optional click type>

Customizing Chat Messages

Please review the green comments inside the !ms button to modify your chat messages.

<coordinates> - coordinates to uncover or flag the cell, no spaces, case insensitive <optional click type> - click type, either "left" to uncover the cell, or "right"/"flag" to flag the cell - if none provided, automatically assumes it was a left click to uncover the cell - flagged cells can be uncovered without unflagging them first

Example chat commands:

  • !ms a1 or !ms a1 left = uncover cell A1
  • !ms b3 right or !ms b3 flag = flag cell B3 or unflag (if already flagged) cell B3

End Game

Ends the current game and resets the leaderboard.

How to end the game:

  1. Manually press End Game button
  2. Use !ms end chat trigger (mods and broadcasters)

You can place your own logic inside the End Game button, such as making the Minesweeper OBS source invisible.

Get Game State

Retrieves current game state, such as when the game started, how many cells have been uncovered, etc.

Example response object:

{ 
  "startedAt": 1728446299, // unix time
  "openCellsCount": 33,    // number of uncovered cells
  "flaggedMinesCount": 0,  // number of flagged mines
  "flaggedEmptyCount": 0,  // number of flagged cells
  "totalCellsCount": 81,   // total number of all cells
  "status": "playing"      // can be starting, playing, lose or win
}

Get Leaderboard

The Leaderboard button displays and outputs the current game leaderboard.

Leaderboard Reset

The leaderboard resets between games (when the End Game button runs).

General rules:

  • Player gets base points (set in the INIT button) for each uncovered cells, 0 points for flagging cells.
  • Player who uncovers the last cell and wins the game, gets 2x base points.
  • If a player loses the game, they receive penalty points (set in the INIT button).

By default, the button shows the top 3 usernames along with their points after each round.

If you press it manually or use !ms leaderboard chat trigger, it also sends a chat message listing the top 3 players and their points.

Get Help

Please see Troubleshooting for common extensions issues.

Previous
Lucky Wheel