Skip to content

Frequently asked questions ​

What is ThicketScript? ​

A language built from the ground up to make games. You write .tks files in a TypeScript-like syntax, and one program, thicket, runs, checks, formats, debugs and builds them. Your scripts compile to bytecode for ThicketScript's own VM, written in C++. There is no JavaScript, no V8 and no transpiling step anywhere in the pipeline.

Why make a new language? ​

We wanted to write game logic in the syntax we already love, without the JavaScript runtime that usually comes with it. TypeScript's syntax is clear and the type checking is great. JavaScript's runtime was never built to live inside a game. ThicketScript keeps the syntax and gives it a runtime made for play: real integer types, structs that are values, async that reads like a story, and threads with one keyword. The About page tells the longer story.

Is it TypeScript? ​

No. ThicketScript is its own language with its own compiler, type checker and VM. It doesn't use the TypeScript compiler or any of its libraries.

It is heavily inspired by TypeScript's syntax, so if you read TypeScript you can read ThicketScript today. It leaves some things out, like eval, Symbol and decorators, and adds things TypeScript never had: structs with operators, packed number types like uint8 and float32, series and parallel, workers, mutex functions and dump(). Coming from TypeScript has the full list, and Features shows the additions running.

Do I need to know TypeScript? ​

No. It helps, because the syntax will look familiar, but the guide starts from your first line.

Is it safe to run scripts? ​

Scripts start with no file, network, crypto, database, shell, environment or audio access. A project grants each one in its thicket.json. Until it does, the first call that needs a permission throws a PermissionError that names the setting to add, and your script can catch it.

The checks happen when a call runs, not when a module is imported, so a library can offer file helpers without forcing every project that uses it to grant file access. Array access is bounds-checked, and scripts never see raw pointers. Modules and imports shows the settings.

What happens when a script goes wrong? ​

You get an error you can handle, not a crash. Runaway recursion throws a catchable RangeError: Maximum call stack size exceeded. Going over the heap limit you set in thicket.json throws a catchable RangeError too. Integer overflow and out-of-range stores raise RangeError on the line that caused them, and a value that might be null has to be checked before you use it, so that mistake is caught before the game runs.

Do I need willow to use it? ​

No. ThicketScript runs on its own: command-line tools, servers, build scripts and image processing all work with thicket and nothing else. willow adds 2D, and willowui adds game UI, when you want them.

Which editors does it support? ​

thicket lsp is a built-in language server, and the JetBrains plugin uses it for autocomplete, type checking, go-to-definition and debugging. thicket debug also speaks Chrome DevTools, and thicket mcp lets AI coding assistants work with your project. Pass thicket mcp --project <dir> when the assistant starts it outside the project folder; clients that share their workspace roots need no flag.

What does it cost? ​

Nothing. ThicketScript is free to use. No royalties. No revenue cap. Make and sell anything with it. The license summary has the terms in plain English.

How is ThicketScript funded? ​

Through the optional editors on thicketcreator.com. Waystone: RPG Creation Studio and the editors that follow it are paid tools for ThicketScript, and they fund the language. The language stays free, with no royalties, and you never need an editor to ship a game. Editors never unlock language features: everything an editor does, you can do in plain ThicketScript.

When can I download it? ​

Soon. The download page has the first release as soon as it's out, and Releases carries the notes for every version.