Looking for the complete Touhou Creator all commands list? In developer Shiro’s newly released Early Access title, players are tasked with programming their own bullet hell Spell Cards using a built-in educational scripting language called MiniScript. Whether you are trying to recreate iconic patterns from Reimu and Marisa or engineer entirely new geometric nightmares, mastering the engine requires knowing exactly which functions are at your disposal. Below is the definitive cheat sheet covering every documented variable, syntax rule, and firing command available in the current build.

Reddit threads and sparse Fandom wikis will give you fragmented snippets of code, but if you want to engineer a Spell Card that actually feels like a ZUN original, you need a holistic understanding of the engine. Stop guessing syntax and start building.

What is the Touhou Creator All Commands List?

Launched in Early Access on Steam on May 29, 2026, Touhou Creator strips away the complex C++ architecture of traditional game engines and replaces it with MiniScript—a lightweight, beginner-friendly programming language designed specifically for generating danmaku (bullet curtains) [1].

The engine abstracts the complex trigonometry required for bullet hell design. Instead of manually calculating sine and cosine vectors for every projectile, you call built-in functions that handle the math behind the scenes. This allows creators to focus on the aesthetic and mechanical flow of the Spell Card. Once your script is polished, the game generates a unique 8-character ID (such as the popular community pattern ID: D87QCN88, titled "[Game*Spark] Summon Spakun") that allows anyone in the world to instantly play your creation [1]. To reach that level of polish, however, you must memorize the syntax.

The Essential Touhou Creator All Commands List: Core Syntax

Before you can flood the screen with neon projectiles, you have to understand how MiniScript processes information. The language is dynamically typed and executes line-by-line from top to bottom, running at a locked 60 frames per second (FPS).

Understanding the MiniScript command anatomy is your first hurdle. A standard function call like fire_nway(ways, angle, spread) requires you to pass specific data types in a strict order. If you pass a string where an integer is expected, the Early Access compiler will throw a fatal error.

Infographic: The Touhou Creator all commands list core syntax structure

Infographic: The Touhou Creator all commands list core syntax structure

Variable Declarations & Data Types

Variables in Touhou Creator do not require explicit type declarations. You simply assign a value to a name.

  • Integers: Whole numbers, primarily used for frame counts and ways (e.g., ways = 5).
  • Floats: Decimal numbers, strictly required for angles and speeds (e.g., speed = 3.5).
  • Strings: Text wrapped in quotes, used for naming your attacks (e.g., spell_name = "Master Spark").

Built-In Global Variables

The engine provides several global variables that track the state of the game in real-time. You can read these variables to create dynamic patterns that react to the player.

VariableDescriptionData Type
boss_lifeThe current health of the boss character.Integer
boss_max_lifeThe starting health pool of the boss.Integer
timerThe remaining time for the Spell Card in seconds.Integer
difficultyThe player's selected difficulty (1=Easy, 4=Lunatic).Integer

Movement & Positioning Commands

A static boss makes for a boring Spell Card. To create engaging gameplay, you must dictate where the boss moves and how quickly they get there.

The engine operates on a strict internal coordinate system where the screen center is X: 0, Y: 0. The playfield is vertically oriented, meaning upper bounds limit boss movement to Y: 448, while the player hitbox remains constrained to the lower field. When positioning your boss, the move_to() function eases the boss to the target smoothly over a set number of frames.

Annotated Diagram: Touhou Creator coordinate system

Annotated Diagram: Touhou Creator coordinate system

Boss Movement Functions

  • set_pos(x, y): Instantly teleports the boss to the specified X and Y coordinates. Rarely used outside of the initialization phase.
  • move_to(x, y, frames): Smoothly glides the boss to the target (x, y) over the specified number of frames. The boss will not fire while moving unless you wrap the movement in an asynchronous thread (a feature currently disabled in the Early Access build).
  • get_boss_x() / get_boss_y(): Returns the current float coordinates of the boss.

Player Tracking Functions

To aim your attacks, you must know where the player is. These functions are the backbone of any targeted danmaku.

  • get_player_x() / get_player_y(): Returns the player's exact coordinates.
  • get_player_angle(): The most critical math function in the game. It automatically calculates the trajectory angle (in degrees) from the boss's current position to the player's current position.
  • get_distance_to_player(): Returns the distance in pixels between the boss and the player. Useful for triggering shotgun-style attacks if the player gets too close.

Danmaku Generation: Touhou Creator All Commands List

This is the core of the game. The firing commands determine the shape, speed, and density of your bullet curtains. Every firing function requires you to specify a graphic and a color using built-in constants.

According to early community data, creators heavily favor certain bullet types for area denial: the GRAPHIC_STAR sees a 45% usage rate in dense patterns, followed by the GRAPHIC_AMULET at 30%, and the massive GRAPHIC_ORB at 25%. Optimizing fire_circle for maximum screen coverage requires mixing these hitboxes effectively.

Analysis Report Poster: Danmaku generation statistics

Analysis Report Poster: Danmaku generation statistics

Core Firing Functions

  • fire(angle, speed, graphic, color): Fires a single bullet at the specified angle and speed.
  • fire_aimed(speed, graphic, color): A shorthand function that automatically calls get_player_angle() and fires a single bullet directly at the player.
  • fire_nway(ways, center_angle, spread_angle, speed, graphic, color): Fires a fan of bullets. ways must be an odd integer (e.g., 3, 5, 7) to ensure one bullet travels exactly down the center_angle. The spread_angle determines the gap between each bullet.
  • fire_circle(ways, speed, graphic, color): Fires a perfect ring of bullets radiating outward from the boss.
  • fire_random(min_angle, max_angle, min_speed, max_speed, graphic, color): Spawns a bullet with a randomized trajectory and velocity within your specified bounds. Essential for creating chaotic, unpredictable "bubble" patterns.

Graphic Constants

Your choice of graphic drastically alters the difficulty of the pattern, as each sprite has a different internal hitbox.

ConstantDescriptionHitbox
GRAPHIC_AMULETThe classic rectangular paper charm.Small
GRAPHIC_STARA spinning five-pointed star.Medium
GRAPHIC_ORBA large Yin-Yang orb.Large
GRAPHIC_KUNAIA pointed throwing knife.Very Small
GRAPHIC_RICEThe standard oval-shaped danmaku bullet.Small
GRAPHIC_BUTTERFLYA wide, flapping butterfly bullet.Medium

Color Constants

Colors are purely aesthetic but vital for readability. Never mix more than three colors in a single wave, or the player will lose track of the hitboxes.

  • COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_YELLOW, COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE, COLOR_BLACK.

Advanced Logic & Loops in the Touhou Creator All Commands List

Firing a single ring of bullets is easy. Firing continuous, overlapping waves that force the player into tight dodging corridors requires a mastery of loops and timing.

To build a functional pattern, you must follow a strict four-step lifecycle: First, you initialize the boss health and timer. Second, you enter the main while loop that dictates the attack's duration. Third, you trigger the fire_nway command (or your chosen firing function) to spawn the bullets. Finally, you call wait(60) to space the waves and give the player time to dodge.

Comic Grid: The four-step lifecycle of a spell card loop

Comic Grid: The four-step lifecycle of a spell card loop

The Wait Command

Because the game runs at 60 FPS, the wait(frames) command is your primary tool for pacing.

  • wait(60) pauses the script for exactly 1 second.
  • wait(10) creates a rapid-fire machine-gun effect.

Warning for Early Access users: Do not forget to include a wait() command inside your while loops. If a while loop executes infinitely without a wait() yield, the MiniScript compiler will freeze, instantly crashing the May 2026 build of the game.

Example Script: A Basic Spell Card

Here is how these commands come together to form a complete, playable pattern:

// Initialization
set_spell_name("Stardust Reverie")
set_boss_life(2500)
set_pos(0, 300)

// Main Attack Loop
while boss_life > 0 do
    // Get the player's current location
    angle = get_player_angle()
    
    // Fire a 5-way spread of stars at the player
    fire_nway(5, angle, 15.0, 4.0, GRAPHIC_STAR, COLOR_YELLOW)
    play_se(SE_KIRA)
    
    // Fire a slow, expanding circle of blue amulets
    fire_circle(36, 1.5, GRAPHIC_AMULET, COLOR_BLUE)
    
    // Wait half a second before firing again
    wait(30)
end

Frequently Asked Questions (FAQ)

Is Touhou Creator free to play? No. The game launched in Early Access on Steam on May 29, 2026, for 1,150 yen (with a temporary launch discount bringing it down to 920 yen) [1].

How do I share my Spell Cards with other players? Once you verify that your script is beatable, you can publish it to the game's online server. The server generates a unique 8-character ID. Other players simply paste this ID into the main menu to download and play your pattern.

Does MiniScript require previous coding experience? Not necessarily. Developer Shiro specifically designed MiniScript as a beginner-friendly educational language [1]. The built-in functions handle the complex trigonometry of bullet trajectories, meaning you only need to understand basic logic loops and variables.

Will more commands be added to the engine? Yes. Because the game is currently in Early Access, the API is actively being updated. The community expects new laser types, curved bullet functions, and custom sprite imports to be added in future patches.