Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


A member registered Sep 06, 2016 · View creator page →

Creator of

Recent community posts

Hello, thank you for your words

as for music import, I can say that it's not an easy task, because TIC-80 has its own sound system and it's hard to convert other formats into it

maybe, only notes can be imported

unfortunately, nobody knows, we release it when all these issues will be closed

Please wait until the v1.1 release

try to save the cart using "save cart_name.tic" command if you need a file

also, you can locate the file using "folder" command


Unfortunately, there is no option to play a game without an intro/menu, but we have a cart player who can play carts without any TIC-80 mention and it can be built from the sources if you need it. Here is the link


Thank you for so a detailed report, I'll take a look at the benchmarks, it's interesting why it works differently on Firefox, in the other browsers TIC-80 works pretty smoothly.

By the way, the SCREEN OFFSET (VRAM) is fixed on the dev branch, I hope we will release it, soon.

Thank you.

Hello, just noticed you have removed all your carts from the website due the compatibility and performance issues. Could you pls describe the problems that angered you so much, maybe we can fix them.


Unfortunately, Google removed the app from the store, at the moment you can manually install .apk or you could install the app from F-Droid

TIC-80 community · Posted in WIP?

I've updated the description to factual information, sorry for the inconvenience.

By the way, the last TIC-80 update was in May 2022 😂

TIC-80 community · Posted in WIP?

Could you please specify what pro features you expect the most, and they are WIP?

Hi, try to enable DEV MODE in the OPTIONS to quickly get into code editor


The only way I see is to run my cart with the TIC-80 player, but you have to build it from source.

After build you will find `player.exe` next to `tic80.exe`, you can name `cart.tic` to your cart and put it next to `player.exe` and it can run without anything, just your game.

Also you can customize the player as you wish and build.

The binary you download depends on OS you want to export to, but yes it's exact copy of tic executable, also we have version without editors in pro version.

Try to look at the file where we have all the build configurations and options for all supported OS.

I know, it's disappointing, even for me and I'll try to improove this part in the future, sorry for that.

Unfortunately I don't see an easy way to replace the downloaded binary, alternatively you can change the url to your own and force it to download your binary.

Please use a Release build to make it smaller, looks like you used a Debug build.


here we embed the cart to the downloaded binary

and here we load embeded cart in exported game

This is a well known bug, unfortunately, it hasn't been fixed yet, sorry.

Second, I haven't yet found a way to write a usable sleep() function.

As a possible solution, it could be like in this post

First, after I export the html file I unzip it and open the index.html, but nothing happens after I click the "click to play" except that the words disappear. Am I exporting it the wrong way?

You have to use any local http server to load index.html or just try to upload your game to

Unfortunately you can't turn off the border at all, because the border is part of the TIC-80 screen, it has a resolution of 240x136px + the border we have is 256x144px. The only thing we could add is the Integer Screen Scaling option, which can reduce the border.

The png should be 128x128

import sprites t.png
function TIC()
{ cls(13) m=mouse() x=m[0] y=m[1] left=m[2] print(m[0]+" "+m[1]+" "+left) }

Try the code above. tThe mouse() api returns an array with values [x, y, left btn, middle btn, right btn].

Please don't use `dofile`, it doesn't work for a long time, please save your cart as a project `save cart.lua`, then call `folder` to find the `cart.lua` file which you can modify in any text editor, it will be automatically reloaded into the TIC-80 while you are editing.

I think it should be 128x128 png image.

It has to be a png, GIF is not longer supported, sorry.

ok, we'll add pro .deb with the upcoming release


there is only a x86_64 ELF executable in the ZIP file, but you can download .deb file on the releases page on Github

Hi, seems you are trying to run 64bit TIC on 32bit system.

Pls, try to dowload version for winxp

Thanks for the info, i will know now.


yes, the issue should be fixed on the dev version, you can check it here

Unfortunately, we are using the SDL2 library to render the TIC screen, which requires Android API level 24, i.e. Android 7.0 minimum.


xmonkee what version do you use to the fps, 1.0-dev or 0.90?

Hi, please try `--vsync` on the latest dev build, it should be fixed.


You have to copy carts to TIC80 application folder, use "folder" command to find it. Unfortunately, the latest Android does not allow you to copy files to the application folder, so we are trying to find a solution.

Yes, the binary isn't signed with the Apple Dev certificate, but you can always go to the system preferences and allow to run it in the Privacy settings.

Unfortunately, there is no file output, you only able to save data to the persistent memory

Pls, use the build for Andriod to run on your Chromebook

You can access the current palette in the VRAM using peek()/poke() API functions.

Here is an example

TIC-80 community · Posted in TAB

Unfortunately, you can't change tab size, but it's planned

Just copypasted, fixed tabs near `cls 0` and got this

fixed code

-- title:  game title
-- author: game developer
-- desc:   short description
-- script: moon
ticks = 1
cur =
 x: 2
 y: 0
 rot: 1
 piece: 1
 color: 1
  {{0,1,0,0}, {0,1,0,0}, {0,0,0,0}, {0,1,0,0}},
  {{1,1,1,0}, {0,1,1,0}, {1,1,1,0}, {1,1,0,0}},
  {{0,0,0,0}, {0,1,0,0}, {0,1,0,0}, {0,1,0,0}},
  {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}},
export TIC=->
 cls 0
 for i = 0,11
  for j = 0,16
   spr mget(i, j), 72+i*8, j*8
 for i = 1,4
  for j = 1,4
   if PIECES[cur.piece][j][1][i] == 1
    spr cur.color, 72+(cur.x + i)*8, (cur.y + j)*8
 if ticks % 15 == 1
  if collide(cur.x, cur.y+1)
   for i = 1,4
    for j = 1,4
     if PIECES[cur.piece][j][1][i] == 1
      mset i+cur.x, j+cur.y, cur.color
  cur.y = 1
  cur.y += 1
 ticks += 1
export collide = (x, y) -> 
 for i = 1,4
  for j = 1,4
   if PIECES[cur.piece][j][1][i] == 1
    if mget(x+i, y+j) > 1
     return true
 return false

TIC-80 community · Posted in Guide


try to use math.random() to generate random numbers

As for line collision, it's not TIC-80 specific question, pls google it.

Yes, it's not compatible with 0.90 but I saw the author reported he successfully setup it with the new version.