Skip to content

Supported Languages

TimotheeGreg edited this page Sep 27, 2023 · 20 revisions

TIC-80 Supports multiple scripting languages, including:

TIC-80 also supports compiled languages via our WASM support. If your compiled language of choice can compile to Web Assembly there is a good chance you could use it to develop for TIC-80.

You need to specify the language you use by adding one the following to the metadata:

Language Tag
For Fennel ;; script: fennel
For Javascript // script: js
For Lua -- script: lua
For Moonscript -- script: moon
For Ruby # script: ruby
For Squirrel // script: squirrel
For Wren // script: wren
For Janet # script: janet
For Scheme ;; script: scheme
For Python # script: python

Note: If no script tag is added it will be considered as a Lua cart.

Python Integration

Python integration is based on pocketpy, the list of available modules can be found in the documentation.

Starting New Compiled from Source Project

Starting New Scripting Project

To see a demo or start a new project in your scripting language of choice just start up TIC-80 and from the console type new [lang], for example for a Wren project just type:

new wren

Type help new to print arguments for each language.

for some on-screen guidance.

Structured Edition

Structured edition is an edition mode, available only for lisp-like languages like Scheme, Janet and Fennel and with the Emacs mode enabled. It helps the user to keep the program well written by automatically balancing the parenthesis and editing code at an S-Expression level. It will be harder to delete parenthesis until the expression is emptied first, to help keep the balance. Here are some key bindings available in structured edition languages:

Key Binding Functionality
ctl-down or alt-S S-Expify (add parenthesis around word or s-expression)
ctl-up Extirp from S-Expression (remove word or s-expression from enclosing s-expression)

Fennel strict Tag

See metadata page.
TODO

Using Typescript

Scrambier developped a tool to use typescript in TIC-80 that you can find on the external tools page.

Clone this wiki locally