Modules
ThicketScript comes with the pieces a game needs. They sit in layers, and you pick the ones you want:
| Module | What it is | How you get it |
|---|---|---|
| willow | The 2D display tree: sprites, text, tweens, cameras, particles, tilemaps. | Built into thicket. List willow in systems. |
| willowui | UI widgets built on willow: buttons, lists, text input, windows, themes. | A package, written in ThicketScript. |
| gamekit | Game structure: entities, components, scenes, saves. | A package, written in ThicketScript. |
Under all of them is the engine core: windows, input, audio and rendering. You never import it directly.
Systems and packages
The difference matters only in thicket.json. In your code, every import looks the same.
- A system is built into the
thicketprogram. You list it insystems. - A package is ThicketScript source from a folder, a git repository or a zip. You list it in
packages. See Packages.
json5
{
entry: "app.tks",
systems: ["willow", "bitmap"],
packages: { willowui: "../willowui-tks" },
window: { title: "My Game" },
}Leave systems out and the project can use every system the host has.