Editor commands
Everything a person does in the editor’s menus and toolbar is a command. Each is also a tool an agent can call over the Model Context Protocol, named by the command’s id with its dots turned to underscores (Game.Play is Game_Play). This page is written from the code when the site is built, so a new command appears here by itself.
File menu
Section titled “File menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| New Project… | Ctrl+Shift+N |
Project.New |
Opens the New Project window: a name, a folder and a template to start from. Its Templates lists every one Griff has (Platformer, Top-down, Match-3…), each with what it is and how to play; set SelectedTemplate to one by its name. |
| Open Project… | Ctrl+O |
Project.Open |
Opens a project: its folder or its project.griff file. |
| Close Project | Project.Close |
Closes the open project and returns the editor to its start, with no project open: stops the game if one is playing and asks to save what’s unsaved first (save, don’t save or cancel). Open or create a project afterwards to carry on. | |
| Save Scene | Ctrl+S |
Scene.Save |
Saves the open scene to its file, or, while a prefab’s tab is showing, the prefab, bringing every copy of it up to date (keeping what each copy changed). |
| New Scene… | Scene.New |
Creates a new scene with a camera in Assets/Scenes and opens it. | |
| Open Scene… | Ctrl+Shift+O |
Scene.Open |
Opens another of the project’s scenes (asking to save the open one first if it has changes). Over MCP, “scene” names the one to open, by name (“Game Over”), path in Assets or full path. |
| Set as Start Scene | Scene.SetStart |
Makes a scene the one the game starts in (when played from a menu or built): the submenu lists the project’s scenes, by name, or by their path in Assets where two share a name. Without a pick, it’s the open scene. | |
| Open Prefab… | Prefab.Open |
Opens one of the project’s prefabs to edit on its own, in a tab of its own: the Hierarchy, Inspector and Scene view edit it until the scene’s tab is picked again. Saving it (Save, Ctrl+S) updates every copy of it in every scene. | |
| Close Prefab | Prefab.Close |
Closes the prefab whose tab is showing, asking to save its changes first, and shows the scene again. | |
| Exit | Alt+F4 |
App.Exit |
Closes the editor (asking to save unsaved changes first). |
Edit menu
Section titled “Edit menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Undo | Ctrl+Z |
Edit.Undo |
Undoes the last change to the document being worked on: the open scene or prefab, or the table, rhythm chart, simulation or sprite sheet last changed or clicked into (in its panel or window), whichever is active (ui_inspect ActiveDocument says which, and what this would undo). Given one (a panel’s undo button gives its own), it undoes that one’s. Over MCP, “document” names an open scene or prefab to undo in when it isn’t the active one. |
| Redo | Ctrl+Y |
Edit.Redo |
Redoes the last change undone to the document being worked on (see Undo), or to the open scene or prefab named by “document”. |
| Cut | Ctrl+X |
Entity.Cut |
Copies the selected entities (and their children) to the clipboard and deletes them, as one undo step. |
| Copy | Ctrl+C |
Entity.Copy |
Copies the selected entities (and their children) to the clipboard. |
| Paste | Ctrl+V |
Entity.Paste |
Pastes what’s on the clipboard after the selected entity (as its siblings), or at the end of the scene, and selects it. Several entities paste in their order, as one undo step. |
View menu
Section titled “View menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Frame Selection | F |
View.FrameSelection |
Centers the Scene view on the selection (the middle of everything selected), or on the origin with nothing selected. |
| Scale Handles | S |
View.ScaleHandles |
Makes the Scene view’s square handles scale the selection: corners scale both ways, edges one, around the entity picked last. This is how the Scene view starts. |
| Resize Handles | R |
View.ResizeHandles |
Makes the Scene view’s square handles resize the selected entity’s sprite (its Size) around its position: drag an edge to make a platform longer without stretching what’s on it, as scaling would. |
| Collider Handles | C |
View.ColliderHandles |
Makes the Scene view’s handles resize the selected entity’s box and circle colliders: drag a box’s edges and corners (the opposite side stays put), or a circle’s edge to change its radius. |
| Distance Handles | D |
View.DistanceHandles |
Puts round handles on the circles of the selected entity’s distances, such as a light’s radius, how far an enemy notices the player, or a unit’s sight: drag one to change how far it reaches. Its offsets (where a light shines from, where a shooter’s shots appear) and directions (which way a shooter fires or a bouncer launches) get knobs too, a direction’s at the tip of an arrow: drag one to move or turn it. |
| Save Layout… | View.SaveLayout |
Saves where the panels are now as a layout with a name (saving over one with that name), to switch back to with View > Layouts. Layouts are kept for every project. | |
| Layouts | View.Layouts |
Puts the panels where a layout saved with View > Save Layout… has them; the submenu lists the saved layouts. | |
| Delete Layout | View.DeleteLayout |
Forgets a layout saved with View > Save Layout…; the submenu lists the saved layouts. | |
| Reset Layout | View.ResetLayout |
Puts every panel back where it starts out (Hierarchy on the left, Inspector on the right, Assets, Output and Profiler under the scene), closing floating windows and opening closed panels. | |
| Panels | View.Panels |
Shows a tool panel, bringing its tab to the front; one that was closed (with its tab’s close button) opens again where it starts out. The submenu lists every panel. |
Entity menu
Section titled “Entity menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Add Entity… | Ctrl+Shift+A |
Entity.AddEntity |
Opens the Add Entity palette at the top of the Hierarchy: everything the Entity menu makes, by category, with what was made lately at the top. Type to find something (by its name, category or what it does) and press Enter to make it inside the selected entity, or at the top level. Agents can call the Entity_Create tools straight away; the palette is the Hierarchy panel’s Palette. |
| Basics > Empty | Ctrl+Alt+N |
Entity.CreateEmpty |
Creates an empty entity (just a transform) inside the selected entity, or at the top level, and selects it. |
| Basics > Sprite | Entity.CreateSprite |
Creates an entity with a Sprite (a white box until it’s given an Image) and selects it. | |
| Basics > Text | Entity.CreateText |
Creates an entity with a Text: words in the world, or on the HUD with a ScreenAnchor. | |
| Basics > Camera | Entity.CreateCamera |
Creates a camera: what the game is seen through. | |
| Characters > Platformer Player | Entity.CreatePlatformerPlayer |
Creates a platformer’s player that runs and jumps with no code: a box sprite with a collider on the Player layer, a Body and a PlatformerMovement. Its Inspector tunes how it moves. | |
| Characters > Top-down Player | Entity.CreateTopDownPlayer |
Creates a top-down player that moves in eight directions with no code, ignoring gravity. | |
| Characters > Grid Player | Entity.CreateGridPlayer |
Creates a player that steps tile by tile on the scene’s tilemap with no code, blocked by its walls: a box sprite with a collider on the Player layer, a Body without gravity and a GridMovement. | |
| Characters > Grid Enemy | Entity.CreateGridEnemy |
Creates an enemy that steps tile by tile after the player with no code, around walls: a box sprite with a collider on the Enemy layer, a Body without gravity, a GridMovement a little slower than the player’s, a GridChase, and an Attack whose “Hitbox” child hurts the Player layer once it’s next to the player. Add a GridPatrol to have it walk a route until it spots the player. | |
| Characters > Add Attack | Entity.CreateHitbox |
Gives the selected entity a sword: a “Hitbox” child to its right (a trigger on the Attack layer with a DamageOnTouch that hurts enemies) and an Attack that swings it out with the Attack action. One undo step. | |
| Gameplay > Turn Order | Entity.CreateTurnOrder |
Creates turn-based play: a TurnOrder whose text in the top-right corner says whose turn it is, with an End Turn button in the bottom-right corner. Give whatever takes turns a TurnTaker naming its side. In a scene with grid movers it sets up a roguelike instead, where everything moves when the player moves: each grid mover gets a turn taker with one action (players on the Player side, chasers and patrols on the Enemy side), turns follow straight on, the text counts turns and the button waits a turn. Grid players and enemies created later join in. | |
| Level > Tilemap | Entity.CreateTilemap |
Creates an empty tilemap; selecting it puts the Scene view into tile painting. | |
| Level > Room | Entity.CreateRoom |
Creates a room one camera view big, for a camera with a Follow to keep to and slide between. | |
| Level > Ladder | Entity.CreateLadder |
Creates a ladder: a tall thin sprite behind things, with a trigger to climb. Stretch it with its Scale. | |
| Level > Switch | Entity.CreateSwitch |
Creates a lever: a small sprite with a trigger around it and a Switch. Name what it opens in its Targets (or Hides), or set its Mode to make it a pressure plate or a button. | |
| Physics > Crate | Entity.CreateCrate |
Creates a crate the player pushes along: a solid box with a Body and Pushable, on the Crate layer. In a scene with grid movers it’s a grid crate, pushed a cell at a time: it gets a GridMovement and no gravity. | |
| Physics > Spring | Entity.CreateSpring |
Creates a spring: a low solid block with a Bouncer that sends whatever lands on it flying. | |
| UI > Button | Entity.CreateButton |
Creates a clickable button: a background sprite, a label and a Button set to do nothing until configured. | |
| UI > Toggle | Entity.CreateToggle |
Creates an on/off switch: a button whose label says which way it’s set. | |
| UI > Slider | Entity.CreateSlider |
Creates a slider for an options menu; set its Setting to a volume and it needs no code. | |
| UI > Choice | Entity.CreateChoice |
Creates a button that picks one of several options, changed with left and right: “Difficulty: Normal”. | |
| UI > Bar | Entity.CreateBar |
Creates a bar for a HUD; set its Track to show an entity’s health. | |
| UI > Chart | Entity.CreateChart |
Creates a chart for a HUD or a panel: a line graph of a series a script feeds, or that samples an output of its Track entity with no code. | |
| UI > Stars | Entity.CreateStars |
Creates a row of three stars, so many filled: how well a level went. Set its Saved to a level’s best stars in the save data (on a level select menu), or its Track and Output to a Level Goal’s Stars (on the panel a won level opens). | |
| UI > Panel | Entity.CreatePanel |
Creates a panel: a backdrop pinned to the middle of the screen with a Panel, hidden while the game runs until it’s opened. Select it and create buttons to put them on it; set its Open On to “Pause” for a pause menu. | |
| UI > Edge Pointer | Entity.CreateEdgePointer |
Creates an arrow for a HUD that points the way to something off the screen: an amber arrow with an EdgePointer, a Button that glides the camera there when it’s clicked (Do: Glide), and how far off it is written beside it. Set its Target to what it points at. | |
| Story > Dialogue Box | Entity.CreateDialogueBox |
Creates the box a Dialogue talks in: a panel pinned to the bottom of the screen whose text types itself out, with a name tag and a portrait above it for whoever is talking (see Speaker). It’s hidden while the game runs until someone talks. | |
| Audio > Music | Entity.CreateMusic |
Creates music for the scene: an entity with a BackgroundMusic, which plays its Music (make one with Audio > New Music) when the scene starts, crossfading from whatever was playing. | |
| Audio > Sound Source | Entity.CreateSoundSource |
Creates a sound that loops where it’s put (a waterfall, a crackling fire): an entity with a SoundSource, louder the nearer it is to the middle of the screen. Pick its Sound in the Inspector. | |
| Audio > Sound Player | Entity.CreateSoundPlayer |
Creates a sound that plays when something happens, with no code: an entity with a SoundPlayer, which plays its Sound whenever its Message is sent (by a pickup, a switch or a script). | |
| Audio > Beat Clock | Entity.CreateBeatClock |
Creates a beat clock that keeps time with the music: an entity with a BeatClock, which sends “Beat” on every beat and “Bar” on every bar for sound players, spawners, movers and scripts to follow. | |
| Audio > Calibration Screen | Entity.CreateCalibration |
Creates a calibration screen: a panel, closed until it’s opened, with a Calibration that plays clicks for the player to tap along to and offers to set their audio offset (how late they hear the sound, for Bluetooth headphones and the like) to how late their taps came, its prompt, a slider to fine-tune the offset by hand, and Apply, Again and Back buttons. Give an options menu a button whose Action is Open Panel and Panel is Calibrate. | |
| Lights and Effects > Light | Entity.CreateLight |
Creates a light: an entity with a warm Light. It shows once the camera’s Ambient is dark. | |
| Lights and Effects > Particles | Entity.CreateParticles |
Creates a particle emitter: sparks, smoke, dust, magic. | |
| Lights and Effects > Weather | Entity.CreateWeather |
Creates weather: an entity with a Weather, rain to start with, that fills the view while the game runs. | |
| Genres > Adventures > Walk Area | Entity.CreateWalkArea |
Creates a walk area: a floor 8 wide and 3 deep where a Walker walks, its corners dragged in the Scene view (and a corner added by dragging the plus on a side) to fit the room. Tick its Blocks for a hole in the floor. | |
| Genres > Adventures > Hotspot | Entity.CreateHotspot |
Creates a hotspot: an area 1.5 wide and 2 tall (a door’s) with a Hotspot whose walker stands just in front of it, with a line to say on looking at it. Drag its corners in the Scene view to fit what it is, and give it a line to say on using it, an action, a flag or a dialogue. | |
| Genres > Adventures > Walker | Entity.CreateWalker |
Creates a walker: the player’s character in a point-and-click adventure, a figure that walks where the player clicks, round what’s in the way, and walks over to look at and use hotspots, with an inventory (kept between runs) shown in a bar along the bottom of the screen. A scene with no walk area gets one for it to walk on, all in one undo step. | |
| Genres > Adventures > Item | Entity.CreateItem |
Creates an item to take: a small sprite with a Hotspot that puts it in the walker’s inventory when it’s used, once (its flag kept in the save data), and is gone from the room after. Rename it and give it a picture: the inventory bar shows the item with the hotspot’s picture. | |
| Genres > Cards > Deck | Entity.CreateDeck |
Creates a deck of twenty cards, Sun and Moon from 1 to 10, on the left of the table, shuffled as the game starts. A scene with no hand also gets one along the bottom that draws five cards from it, a play zone in the middle to play them onto and a discard pile on the right (which the deck shuffles back in when it runs out), so it plays straight away: drag a card onto the zone, or click the deck to draw. All in one undo step. | |
| Genres > Cards > Play Zone | Entity.CreatePlayZone |
Creates a play zone: a place on the table, 9 by 2.8, that cards from any hand are played onto in a row by dragging them there. Set what it Accepts and its Limit to make rules of it. | |
| Genres > Cards > Card | Entity.CreateCard |
Creates a card: inside the deck, hand or play zone picked (or one a card picked is in), otherwise on its own. Set its Title, Text, Value, Kind and Color in the Inspector. | |
| Genres > Dungeons > Dungeon | Entity.CreateDungeon |
Creates a dungeon of rooms and corridors cut from solid wall, made afresh each game. It’s a Tilemap with a DungeonGenerator 48 cells across and 32 down, centered on the scene’s middle, showing one made from a new seed (Fill Walls shows its walls without a tileset). The game makes its own each time it starts (its Seed is 0); set a Seed to keep one, and use Generate Dungeon to see it. It puts the entity called “Player” in the first room. | |
| Genres > Falling Blocks > Falling Board | Entity.CreateFallingBoard |
Creates a falling-block board: a Tilemap with a FallingBoard 10 cells across and 20 down, centered on the scene’s middle, its cells lined up with the scene’s level if it has one (see Tilemap.LinesUpWith; tick its tilemap’s Solid for landed blocks a platformer climbs). Pieces fall into it as the game runs: slide them with left and right, turn them with up, drop them with Space, and fill rows to clear them. | |
| Genres > Fighting > Sparring Pair | Entity.CreateSparring |
Creates a sparring pair to try hitboxes on: a brawler to play (the arrows or WASD to move, Space to jump, X or the gamepad’s X to punch) and a sandbag beside it, on a floor of their own, with a line over them showing the sandbag’s health. The brawler’s sheet has Idle, Run and Attack clips; every frame has hurtboxes on its body and its head (which takes half as much again), and the punch’s two frames with the fist out have a hitbox: 2 damage, knockback, and 18 steps of hitstun, once a punch. Turn on Game > Show Hitboxes to see them as it plays, and open the Clip Editor to change them. Pictures go in Assets/Fighting, to repaint. All in one undo step. | |
| Genres > Fighting > Training Pair | Entity.CreateTrainingPair |
Creates a training pair to try a fighter’s moves on: a fighter to play and a training dummy facing it, on a floor of their own, with the dummy’s health, the fighter’s combo and its special moves written over them. The fighter walks on the arrows or A and D (back blocks, down crouches, up jumps), punches with P (U, J or the gamepad’s X) and kicks with K (I, K or the gamepad’s A); its moves are a jab, a kick, a low kick (blocked only crouching) and a kick in the air, a palm strike on a quarter circle forward (236P), an uppercut on a dragon punch (623P) and a rush on a charge (back held, then forward and K: [4]6K), and the jab, kick and low kick cancel into the specials once they connect. Both have the same moves and boxes; the dummy just stands there until its Auto Block or Controllable is set. Pictures go in Assets/Fighting, to repaint; Entity > Edit Moves edits the moves, and the Clip Editor their boxes. All in one undo step. | |
| Genres > Match-3 > Match Board | Entity.CreateMatchBoard |
Creates a match-3 board: an 8 by 8 Tilemap of six kinds of gem with a MatchBoard, centered on the scene’s middle (its cells lined up with the scene’s level if it has one, see Tilemap.LinesUpWith) and dealt already so it shows; each game deals it afresh. Swap gems to line up three of a kind. | |
| Genres > Physics Games > Slingshot | Entity.CreateSlingshot |
Creates a slingshot on the left with three shots waiting behind it, ready to pull back and launch: drag its pouch back with the mouse and let go (or pull it about with the arrows and press Space). The camera follows each shot as it flies: a camera with no Follow gets one following the slingshot, and a scene with nothing solid to stand on gets the ground too. All in one undo step. | |
| Genres > Physics Games > Tower | Entity.CreateTower |
Creates a little tower to knock down on the right: two storeys of wooden posts and planks (with a pane of glass and a stone slab on top), every piece a Breakable that cracks and splits on hard knocks, standing asleep until something hits it, and a green target inside that pops easily. Each piece broken sends Score with its points, and a scene with no score gets one on the camera that adds them up. All in one undo step. | |
| Genres > Physics Games > Pinball Table | Entity.CreatePinballTable |
Creates a whole little pinball table to play straight away: walls, a plunger in its lane on the right with the ball on it, two flippers over the drain, three bumpers, two kickers, three lanes along the top and a bank of three drop targets, the tilt, and the score and ball shown beside it, with pictures and sounds. Hold Space (or the down arrow) and let go to shoot, Shift or Z and / to flip, N to nudge. The camera is moved and widened to see all of it. All in one undo step. | |
| Genres > Physics Games > Flippers | Entity.CreateFlippers |
Creates a pair of pinball flippers near the bottom of the view, each a paddle on a hinge with its limits set: the left one flips on Left Shift, Z or the gamepad’s left shoulder, the right one on Right Shift, / or the right shoulder. Put a ball above them and play. All in one undo step. | |
| Genres > Physics Games > Bumper | Entity.CreateBumper |
Creates a pop bumper: a round bumper that knocks the ball straight away from its middle as it flashes, pops and scores 100 (its Message, Score, for a Counter). All in one undo step. | |
| Genres > Physics Games > Kickers | Entity.CreateKickers |
Creates a pair of slingshot kickers: triangles whose rubber sides (facing up and in) knock the ball away hard and score 10 each. All in one undo step. | |
| Genres > Physics Games > Plunger | Entity.CreatePlunger |
Creates a plunger with a ball resting on it, ready to shoot: hold Space (or the down arrow, the gamepad’s A, or the mouse on it) to pull it back and let go, or pull the gamepad’s right stick down and let it spring back. All in one undo step. | |
| Genres > Physics Games > Drop Targets | Entity.CreateDropTargets |
Creates a bank of three drop targets: each the ball hits scores 250 and drops out of the way, and knocking down all three scores 1,000 more and brings them back up. All in one undo step. | |
| Genres > Physics Games > Lanes | Entity.CreateLanes |
Creates three rollover lanes side by side: a ball rolling through one lights it and scores 100, lighting all three scores 1,000 more, and the flippers move the lit ones along. All in one undo step. | |
| Genres > Puzzles > Goal | Entity.CreateGoal |
Creates a goal for grid crates: a flat square drawn under them with a Goal whose All Covered Message is “Solved”, sent once every goal in the scene has a crate on it. The first goal in a scene also gets a MoveHistory, so the player can undo moves (Z) and restart (R). | |
| Genres > Rhythm > Note Lanes | Entity.CreateNoteLanes |
Creates rhythm lanes that play straight away: four lanes in the middle of the view with a beat clock, a song made in Griff (Music/Groove.wav, 16 bars at 120 beats a minute, to tweak in the Sound Maker) and its chart (the Groove table in Assets/Tables, at Easy, Normal and Hard), and the score and accuracy beside them. Play, and press D, F, J and K (or the arrows, the D-pad, the face buttons, or tap the lanes) as the notes cross the line, holding the long ones. All in one undo step. | |
| Genres > Tactics > Tactics Unit | Entity.CreateTacticsUnit |
Creates a tactics unit that walks up to four cells a turn and hits whatever is next to it. It’s a box sprite in its team’s color with a collider, a Body without gravity, a GridMovement, a Health of 3, a TacticsUnit and a TurnTaker with one action, on whichever team has the fewest units so far, so creating a few makes two even teams facing each other. A scene with no turn order gets one (Blue, played by you, and Red, played by the computer; clear its Computer Teams for two people taking turns at one keyboard) with an End Turn button, and one with no TacticsControls gets those, to pick units with the mouse. All in one undo step. | |
| Genres > Visual Novels > Stage | Entity.CreateStage |
Creates a visual novel’s stage that plays straight away: a stage filling the camera’s view with a park and a room to show (and a night sky in plain colors), Ava and Ben on it (off stage until the script brings them on), each with three expressions, a dialogue box along the bottom whose lines type themselves out, and a short script that sets the scene, brings them on, changes their faces, offers a choice and moves to the room. Click, tap or press Space or Enter to read on. With it come the reading menus (see Create Reading Menus): Log, Skip, Auto, quick saves, save and load screens and settings. Pictures go in Assets/Stage, to repaint. All in one undo step. | |
| Genres > Visual Novels > Character | Entity.CreateCharacter |
Creates a character on a stage: inside the stage picked (or the one a character picked is on, or the scene’s first), standing at a free position, with a speaker named after them and three expressions to start from (pictures in Assets/Stage, to repaint). Its lines start with its name (“Character: Hello!”) and its stage directions name it too (“[show Character left happy]”). | |
| Genres > Visual Novels > Reading Menus | Entity.CreateReadingMenus |
Creates a visual novel’s menus for reading, with no code: a row of buttons at the top of the screen (Log, Skip, Auto, Quick Save, Quick Load, Save, Load and Settings), save and load screens of six slots each (a screenshot, when it was saved and the line being said, and an X to delete it), a log of the lines said (opened with H, the gamepad’s left shoulder, a button or the mouse wheel), and settings for how quickly Auto reads on, whether Skip goes through lines not read yet, and the volume. All in one undo step. | |
| Rename | F2 |
Entity.Rename |
Starts renaming the selected entity in the Hierarchy (agents: set its name with entity_update instead). |
| Duplicate | Ctrl+D |
Entity.Duplicate |
Copies the selected entities (and their children), each right after its original, and selects the copies. Several selected entities are duplicated as one undo step. |
| Delete | Delete |
Entity.Delete |
Deletes the selected entities and everything inside them, as one undo step. |
| Save as Prefab | Entity.SaveAsPrefab |
Saves the selected entity and its children as a prefab, ready for Game.Spawn(“name”) or dragging into a scene: a placed copy over its own prefab (applying everything it changed), anything else as Assets/Prefabs/<name>.prefab. The entity becomes a copy of the prefab, and every other copy of it, in the open scene (one undo step) and in every other scene, is brought up to date: it takes the prefab’s components, scale and children, keeping its own name and place and whatever it changed from the prefab. Works in play mode too, to keep a tweaked live entity. | |
| Edit Dialogue… | Story.EditDialogue |
Opens the Dialogue Editor on the selected entity’s dialogue (or the dialogue of the stage a selected character is on): its lines listed, and for the line picked who says it and with what expression, what’s said, its flags and messages (said only while a flag is or isn’t set, setting and clearing flags, sending messages: picked from those the project has), where a choice or go-to goes (picked from the dialogue’s parts), and its stage directions (show, hide or move a character, change the background, cut, fade or slide), each picked from lists of what the stage has, with a preview of the stage at that line; choices, parts and go-tos are added with a click. Each change is one undo step. It follows the selection. | |
| Edit Prefab | Entity.EditPrefab |
Opens the prefab the selected copy was placed from in a tab of its own, to edit the prefab itself rather than this copy of it. Saving it updates every copy, keeping what each changed. | |
| Edit Moves… | Fighting.EditMoves |
Opens the Move List on the selected fighter’s moves: each with its input drawn as arrows and what the motion is called, and for the move picked its name, its motion picked from a list (quarter circles, dragon punches, charges) and button, its clip, its startup, active and recovery frames drawn as a bar with what it leaves on hit and on block, where it must be blocked, and what it cancels into. Each change is one undo step. It follows the selection. | |
| Unlink from Prefab | Entity.UnlinkPrefab |
Unlinks the selected copies from their prefab: they become ordinary entities, which saving the prefab no longer changes. One undo step. | |
| Edit Chart | Rhythm.EditChart |
Opens the Chart panel on a rhythm chart (a table of notes: Beat, Lane, Hold, Difficulty), picked by its name, or the selected Note Lanes’ chart, with their song, beat clock and lanes: the notes on a timeline in their lanes over the song’s beats and bars, to record by tapping along (Rhythm.RecordChart) and to edit by hand. Read and change it with ui_inspect, ui_set and ui_invoke on the Chart panel (ChartName, Difficulty, Snap, RecordMode, Metronome, AudioOffset, Playhead, NoteLines, Summary, AddNote, RemoveNote, MoveNote, SetHold, RecordTake, PlayFrom, Stop…). | |
| Revert to Prefab | Entity.RevertToPrefab |
Reverts the selected copies to their prefab: every field they changed goes back to the prefab’s value, and components and children they added or took away are put back as the prefab has them. Each keeps its own name and place. One undo step. | |
| Lock | Entity.Lock |
Locks the selected entities in the Scene view, so clicks and box selections pass through them (and what’s inside them) to what’s behind: a backdrop or a big tilemap stops catching every drag. Unlocks them if they’re all locked already. The Hierarchy still selects locked entities, and the game ignores locking. One undo step. | |
| Hide | H |
Entity.Hide |
Hides the selected entities in the Scene view, so a pause menu, a dialogue box or a tilemap layer stops covering the level while you work on it: they (and what’s inside them) aren’t drawn, clicked or box selected there. Shows them again if they’re all hidden already. The Hierarchy still selects hidden entities, and the game shows them as usual. One undo step. |
| Generate Dungeon | Entity.GenerateDungeon |
Makes the selected dungeon now, to see what it looks like: its tilemap filled with rooms and corridors, its Players put in the first room and its Exit in the furthest, as one undo step. With a Seed, it’s the first floor the game will make; with Seed 0, a new one each time (the game still makes its own). Spawns only appear in the game. | |
| Fit Polygon Collider to Sprite | Entity.FitPolygonCollider |
Fits the selected entity’s collider to its sprite: traces round what’s solid in the frame its sprite shows (the biggest blob of it, holes filled in) and makes that a Polygon Collider’s points, up to 12 of them, hugging it without crossing. An entity without a polygon collider gets one in place of its box or circle collider, keeping whether it’s a trigger and its layers. Drag the points in the Scene view to tidy it. One undo step. | |
| Add Hinge | Entity.AddHinge |
Hinges the selected entity at its middle so it turns there: to the world, or with two entities selected, to the one picked first (pick the cart, then Ctrl+click the wheel). It gets a Hinge Joint, and a Body that rotates (and a box collider, without a collider). Drag the hinge’s knob in the Scene view to move it (to a door’s end), and tick Limit or Motor in the Inspector. One undo step. | |
| Add Rope | Entity.AddRope |
Adds a rope to the selected entity: with two entities selected, tied from the middle of the one picked last to the middle of the one picked first (a little longer than they’re apart, so it sags); one that moves (has a Body), hung from a hook in the world 3 above its top; one that doesn’t (a ceiling, a branch), hanging loose 3 down from its bottom, to climb and swing on. Drag its ends’ knobs and the one at its middle (its length) in the Scene view. One undo step. | |
| Add Breakable | Entity.AddBreakable |
Makes the selected entities break on hard knocks: each gets a Breakable (cracking as hits add up, splitting into pieces once they reach its Strength), and a Body that rotates, so it tumbles and topples, and a box collider the size of its sprite if it has no collider. Set its Strength and Min Hit in the Inspector, or give it a Table Values on a Materials table. One undo step. | |
| New Script… | Script.New |
Creates a behavior script in Assets/Scripts, attaches it to the selected entity, and opens it in the script editor. |
Game menu
Section titled “Game menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Play | F5 |
Game.Play |
Plays the open scene in the Game tab, on a copy: Stop puts everything back as it was. |
| Pause / Resume | F6 |
Game.Pause |
Pauses the running game, or resumes it. While paused, the timeline rewinds up to the last 20 seconds. Stopped at a breakpoint, resuming lets the script carry on from that line. |
| Step Frame | F10 |
Game.Step |
Advances the paused game by one frame (not while it’s stopped at a breakpoint, in the middle of one). |
| Stop | Shift+F5 |
Game.Stop |
Stops the game and goes back to the scene as it was before Play. |
| Keep Play Changes | Ctrl+K |
Game.KeepChanges |
Copies the selected entity’s live values into the edit scene, so tuning done while playing survives Stop. One undo step in the edit scene’s history. |
| Profiler | Game.Profiler |
Shows the Profiler panel, which records how the game playing in the Game tab runs while it’s on screen: a graph of the last ten seconds of frames (each split into the game’s steps, building the picture and drawing it), the frame rate and its 1% low, the garbage a frame makes, what each kind of script and each step of the frame costs, and how many entities the scene holds and how many of each component the active ones have. Read what it shows with ui_inspect on ProfilerPanel (Summary, Costs, Counts). | |
| Mute | Ctrl+Shift+M |
Game.Mute |
Mutes all sound the editor plays (the game in play mode, Play with Players, the Sound Maker and previews), or turns it back on: an on/off switch, kept between sessions. The game plays on exactly as it would with sound, and its own volume and Muted settings and its saves are left alone. An editor started with GRIFF_MUTE=1 plays no sound either way, and the switch isn’t kept. |
| Show Hitboxes | Game.ShowHitboxes |
Shows every hitbox and hurtbox in play over the running game (a Hitboxes’ boxes on the frame each entity shows): hitboxes red, hurtboxes blue, yellow while in hitstun, and hitboxes that have hit already this swing faint. Again hides them. It stays on for the games played after. (The Fighting module’s debug drawing, “Hitboxes”.) | |
| Play Fullscreen | Alt+Return |
Game.Fullscreen |
Plays the game over the whole of the screen the editor is on, with no border; again (or Alt+Enter) brings it back to the Game tab, still playing. Not playing yet, it plays the open scene fullscreen. Pause, Stop and the other Game shortcuts work over it, and a breakpoint or a pause on an error brings it back to show what happened. |
| Play with 2 Players | Ctrl+F5 |
Game.PlayWith2 |
Plays as two players at once: the Game tab hosts a network game and player 2 gets a window of their own. |
| Play with 3 Players | Game.PlayWith3 |
Plays as three players at once: the Game tab hosts and players 2 and 3 get windows of their own. | |
| Play with 4 Players | Game.PlayWith4 |
Plays as four players at once: the Game tab hosts and players 2 to 4 get windows of their own. | |
| Pretend a Slow Connection | Game.SlowConnection |
Pretends the players of Play with Players are on a slow connection, to feel what lag does. Again turns it off. | |
| Controls… | Game.Controls |
Opens the Controls window for the open project (one at a time; a new project closes it). | |
| Step Rate | Game.StepRate |
Sets how many steps a second the game takes (its step rate; 60 is usual), for the whole project: saved in project.griff, used by the game played here and exported, and by a running game straight away. A faster rate gives fast bodies finer steps at more work a second; the screen is drawn smoothly between steps whatever it is. Pick one of the usual rates, or run it without a pick (or pick a number) for any from 10 to 240. It’s undone like an edit. Scripts can still change Time.StepRate as the game runs. | |
| Clear Save Data | Game.ClearSaveData |
Deletes what the game saved with Game.SaveData while playing in the editor, to test a first run again. | |
| New Random Numbers Each Game | Game.NewRandomEachGame |
Makes each new game start its random numbers (Rand) from the clock, for the whole project: saved in project.griff and used by the game played here and exported. Without it every game made by one running editor starts from the same numbers, so the same rolls come up each Play. Rewinding still draws the same numbers again, and Rand.Seed in a script still wins. Again turns it off. | |
| Save Version | Game.SaveVersion |
Sets the version of the game’s saved games (Game.SaveVersion, 0 to begin with), for the whole project: saved in project.griff and used by the game played here and exported, from the next Play. Each saved game keeps the version it was saved by, so raise it when an update changes the game’s scripts or scenes in a way an older save needs bringing up to date, and add a system that does it (ISaveUpgrader). Saves load by name whatever their version, so a property added or removed needs nothing. |
Debug menu
Section titled “Debug menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Toggle Breakpoint | F9 |
Debug.ToggleBreakpoint |
Puts a breakpoint on the line the caret is on in the script showing, or takes off the one there: the game pauses when a script gets to that line, showing the values in scope, until Resume (F6). Works while the game runs too. An agent sets one on any line with the Debugger’s SetBreakpoint (ui_invoke). |
| Remove All Breakpoints | Ctrl+Shift+F9 |
Debug.RemoveAllBreakpoints |
Takes off every breakpoint in the project’s scripts. |
| Continue | F5 |
Debug.Continue |
Lets the game carry on from the line it’s stopped at (or from a pause), until it reaches a breakpoint again: the same as Resume (F6). Stopped where a script threw, the exception ends the frame (it goes to Output) and the game plays on. |
| Step Over | F10 |
Debug.StepOver |
Stopped at a line: runs it and stops at the next line of the same method, without stopping in the methods it calls (unless a breakpoint is there). At the method’s end it stops at the next line of the script that called it; a method Griff called (Update, say) returns into Griff, and the game stops at the next line of any script that runs, or pauses at the end of the frame if none does. Returns once the step is over, saying where it stopped and what’s in scope. Stopped where a script threw, the exception ends the frame and the game pauses after it. |
| Step Into | F11 |
Debug.StepInto |
Stopped at a line: stops at the next line of script that runs, going into the methods it calls in this script or another (and on through Griff to a script it runs, such as a spawned thing’s Start); a call into Griff that runs no script is stepped over. Paused between frames, plays the next frame up to the first line of script it runs. Returns once the step is over, saying where it stopped and what’s in scope. Stopped where a script threw, the exception ends the frame and the game pauses after it. |
| Step Out | Shift+F11 |
Debug.StepOut |
Stopped at a line: runs the rest of its method and stops at the next line of the script that called it. A method Griff called returns into Griff: the game stops at the next line of any script that runs, or pauses at the end of the frame if none does. Returns once the step is over, saying where it stopped and what’s in scope. Stopped where a script threw, the exception ends the frame and the game pauses after it. |
| Pause on Exceptions | Debug.PauseOnExceptions |
Pauses the game at the line where a script throws an exception the game doesn’t catch, in the middle of its frame, with the values in scope there (as a breakpoint does), rather than ending the frame and pausing after it. On unless turned off; kept between sessions. Stopped on one, Continue lets the exception end the frame and the game play on, a step ends the frame and pauses after it, and Rewind to Before the Exception goes back to just before the step that threw. | |
| Rewind to Before the Exception | Debug.RewindBeforeException |
Rewinds the game to just before the step in which a script last threw an exception: the moment that step began, paused there (in a scene too big to remember every step, the last snapshot before it). Set a breakpoint, then Continue or Step Frame to watch it happen again. Works while the game stands at the exception and after it played on, while that moment is on the rewind timeline (about the last 20 seconds), with one player. |
Audio menu
Section titled “Audio menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| New Sound… | Audio.NewSound |
Opens the Sound Maker on a new sound effect. | |
| New Music… | Audio.NewMusic |
Opens the Sound Maker on a new piece of music. | |
| Stop Preview | Audio.StopPreview |
Stops a sound being previewed in the editor. |
Art menu
Section titled “Art menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| New Sprite… | Art.NewSprite |
Opens the Sprite Painter on a new sprite. | |
| New Tileset… | Art.NewTileset |
Opens the Sprite Painter on a new tileset. | |
| Paint Selected | Art.PaintSelected |
Paints the selected entity’s sprite or tilemap: opens its picture in the Sprite Painter (or a new one shaped for it), and each save puts the picture on it. | |
| Add Tileset to Tilemap | Art.AddTileset |
Adds a tileset to the selected tilemap, so it paints with more tiles than one picture holds: the submenu lists the project’s images. A picture painted in Griff keeps its own tiles across and down; any other is cut into tiles the size of the map’s first tileset’s (16 pixels without one). The new tileset’s tiles are numbered from the next hundred, and the Scene view’s palette switches to it. A map with no image yet takes it as its first. | |
| Add Layer to Tilemap | Art.AddTilemapLayer |
Adds a layer to the selected tilemap: another grid on top of it, painted on its own, with its own collision (Solid, Layer, Ignore Layers) and draw order, using the map’s tilesets. It’s an entity inside the map’s, named after it (“Level Layer 2”), and is selected so painting goes there; the Scene view’s palette lists the layers to switch between. It draws over the others and doesn’t collide until Solid is turned on. | |
| Animation Clips… | Art.Clips |
Opens the Clip Editor: the selected entity’s animation clips, with the one picked playing in a preview. Clips are added, renamed, removed and picked to start with there, and given their frames (picked off the sprite sheet), speed and looping. It follows the selection. | |
| Add Free Font | Art.AddFreeFont |
Adds one of the free fonts that ship with Griff for games to the project: Press Start 2P (pixel), Atkinson Hyperlegible Bold (a clean sans), Crimson Text SemiBold (a serif) or JetBrains Mono Bold (a mono), all under the SIL Open Font License. The font and its license are copied into Assets/Fonts, so the game ships them, and the selected entities’ Text is set in it (one undo step); for an agent, “entity” names which entity’s Text to set (without it, the editor’s selection is used, and none selected just adds the font). Pick the font by name, e.g. “Press Start 2P”; a Font then names it by its path (“Fonts/PressStart2P-Regular.ttf”). The Inspector’s font picker does the same when one is picked there. |
Data menu
Section titled “Data menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| New Table… | Data.NewTable |
Makes a new table of game data in Assets/Tables, asking for its name (its file’s name, e.g. “Spells”), and shows it in the Tables panel (or a tab of its own, with Open Tables in Tabs on) with a column and a row to start from. Scripts read it as Tables.Get(“Spells”, “Fireball”), and Table Values components take their values from its rows. | |
| Open Table | Data.OpenTable |
Shows one of the project’s tables in the Tables panel, picked by its name (or its path in Assets); with Data > Open Tables in Tabs on, it opens in a tab of its own in the document area instead. | |
| Open Table in Tab | Data.OpenTableInTab |
Opens one of the project’s tables, picked by its name (or its path in Assets), in a tab of its own in the document area, beside the scene: a spreadsheet like the Tables panel’s with all of the area’s room, edited the same way (agents use ui_invoke on the tab, “Table: Spells”, as on the Tables panel). An open one’s tab comes to the front. | |
| New Simulation… | Data.NewSimulation |
Makes a new balance simulation in Assets/Simulations, asking for its name, and shows it in the Simulations panel. It starts with the open scene as its arena and the scene’s first two entities with Table Values as its sides (each class against each enemy), 200 runs a pair; set the rest in the panel (or ui_set on the Simulations panel: Arena, FirstEntity, FirstTable, SecondEntity, SecondTable, Runs, Seed, Sweeps, SweepColumn…), then Data > Run Simulation. | |
| Open Tables in Tabs | Data.TablesInTabs |
Turns on or off opening tables in tabs of their own: on, Data > Open Table, New Table and double-clicking a table in the Assets panel open it in a tab in the document area, beside the scene, rather than in the Tables panel. Kept between sessions. | |
| Open Simulation | Data.OpenSimulation |
Shows one of the project’s balance simulations in the Simulations panel, picked by its name (or its path in Assets). | |
| Tables | Data.Tables |
Shows the Tables panel: a spreadsheet for the project’s tables of game data, where cells are typed into, rows and columns added, sorted, filtered and moved, blocks of cells copied and pasted with Excel and Google Sheets, columns worked out by formulas or generated from curves, and the picked column charted. Read and change it with ui_inspect and ui_invoke on the Tables panel (TableName, Rows, SetCell, AddRow, AddColumn, Paste, SetFormula, Values, FormulaProblems, GenerateCurve, Chart…). | |
| Simulations | Data.Simulations |
Shows the Simulations panel: balance simulations played thousands of times headless and seeded (each class against each enemy in an arena, by the game’s own rules, or a script), and their results as a table, a matrix coloured by how one-sided each pair is, a sweep of a column by steps and values over a run, with charts and findings. A scene run plays the whole game from a scene instead (PlaysScene, Scene, Script as its strategy, ActEvery, TrackEvery, EndWhen, Flags, ClosePanels), as fast as it goes. Read and change it with ui_inspect, ui_set and ui_invoke on the Simulations panel (SimulationName, Arena, FirstTable, Runs, Sweeps, RunAsync, Summary, Findings, Pairs, ResultsJson, MatrixLines, SweepLines, OverARunLines, Value…). | |
| Run Simulation | Data.RunSimulation |
Runs the balance simulation showing in the Simulations panel: every pair of rows its runs (at each step of its sweep), headless, seeded and across the cores, and shows the results. It says their summary and what stands out (one-sided pairs, rows far from the rest, dead levels and jumps) when it’s done; pass “wait” for a big one. The panel’s Pairs, ResultsJson, MatrixLines, SweepLines and OverARunLines have the rest. | |
| Import CSV… | Data.ImportCsv |
Imports a CSV file (comma-, tab- or semicolon-separated, as a spreadsheet saves it) as a table named after the file, asking for the file: its first line names the columns and each line after is a row, named by its first value. A table of that name has its rows replaced (its columns keep their types; undo puts them back); otherwise a new one is made, each column getting the type its values all fit. | |
| Export CSV… | Data.ExportCsv |
Exports the table showing in the Tables panel (or the table’s tab worked in last) to a CSV file, asking where, to open in a spreadsheet: its rows’ names first, then a column each. | |
| Add Row | Data.AddRow |
Adds a row to the table showing in the Tables panel, after the picked row (or at the bottom), named “Row 4” and so on, ready to rename. | |
| Add Column… | Data.AddColumn |
Adds a column to the table showing in the Tables panel, after the picked one, asking for its name. It holds numbers; change its type (whole number, text, yes/no, choice, dice, sprite, sound, prefab or a row of a table) above the grid. | |
| Delete Rows | Data.DeleteRows |
Deletes the picked rows of the table showing in the Tables panel (undo brings them back). | |
| Delete Column | Data.DeleteColumn |
Deletes the picked column of the table showing in the Tables panel, cells and all (undo brings it back). | |
| Move Rows Up | Data.MoveRowsUp |
Moves the picked rows of the table showing in the Tables panel up a place (Alt+Up in the grid). | |
| Move Rows Down | Data.MoveRowsDown |
Moves the picked rows of the table showing in the Tables panel down a place (Alt+Down in the grid). | |
| Move Column Left | Data.MoveColumnLeft |
Moves the picked column of the table showing in the Tables panel left a place (Alt+Left in the grid). | |
| Move Column Right | Data.MoveColumnRight |
Moves the picked column of the table showing in the Tables panel right a place (Alt+Right in the grid). | |
| Sort Ascending | Data.SortAscending |
Sorts the rows of the table showing in the Tables panel by the picked column, lowest (or A) first: numbers by size, text alphabetically, choices in the order of their choices, empty cells last. With the rows’ names picked, by name. | |
| Sort Descending | Data.SortDescending |
Sorts the rows of the table showing in the Tables panel by the picked column, highest (or Z) first; empty cells last. | |
| Fill Down | Data.FillDown |
Fills down in the table showing in the Tables panel (Ctrl+D in the grid): each picked column’s top picked cell is copied into the picked cells under it, or with one row picked, the cell above is copied into it. | |
| Generate from Curve | Data.GenerateCurve |
Generates the picked column of the table showing in the Tables panel from the curve set in its curve editor (the Curve button in the column bar), a row a level: XP to the next level, a stat or a price, from its first value to its last along a linear, power, exponential or S-shaped curve, or through points drawn on the chart. Rows are added for levels past the last. One undoable step; the column keeps the curve, so it can be changed and generated again. Set the curve with ui_set on the Tables panel’s Curve (Kind, First, Last, Levels, Shape, RoundTo, Points), or do it all with ui_invoke Tables GenerateCurve. | |
| Copy Cells | Data.CopyCells |
Copies the picked cells of the table showing in the Tables panel to the clipboard as tab-separated text (Ctrl+C in the grid), as spreadsheets do, to paste into Excel, Google Sheets or another table. Picking every row copies the headings too. | |
| Cut Cells | Data.CutCells |
Copies the picked cells of the table showing in the Tables panel to the clipboard (Ctrl+X in the grid), then empties them. | |
| Paste Cells | Data.PasteCells |
Pastes tab-separated text from the clipboard (Ctrl+V in the grid), as Excel and Google Sheets copy it, into the table showing in the Tables panel at the picked cell, adding rows past the bottom. Into a table with no rows, the first line names the columns. Values that don’t fit their column are left out and said. | |
| Clear Cells | Data.ClearCells |
Empties the picked cells of the table showing in the Tables panel (Delete in the grid). |
Build menu
Section titled “Build menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Build Game | Ctrl+B |
Game.Build |
Exports the project as one standalone .exe that carries its own .NET: nothing for players to install. |
| Build Small Game (Needs .NET) | Ctrl+Shift+B |
Game.BuildSmall |
Exports the project as one small .exe for players who have the .NET Desktop Runtime installed. |
| Build for Web… | Game.BuildWeb |
Exports the project to play in a browser, into a folder you pick (by default the project’s Build folder): the folder holds index.html and everything with it, ready for any static host such as GitHub Pages, and a zip of it beside it is ready to upload to itch.io as an HTML game. Sound, saves (kept in the browser), controllers, touch and fullscreen work there; network play doesn’t (browsers have no UDP), which it warns of. It then offers to play it in your browser, served on this computer only. |
Help menu
Section titled “Help menu”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Design System Gallery | Help.DesignSystem |
Shows the editor’s design system: its colors, type and controls (for people working on Griff itself). | |
| MCP Server | Agent.Server |
Turns the MCP server on or off: while it’s on, agents like Claude Code can drive the editor (on this computer only). It’s remembered. | |
| Copy MCP Setup Command | Agent.CopySetup |
Copies the command that adds the editor’s MCP server to Claude Code, to paste into a terminal. | |
| Check for Updates… | Help.CheckForUpdates |
Checks Griff’s releases for a newer version of the editor, in the Updates window: it shows the check and the download (with how far it’s got) as they go, then what came of it: up to date, or why it couldn’t check. When there’s a newer version it’s downloaded, then asked: restart now to use it (“Update ready”: true; unsaved changes are asked about first, as closing asks), or let it be put in place the next time Griff starts (false). A Griff installed from a pre-release takes newer pre-releases and the first newer release; one installed from a release takes releases only. Only a Griff installed with the installer updates itself; a build from source or the portable zip says so and does nothing. | |
| Check for Updates Automatically | Help.CheckForUpdatesAutomatically |
Turns the check for a newer Griff a little after the editor starts on or off (on at first). It’s remembered. Help > Check for Updates still checks when it’s off. |
Shortcuts and agents only
Section titled “Shortcuts and agents only”| Command | Shortcut | Id | What it does |
|---|---|---|---|
| Add to Scene | Asset.AddToScene |
Adds a prefab or an image from Assets to the open scene (or inside the prefab whose tab is showing), as the Assets panel’s right-click menu does: a prefab as a linked copy where it was saved from, an image as a sprite sized to its shape at 0, 0. The new entity is selected. Pick the asset by its path in Assets, e.g. “Prefabs/Coin.prefab”. | |
| Open in Another Program | Asset.OpenExternally |
Opens a file in Assets with the program Windows has for it (an image editor, a sound editor, a code editor), given by its path in Assets, e.g. “Sounds/jump.wav”. Programs and scripts that would run instead of open are refused. | |
| Show in Explorer | Asset.ShowInExplorer |
Shows a file or folder in Assets in File Explorer, given by its path in Assets (“Sprites/hero.png”, “Sprites”); with none, the Assets folder itself. | |
| Collapse All | Assets.CollapseAll |
Folds every folder in the Assets panel shut but Assets itself, in its folder tree and its Tree view alike, leaving what’s at the top of Assets showing: the Collapse All button on its toolbar. | |
| Expand All | Assets.ExpandAll |
Opens every folder in the Assets panel, in its folder tree and its Tree view alike, so everything in Assets shows: the Expand All button on its toolbar. Agents can list Assets with assets_list whether it’s open or not. | |
| Add to All | Component.AddToAll |
With several entities selected, adds a component only some of them have to the others, as a copy of the one shown (its values too, and with what it needs), as one undo step. | |
| Apply to Prefab | Component.ApplyToPrefab |
Makes the value a placed prefab copy has in a field its prefab’s: saves it into the prefab file, and brings the prefab’s other copies up to date (what they changed themselves stays). Not while the selected copies’ values differ. | |
| Copy Values | Component.CopyValues |
Copies a component’s values (the primary selected entity’s), for Paste Values on another of its type. | |
| Move Down | Component.MoveDown |
Moves a component one place down its entity’s list (each selected entity’s), as one undo step. | |
| Move Up | Component.MoveUp |
Moves a component one place up its entity’s list (each selected entity’s), as one undo step; the Transform stays first. | |
| Paste Values | Component.PasteValues |
Sets the values copied with Copy Values on a component of the same type (on each selected entity), as one undo step. | |
| Remove Component | Component.Remove |
Removes a component from each selected entity that has it, as one undo step, asking first when another component needs it. The Transform stays. | |
| Reset to Defaults | Component.Reset |
Sets every value of a component back to what a new one starts with (on each selected entity), as one undo step. | |
| Revert to Prefab | Component.RevertField |
Sets a field a placed prefab copy changed back to the prefab’s value (on each selected copy that changed it), as one undo step. | |
| Export Simulation Results… | Data.ExportResults |
Exports the results of the simulation showing in the Simulations panel to a CSV file, asking where: a row a pair (at each step), a column a measure. A scene run (or one tracking every so many seconds) also writes every point of its values over a run to “… over time.csv” beside it. | |
| Stop Simulation | Data.StopSimulation |
Stops the balance simulation that’s running; its last results stay as they were. | |
| Collapse All | Hierarchy.CollapseAll |
Folds every entity in the Hierarchy shut, leaving only the top-level ones showing: the Collapse All button above the tree. | |
| Expand All | Hierarchy.ExpandAll |
Opens every entity in the Hierarchy that has entities inside it, so the whole scene shows: the Expand All button above the tree. Agents can read the whole tree with scene_tree whether it’s open or not. | |
| Collapse All | Inspector.CollapseAll |
Folds shut the Inspector’s section of every component the selection has, and every subheading in them, leaving their headers: the Collapse All button by the filter. Like folding one, it holds for those components on every entity and is kept for next time. | |
| Expand All | Inspector.ExpandAll |
Opens the Inspector’s section of every component the selection has, and every subheading in them: the Expand All button by the filter. Like folding one, it holds for those components on every entity and is kept for next time. | |
| Go to Script Error | Output.GoToScriptError |
Opens a script in the script editor at a problem Output reported, e.g. “Ship.cs(12,5)” for “Ship.cs(12,5): ; expected”, as double-clicking it in Output does. Without a pick, the newest one. | |
| Clear | Profiler.Clear |
Forgets the frames the Profiler has recorded, starting its graph and numbers afresh. | |
| Record | Profiler.Record |
Pauses the Profiler’s recording, holding its graph and numbers still to look at while the game plays on; again records once more. | |
| Play Chart | Rhythm.PlayChart |
Plays the chart showing in the Chart panel from its playhead (the song, a tick on each note of the difficulty, and clicks on the beats with the metronome on), or stops it. Set the Chart panel’s Playhead first to play from elsewhere. | |
| Record Chart | Rhythm.RecordChart |
Starts recording a take into the Chart panel’s chart at its difficulty, from its playhead: the song plays from a bar before it, and each lane’s key or button pressed is a note at the beat the player heard it (their audio offset allowed for), snapped to the panel’s Snap, a key held half a beat or more a hold. Run again (or press Space) to stop: the take goes in over the notes there (Overdub) or in place of them (Replace), as one undo step, and it says what went in. Agents can record a take of taps at given moments with ui_invoke Chart RecordTake. | |
| Collapse All | Script.CollapseAll |
Folds shut every block in the code of the script whose tab is showing, its classes, methods and comments (opening a class shows its methods a line each): the Collapse All button above it. | |
| Expand All | Script.ExpandAll |
Opens every block folded shut in the code of the script whose tab is showing: the Expand All button above it. |