# Tablecraft Edit DataTables and whole collections of DataAssets as a spreadsheet, inside the Unreal Editor, and balance them with formulas and heatmaps. Editor-only: nothing ships with your game. Supported: Unreal Engine 5.6, 5.7 and 5.8 on Windows. ## Quick start 1. Enable **Tablecraft** in *Edit > Plugins* and restart the editor. 2. In the Content Browser, right-click a **DataTable** and choose **Open in Tablecraft**, or right-click any **DataAsset** and choose **Edit All <Class> in Tablecraft** to get every asset of that class (subclasses included) as rows of one sheet. 3. Click a cell and type. Enter commits and moves down; Ctrl+Z undoes. Double-clicking an asset still opens its usual editor; Tablecraft only opens when you ask for it. ## Editing | Action | How | |---|---| | Select | Click; Shift+click or Shift+arrows extend the selection. Click a row name to select the row. | | Move | Arrow keys, Tab / Shift+Tab | | Edit as text | Just type over the cell, or Enter / F2 / double-click on text and number cells | | Native editor | Enter / F2 / double-click on enum, bool, gameplay tag, tag container and asset-reference cells opens the same widget the Details panel uses | | Flip a bool | Space | | Commit / cancel | Enter commits and moves down, Esc cancels | | Copy / paste | Ctrl+C / Ctrl+V as tab-separated text, so blocks go to and from Excel or Google Sheets | | Fill | Select a range, paste a single value: every selected cell gets it | | Select column / row | Ctrl+Space / Shift+Space | | Undo / redo | Ctrl+Z / Ctrl+Y. A paste, a fill or an import is one undo step. | **Nested data.** Struct and array columns have an arrow in their header: click it to show the struct as one column per field (`Stats.Damage`, `Stats.Speed`) or the array as one column per element (`Upgrades[0]`, `Upgrades[1]`...). Arrays of structs expand twice (`Levels[0].Damage`). Writing into an element past the end of an array grows the array. Structs with their own text format (gameplay tags, soft object paths) stay one column and use the native editor. ## Rows (DataTables) Add Row (Ctrl+=), Duplicate (Ctrl+D, the copy goes right under the original), Delete (Ctrl+-, every row the selection touches) and Rename (double-click the row name) are on the toolbar and the right-click menu. Drag rows by their name, or Alt+Up / Alt+Down, to change the order saved in the table. ## Viewing - **Sort**: click a column header (ascending, descending, back to table order). Numbers sort as numbers. - **Filter**: the *Filter rows* box keeps rows whose name or any visible cell contains the text. - **Row colors**: right-click > Row Color. Saved with the DataTable. Sorting and filtering only change what you see. Reordering rows is disabled while a sort or a filter is on, and Tablecraft tells you why. ## Balancing - **Formula columns**: *Add Formula...* on the toolbar. Put column names in braces: `{Stats.Damage} * {Stats.Speed}`, `{Cost} / {Weight}`, `({Base} + {Bonus}) ^ 2`. Operators: `+ - * / ^ %` and parentheses. A formula can read any column, shown, folded or not. The column is read-only, sortable, filterable and updates as you edit. Bools count as 1 and 0; a row without a number in a referenced column shows `#ERR`. - **Heatmaps**: hover a numeric column header, open its menu (the small arrow) and choose *Heatmap*. Cells go from blue (lowest value shown) to orange (highest shown); a filter narrows the range to what you see. - **Selection summary**: the bar under the sheet shows the number of cells and the sum, average, minimum and maximum of the numbers in the selection. Formulas and heatmaps are saved with the DataTable (in its package metadata, editor-only). For DataAsset collections they are saved in your per-project editor settings. ## Import and export *Export...* writes every row (whatever the filter or sort) to **CSV** or **JSON**; *Import...* reads either back. - **CSV columns are the sheet's columns.** Expand a struct before exporting and each field gets its own column in Excel, instead of one `(Damage=12,Speed=1.5)` cell. Formula columns are exported as `=Name` for reference and skipped on import. CSV is written as UTF-8 with a byte order mark so Excel reads it correctly. - **Import merges.** Rows in the file are updated, only in the columns (or JSON fields) the file has; rows the file does not name are left alone; new DataTable rows are added. Nothing is deleted. The whole import is one undo step. Problems (unknown columns, values that do not parse, asset names that do not exist) are listed in the Output Log. - **Interchange with the engine.** The engine's own DataTable CSV and JSON import into Tablecraft, and Tablecraft's JSON and unexpanded CSV import into a DataTable the usual way. ## DataAsset collections Rows are every asset of the class; columns are the properties the Details panel would show. Editing, pasting, nested columns, sorting, filtering, formulas, heatmaps and import/export work as for tables. *Save* on the toolbar saves the assets you changed. Assets are separate files with no shared order, so there is no row reordering, adding, deleting or renaming in this mode (right-click a row to open the asset in its usual editor), and no row colors. ## Known limits - An empty cell in an imported file does not remove an array element; arrays only grow on import. - Importing a file that adds thousands of new rows at once is slower than editing (one row-list refresh per new row). - Maps and sets are edited as text. - Opening a DataAsset collection loads every asset of the class. ## Support contato@tessaroapps.com