WikilyWIKILY
All games8 Wikis · pick your game
Menu

Documentation

Do it by hand

Updated 2026-07-24

Every working data page on Wikily is the same three pieces: a table holding the data, variables that read it, and a page with tokens that show the result.

Two ways to build it

A bound page can correct its own row here. The edits sit on top of the uploaded data, so a re-upload does not lose them.
By handYou click through the manager: make the table, add the variables, lay out the page.While you are learning, and for anything small enough to type.
With an assistantThe same operations in bulk, without the clicking.When the data is large or repetitive. A roster runs to hundreds of rows.

Neither path is more real. They call the same operations, so you can start by hand and later feed the same page a thousand rows by automation.

By hand, in the manager

Four stages, in order.

1. The table. One row per thing, one column per field.

  1. Open your wiki, click Manage, then Datasets.
  2. Create a dataset and name it, for example Creatures.
  3. Add a column for each field: name, hp, diet.
  4. Add one row per entry.

2. The variables. One to hand the table to a script, one per reader choice.

  1. Add a Dataset variable pointing at your table.
  2. Add a Reader input for each choice: a number, or a list whose options come from a column.

3. The logic. A formula that turns inputs plus data into an answer.

  1. Add a Formula variable and switch it to Lua.
  2. Read the inputs and the dataset, then return the fields you want to show.

4. The page.

  1. Drop a Reader input block on the page for each input.
  2. Write tokens that read the formula variable fields.
  3. Publish.
Variable kinds and tokensVariables and formulas
Reading a whole tableLua with datasets
The script itselfWriting Lua scripts

With an assistant or a script

Everything above is also available over Wikily API. The same operations are exposed to an AI assistant through an MCP server, so a helper can drive your wiki directly.

Set up a service token first. It is an editor-scoped key that stands in for you, so keep it private and treat it like a password.

The operations mirror the manager, one for one:

create_datasetMake a table and define its columns.
append_dataset_rowsLoad a whole roster in a single pass.
create_pageCreate and update pages, and set their content.
upload_mediaUpload the images a row points at.

A good first job is the one that is miserable by hand: point an assistant at a spreadsheet, have it create the dataset and append every row, and a few hundred creatures land in one go.

What it will and will not do

Writes go liveWhat the assistant writes, readers see. There is no draft-only mode over the API.
Template edits are reviewedChanges to shared template blocks are held for review, the same as by hand.
No deletesAn assistant can create and update. Removing things stays a deliberate, by-hand action.

One source of truth

The data lives in the dataset and everything else points at it. Nothing copies it.

That is the whole payoff. Fix a stat, add a creature, rename a field, and every page, token and choice list that reads it follows on its own. There is no script to re-run.

Load the data once, by hand for a little and by automation for a lot, then point your variables at it. See Lua with datasets and Variables and formulas.