https://github.com/soulctcher/TetriNode
ComfyUI node for playing Tetris
https://github.com/soulctcher/TetriNode
comfyui comfyui-custom-node comfyui-nodes tetris tetris-clone
Last synced: 5 months ago
JSON representation
ComfyUI node for playing Tetris
- Host: GitHub
- URL: https://github.com/soulctcher/TetriNode
- Owner: soulctcher
- License: mit
- Created: 2026-01-02T21:40:35.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-12T02:37:31.000Z (6 months ago)
- Last Synced: 2026-01-12T08:04:55.871Z (6 months ago)
- Topics: comfyui, comfyui-custom-node, comfyui-nodes, tetris, tetris-clone
- Language: JavaScript
- Homepage: https://registry.comfy.org/publishers/soulctcher/nodes/TetriNode
- Size: 5.75 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-comfyui - **TetriNode** - piece preview. (Workflows created in 7 days)
README
# TetriNode
A ComfyUI custom node pack that embeds a playable Tetris game inside a node UI, with an image output for the live board.
## Features
- Live, playable Tetris inside the node UI
- Matrix image output for the live board
- Hold, next piece, and queue panels inside the node UI
- Optional background image (scaled to cover, center-cropped)
- Optional ghost piece and playfield grid
- Official Tetris Guideline-based scoring (lines, T-Spins, drops, and back-to-back bonuses)
- Level progression with official fall speeds
- Pause/Play, Reset, Load State, and Save State controls
- Seeded piece generation with a standard seed widget available
- In-node toolbar with a single Settings screen (tabs: Settings, Controls, Block Style, Colors, UI Themes)
- Block Style presets with extensive style sliders and per-slider reset
- Optional block textures (Pixel Art, Brushed Metal, Wooden Block, Concrete, Toxic Slime)
- Randomized texture sampling per block for supported textures
## Nodes
### TetriNode
Main gameplay node.

**Inputs**
- `seed` (INT): Seed used for piece sequence
- `background_image` (IMAGE, optional): Background image for the game board (scaled to cover, then center-cropped)
**Outputs**
- `matrix` (IMAGE): current board
**UI controls**
- **Top toolbar**: Load State, Save State, Reset, Pause/Play, and a Settings screen.
- **Load State**: Opens a screen to paste a serialized state.

- **Save State**: Opens a screen with the current state JSON for copy/paste.

### Settings screen
All configuration now lives inside TetriNode (no external options node). The Settings screen is tabbed.
- **Settings**: Toggles (controls/ghost/next/hold/grid), lock-down mode, level progression, start level, and queue size.

- **Controls**: Click Add to capture a key (up to 5 per action). Remove any binding with the `X`, or reset per action. Capture supports the same allowed keys as before and shows human-friendly labels.

- **Block Style**: Presets plus detailed style sliders (border, bevel, gradients, glow, shadows, etc.) with per-slider reset.

- **Colors**: Per-piece colors plus background and grid colors. Presets dropdown includes multiple palettes; tetromino colors use 6‑digit hex; grid supports alpha.

- **UI Themes**: Glass/Flat/Neon/Minimal presets with editable colors and a “Reset Theme Colors” button.

## Controls (Default)
Displayed inside the node UI and reflected in the game input handler.
- Move Left: `ArrowLeft` / `Numpad4`
- Move Right: `ArrowRight` / `Numpad6`
- Rotate CW: `ArrowUp` / `Numpad5` / `X` / `Numpad1` / `Numpad9`
- Rotate CCW: `Ctrl` / `Numpad3` / `Z` / `Numpad7`
- Soft Drop: `ArrowDown` / `Numpad2`
- Hard Drop: `Space` / `Numpad8`
- Hold: `Shift` / `Numpad0` / `C`
- Reset: `R`
- Pause: `Esc` / `F1`
## Scoring
Scoring follows the Official 2009 Tetris Design Guideline.
**Line clears (× Level)**
- Single: 100
- Double: 300
- Triple: 500
- Tetris: 800
**T-Spins (× Level)**
- T-Spin: 400
- T-Spin Single: 800
- T-Spin Double: 1200
- T-Spin Triple: 1600
**Mini T-Spins (× Level)**
- Mini T-Spin: 100
- Mini T-Spin Single: 200
**Drops**
- Soft Drop: +1 per row
- Hard Drop: +2 per row
**Back-to-Back**
- 0.5× bonus for consecutive Tetrises, T-Spin line clears, and Mini T-Spin line clears
- Non-line T-Spins/Mini T-Spins do not start a B2B chain and do not break an existing chain
- Singles/Doubles/Triples break a B2B chain
**Variable goal line awards**
- When `level_progression` is `variable`, the Lines Cleared counter uses awarded line clears per action.
- Awarded lines: Single/Mini T-Spin = 1, Mini T-Spin Single = 2, Double = 3, Triple = 5, T-Spin = 4, Tetris/T-Spin Single = 8, T-Spin Double = 12, T-Spin Triple = 16
- Back-to-Back adds +0.5× awarded line clears
## Leveling
Levels are capped at 15 and drive normal fall speed.
**Fixed goal system (default)**
- Level increases every 10 lines cleared
**Variable goal system**
- Level 1: 5 lines
- Level 2: 10 lines
- Level 3: 15 lines
- …adding 5 more lines per level up to 15
**Fall speed formula**
- `(0.8 - ((level - 1) * 0.007))^(level - 1)` seconds per line
- Soft Drop is 20× faster than the current fall speed
**Fall speed (approx., seconds per line)**
- Level 1: 1.000
- Level 2: 0.793
- Level 3: 0.618
- Level 4: 0.473
- Level 5: 0.355
- Level 6: 0.262
- Level 7: 0.190
- Level 8: 0.135
- Level 9: 0.094
- Level 10: 0.064
- Level 11: 0.043
- Level 12: 0.028
- Level 13: 0.018
- Level 14: 0.011
- Level 15: 0.007
## Installation
### Installation (preferred)
Install via ComfyUI Manager. Search for "TetriNode" and click install.
The node pack is also available on the Comfy Registry site by [clicking here](https://registry.comfy.org/publishers/soulctcher/nodes/TetriNode).
### Installation (alternative)
1. Copy this repository into `ComfyUI/custom_nodes/TetriNode/`.
2. Restart ComfyUI.
3. Add `TetriNode` from the node list.
## License
MIT