Welcome to the official ct.js docs!

Learn ct.js, complete tutorials, and contribute to ct.js documentation

Read the docs →

Learn JavaScript

Games made in ct.js use JavaScript, or simply JS, to code its gameplay logic. Learn the needed part of it in our little Introduction to JS.

Learn JavaScript →

Complete tutorials

The best way to learn is by making, and you can create real games with our step-by-step tutorials:

Learn the core library

See additional methods and properties of copies, camera, rooms, and procedurally create tilemaps, backgrounds, and new copies.

Go to ct.js docs →

Notable changes and additions in ct.js v3.0

  • New room editor, woop-woop! Docs for the room editor was updated — it has a dozen of handy hotkeys. If you have any issues with it, see the migration guide!
  • There are now more events in the template editor — tutorials have been updated accordingly (thanks to Firecakes!)
  • Physics2D example was updated and now uses newly added events. Making physics games became much easier!
  • There are new explanations to ct.js license in the License panel. TL;DR: ct.js is just awesome.
  • A wild ct.rooms.restart() appears.
  • Firecakes released a vgui catmod that adds API for making a textbox input!
  • EhanAhamed updated ct.desktop module, it now has tons of new features and supports both Electron and NW.js runtimes! See its updated docs in ct.js.
Changelog →

Get the cheatsheet

Download the cheatsheet →

Join the community

Join our Discord server to meet other game developers, receive help, aid others, and share your creations. Alternatively, you can also post on our forum.

Discord Server →Forum →


Set up a dev environment to run a local docs server and use simple Markdown syntax to write new tutorials and send fixes.

You can also edit docs on Github — look for "Propose edits" links at the bottom of each page!

Visit the repo →