<!--lint ignore-->

# Awesome ComputerCraft [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

[<img src="assets/cc-tweaked-logo.png" align="right" width="100">](https://computercraft.cc)

> Useful libraries, programs, literature, and mods for [ComputerCraft](https://computercraft.info) and [its forks](https://computercraft.cc).

**ComputerCraft** is a mod for Minecraft which adds computers which are programmable with the Lua programming language. **ComputerCraft: Tweaked** is a fork of the mod for newer Minecraft versions.

This project lives [on GitHub](https://github.com/tomodachi94/awesome-computercraft) and might not render correctly on third-party websites. If you want to contribute, see [CONTRIBUTING.md](./CONTRIBUTING.md). If you have other questions, see the [FAQ](./FAQ.md).

A note on abbreviations: `CC` is ComputerCraft, `CC:T` is ComputerCraft: Tweaked, and `CC:R` is ComputerCraft: Restitched.

## Contents
<!-- TOC -->
- [Mods](#mods)
  - [ComputerCraft mods](#computercraft-mods)
  - [Add-on mods](#add-on-mods)
  - [Resource packs](#resource-packs)
- [Lua programs](#lua-programs)
  - [Utility](#utility)
  - [Library](#library)
  - [Fun](#fun)
  - [Operating systems](#operating-systems)
  - [Economy](#economy)
  - [Mod-specific programs](#mod-specific-programs)
- [Non-Lua programs](#non-lua-programs)
  - [Bridging](#bridging)
  - [Emulators](#emulators)
  - [Plugins](#plugins)
  - [Tools](#tools)
- [Literature](#literature)
  - [Essays](#essays)
  - [Tutorials](#tutorials)
  - [Charts, tables, and calculators](#charts-tables-and-calculators)
  - [Other lists](#other-lists)
- [Resources](#resources)
<!-- /TOC -->

## Mods
### ComputerCraft mods

- [ComputerCraft: Tweaked](https://computercraft.cc) -  A fork of the original ComputerCraft for modern versions of Minecraft.
- [ComputerCraft: Restitched](https://www.curseforge.com/minecraft/mc-mods/cc-restitched) -  A set of patches for CC:T that allow running it on Fabric. 
- [ComputerCraft](http://computercraft.info) -  A mod which adds computers to allow execution of Lua programs. 

### Add-on mods

- [Advanced Peripherals](https://www.curseforge.com/minecraft/mc-mods/advanced-peripherals) -  A mod which adds various peripherals and APIs for interacting with other mods. 
- [Computronics](https://wiki.vexatos.com/wiki:computronics) -  A mod which adds various peripherals, notably for detecting events in the world and for manipulation of sound. 
- [Plethora](https://plethora.madefor.cc) -  A mod which adds peripherals and allows many blocks to be accessed as such. In addition, it also allows for manipulation of the player as a peripheral. 
- [CC:C Bridge](https://modrinth.com/mod/cccbridge) - A mod that adds compatibility between the ComputerCraft and [Create mod](https://modrinth.com/mod/create)! 
- [Turtlematic](https://www.curseforge.com/minecraft/mc-mods/turtlematic) - A mod which end goal is to make turtles so useful, so you will never need any other automation mod!
- [UnlimitedPeripheralWorks](https://www.curseforge.com/minecraft/mc-mods/unlimitedperipheralworks) - A mod which adds various peripherals to extend CC:T capabilities. Also adds a lot of peripherals for other mods.

### Resource packs

- [ComputerCreate](https://modrinth.com/resourcepack/computercreate) -  A resource pack which adds texture packs in the style of the [Create mod](https://modrinth.com/mod/create).

## Lua programs
### Utility

- [ComputerCraft Advanced Shell (cash)](https://cash.madefor.cc) -  A Bourne-compatible shell for ComputerCraft. 
- [Consult](https://consult.madefor.cc) -  A text editor emphasizing ease of use and compatibility with many systems. 
    - [Consult: Recrafted](https://github.com/manaphoenix/CONSULT_RECRAFTED) -  A fork of Consult for Recrafted systems.
- [GEMU](https://github.com/9551-Dev/GEMU) -  CraftOS-PC graphics mode emulator based on Pixelbox.
- [gist](https://pastebin.com/zSLPYpqs) -  A GitHub Gist download/upload program which aims to extend the built-in `pastebin` program, but for Gists.
- [Howl](https://github.com/SquidDev-CC/Howl) -  A build system for CC and CC:T.
- [LuaIDE](http://www.computercraft.info/forums2/index.php?/topic/12347-) -  A full-fledged IDE for editing Lua files in-game.
- [Mildly Better Shell (MBS)](https://github.com/SquidDev-CC/mbs) -  An improved shell that includes scrollback and improved resolution of completions.
- [ModemShark](https://gist.github.com/MCJack123/56ca71555d9c0f78d4c985f1e9ad28e8) -  Modem packet sniffer with a simple UI.
- [netshell](https://github.com/lyqyd/cc-netshell) -  Access a computer's shell from another computer.
- [OrangeBox](https://github.com/walksanatora/orangebox) - Virtualization support for ComputerCraft computers.
- [rawshell](https://gist.github.com/MCJack123/8c8861e5e3082d2bed18d07641b5b2cc) -  A modern alternative to netshell supporting CraftOS-PC's "raw mode" format, with file transfers, encryption, passwords, WebSockets, and more.
- [unicornpkg](https://unicornpkg.madefor.cc) -  Modern package management that doesn't suck.
- [FSEncrypt](https://gist.github.com/MCJack123/32c56917dc61da336ec0e8ca6aae39f8) -  Transparent filesystem encryption.

### Library

- [Acidity](https://github.com/9551-Dev/acidity) -  A simple [procedual world generation](https://cdn.discordapp.com/attachments/477911902152949771/1078015614712565770/image.png)-oriented noise generation library.
- [Anavrins' ChaCha20](http://www.computercraft.info/forums2/index.php?/topic/25474-) -  Implementation of [ChaCha20](https://en.wikipedia.org/wiki/ChaCha20-Poly1305).
- Anavrins' hashing libraries:
    - [MD5](https://pastebin.com/6PVSRckQ) -  Implementation of [MD5](https://en.wikipedia.org/wiki/MD5).
    - [SHA-1](https://pastebin.com/SfL7vxP3) -  Implementation of [SHA-1](https://en.wikipedia.org/wiki/SHA-1) with [HMAC](https://en.wikipedia.org/wiki/HMAC) support.
    - [SHA-256](http://www.computercraft.info/forums2/index.php?/topic/8169-) -  Implementation of [SHA-256](https://en.wikipedia.org/wiki/SHA-2) with support for [HMAC](https://en.wikipedia.org/wiki/HMAC) and [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2).
- [AUKit](https://mcjack123.github.io/AUKit/) -  The quintessential audio processing and conversion library for ComputerCraft. 
- [Basalt](https://basalt.madefor.cc/) -  A GUI library emphasizing the user experience.
- [Bigfont](https://pastebin.com/3LfWxRWh) -  A library that makes writing something in different font sizes easy.
- [C3D](https://c3d.madefor.cc/) -  An advanced 3D rendering API.
- [CC-Archive](https://github.com/MCJack123/CC-Archive) -  Various libraries for archiving and unarchiving files.
- [dbprotect](https://gist.github.com/MCJack123/4cf6fc941a2d412b4195caafb9636363) -  A protection wrapper over the `debug` API, allowing restricting access to upvalues in protected functions.
- [ecc.lua](https://www.computercraft.info/forums2/index.php?/topic/29803-) -  Implements [elliptic-curve cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography).
- [ecnet](https://github.com/migeyel/ecnet) -  Secure network communications in ComputerCraft.
- [GuiH](https://guih.madefor.cc) -  A powerful GUI and graphics library.
- [IsometriH](https://github.com/9551-Dev/IsometriH) -  An [isometric rendering](https://en.wikipedia.org/wiki/Isometric_video_game_graphics) engine.
- [Luz](https://github.com/MCJack123/Luz) - An extremely light compression algorithm for Lua files.
- [Milo](https://github.com/kepler155c/opus-apps/wiki/Milo-(crafting---storage-system)) -  A crafting and inventory management system. Note that this depends on OpusOS and Plethora.
- [Pine3D](https://github.com/Xella37/Pine3D) - A 3D rendering engine designed to be fast.
- [PngLua](https://github.com/9551-Dev/pngLua) -  PNG parsing library designed for ComputerCraft.
- [Pixelbox Lite](https://github.com/9551-Dev/apis/blob/main/pixelbox_lite.lua) - An insanely fast [drawing character](https://cdn.discordapp.com/attachments/876936991256743947/1123213991813058751/image.png) processing library.
- [RedRun](https://gist.github.com/MCJack123/473475f07b980d57dd2bd818026c97e8) -  A small library for running processes in the background of CraftOS after exiting the program, similar to DOS TSRs.
- [Tamperer](https://github.com/Fatboychummy-CC/Tamperer) -  A library allowing easy creation of settings menus.
- [Tampl](https://github.com/9551-Dev/tampl) - A Lua tokenization and parsing library designed for dynamic code generation and injecting code into existing programs.
- [Telem](https://telem.cc) - A telemetry library for peripherals, facilitating in-game and cloud-based monitoring dashboards for storage, energy, and machinery.
- [VeriCode](https://gist.github.com/MCJack123/7752c85918bcf23ada028abd615e8750) -  Provides simple code signing functions for safely transferring code over modems.

### Fun

- [AUKit austream](https://github.com/MCJack123/AUKit/blob/master/austream.lua) -  Based on AUKit, a simple audio player supporting WAV, DFPWM, AIFF, AU, and FLAC.
- [battleship](https://gist.github.com/MCJack123/7082da1d2ac725c33ff77389877ad7f4) -  An implementation of the popular two-player game *[Battleship](https://en.wikipedia.org/wiki/Battleship_(game))*.
- [CCDoom](https://github.com/Xella37/CCDoom) - The [*Doom* shooter](https://en.wikipedia.org/wiki/Doom_(1993_video_game)) ported to ComputerCraft using Pine3D.
- [CC-Minecraft](https://github.com/Xella37/CC-Minecraft) - *Minecraft* ported to ComputerCraft using Pine3D.
- [LuaGB](https://github.com/MCJack123/LuaGB) -  A port of a Game Boy (Color) emulator for ComputerCraft. Works best in CraftOS-PC.
- [lunatic86](https://github.com/MCJack123/lunatic86) -  A port of an 8086 PC emulator for ComputerCraft.
- [Musicify](https://github.com/knijn/musicify) -  A lightweight client for playing music on ComputerCraft: Tweaked.
	- [tracc](https://github.com/MCJack123/tracc/tree/playAudio) -  An XM module tracker/player for ComputerCraft, supporting 8 channel polyphony in-game.
- [YahtCC](https://gist.github.com/MCJack123/4f7f1635998f44630c8440e81213d32e) -  An implementation of the *[Yahtzee](https://en.wikipedia.org/wiki/Yahtzee)* dice game.
- [YouCube](https://youcube.madefor.cc) -  Access YouTube and other services in ComputerCraft.
- [YTP2CCP](https://pastebin.com/nxEMWHY3) -  Convert commented YouTube piano notes and play them in CC:T.

### Operating systems

- [LevelOS](http://install.leveloper.cc) -  A modern GUI operating system intended to mimic Windows.
- [Opus](https://github.com/kepler155c/opus) -  An OS which includes a GUI, an app store, and many system-related APIs.
- [Phoenix](https://phoenix.madefor.cc) -  An OS which emphasizes modularity. It implements its own kernel.
    - Phoenix is currently in alpha.
- [Recrafted](https://github.com/ocawesome101/recrafted) -  A rewrite of CraftOS aiming for full feature parity while maintaining "saner API design."
- [UnBIOS](https://gist.github.com/MCJack123/42bc69d3757226c966da752df80437dc) -  A program to "undo" CraftOS, returning the system to the same state it was in before running the BIOS. Useful for OS development.

### Economy

- [Kristify](https://kristify.madefor.cc/) - Software for highly customizable Krist shops in modern versions of ComputerCraft, powered by [Basalt](https://basalt.madefor.cc).
- [msks](https://github.com/MasonGulu/msks) -  A modern, simple shop for the Krist virtual currency.

### Mod-specific programs

> [!NOTE]
> This section contains programs dedicated which are exclusive to a mod and would not make sense in the Utilities section.

- [DraconicControl](https://pastebin.com/UqVHTht5) -  Allows controlling Draconic Evolution's Draconic Reactor from a computer.
- [ReactorControl and TurbineControl](https://pastebin.com/p4zeq7Ma) -  Automatic management of reactors and turbines in Big Reactors.
    - [ReactorControl patched](https://pastebin.com/2ZrbnH5w) -  The above program uses the `parallel` API recursively, which could cause it to break. A patch has been developed to fix this.
- [cc-mek-scada](https://github.com/MikaylaFischler/cc-mek-scada) - Integral management of a Mekanism factory.

## Non-Lua programs

> [!NOTE]
> This section is for programs that are not mods or Lua programs and **directly** relate to the subject of this list.

### Bridging

> [!NOTE]
> This subsection is for programs which allow ComputerCraft things to be accessed out of the game, primarily through the Internet.

- [Cloud Catcher](https://github.com/SquidDev-CC/cloud-catcher) -  A program which enables interaction with computers outside of the game.
- [Krist Server](https://github.com/tmpim/Krist) -  A server for the Krist virtual currency, intended for use with CC and CC:T.
    - [KristForge](https://github.com/tmpim/kristforge) -  A miner for the Krist virtual currency.
    - [KristWeb2](https://github.com/tmpim/KristWeb2) -  A web wallet for Krist, written in React.
- [Netmount](https://github.com/tmpim/netmountcc) - Configurable WebSocket and WebDAV remote storage solution.
- [Ultron Control](https://gitlab.com/Merith-TK/ultron-control) -  A program which exposes a web API for controlling turtles.

### Emulators

- [CCEmuX](https://emux.cc) -  A CC and CC:T emulator which executes the mods directly.
- [Copy Cat](https://github.com/SquidDev-CC/copy-cat) -  A CC:T emulator that runs in a web browser.
- [CraftOS-PC](https://www.craftos-pc.cc) -  A CC:T emulator written in C++ with the intention of speed.

### Plugins

- [CraftOS-PC for VS Code](https://www.craftos-pc.cc/docs/extension) -  Extension for manipulating and running programs via CraftOS-PC in VSCode.
- [`craftos2-plugins`](https://github.com/MCJack123/craftos2-plugins) -  A collection of small plugins for CraftOS-PC, maintained by the creator.
- [VSCode Extensions for ComputerCraft](https://marketplace.visualstudio.com/items?itemName=lemmmy.computercraft-extension-pack) -  Self-explanatory. Contains autocomplete for CC and CC:T functions, as well as a Lua language server.

### Tools

- [ComputerCraft Music Converter](https://music.madefor.cc) - A web app to convert various sound formats to DFPWM (ComputerCraft's sound format).
- [BIMG-Generator](https://github.com/MasonGulu/BIMG-Generator) - A Java program to convert images to the BIMG format.
- [cc-tstl-template](https://github.com/MCJack123/cc-tstl-template) -  A template for the TypeScriptToLua compiler that allows writing ComputerCraft programs in TypeScript.
- [sanjuuni](https://github.com/MCJack123/sanjuuni) -  A program to quickly convert image and video files into various formats for playback and streaming in ComputerCraft.

## Literature
### Essays

- [JackMacWindows's essay on ComputerCraft OSes](https://gist.github.com/MCJack123/4b2bca21bdc0cf5c67ce7177326c2154) -  Contains suggestions, discouragement, and encouragement for building a proper operating system.
- [JackMacWindows's essay on sane APIs](https://gist.github.com/MCJack123/39ac0847579b3676cc098aca5860c758) -  Has suggestions for making your APIs easy to use.

### Tutorials
#### Basics
- [Direwolf20's tutorials](https://www.youtube.com/watch?v=wrUHUhfCY5A) -  A series of videos explaining the basics of ComputerCraft programming. 
- [Sethbling's tutorials](https://www.youtube.com/watch?v=DSsx4VSe-Uk) -  See above.
- Lyqyd's *Computer Basics* series ([I](http://www.computercraft.info/forums2/index.php?/topic/15033-computer-basics-i), [II](http://www.computercraft.info/forums2/index.php?/topic/15041-computer-basics-ii/), [III](http://www.computercraft.info/forums2/index.php?/topic/20905-computer-basics-iii/)) -  Though a bit dated, they are excellent for the beginnings of your journey.
- [The FTB Wiki's Getting Started guide for ComputerCraft](https://ftb.fandom.com/wiki/Getting_Started_(ComputerCraft)) -  A useful all-around resource for getting started.

#### Moderate or advanced
- [Bomb Bloke's *Guide to Coroutines*](http://www.computercraft.info/forums2/index.php?/topic/25670-bbs-guide-to-coroutines/) -  Explains why you should not use coroutines, and includes tutorials on using them. 

### Charts, tables, and calculators

- [JackMacWindows's coroutine flow chart](https://cdn.discordapp.com/attachments/477911902152949771/959769473437560862/Blank_Diagram_1_Page_1.png) -  Demonstrates how coroutines work. Each column represents one coroutine's code flow.
- [KingOfGameYami's event flow chart](https://media.discordapp.net/attachments/477911902152949771/729709228675301380/image.png) -  Demonstrates the flow of events when a program runs.
<!--lint ignore-->
- [Wojbie's decimal font chart](https://cdn.discordapp.com/attachments/477911902152949771/933498000385400862/1642633650325141456271.png) and [Cake's hex font chart](https://thox.madefor.cc/_images/encodings-cc-chars.png) -  Contains decimal and hex mappings to ComputerCraft font characters.
- [Emma's ComputerCraft compatibility chart](https://docs.google.com/spreadsheets/d/1s4d21cL3QrUyegEzYaVXvqDr1zNorgyZ-fDWeopIC1k/edit?usp=sharing) -  Shows compatibility across emulators and in-game mods.
- [MasonGulu's monitor size calculator](https://monitorsize.madefor.cc/) - An online gadget which calculates how many characters and pixels will fit onto a monitor.

### Other lists

- [Awesome Lua](https://github.com/LewisJEllis/awesome-lua) - An Awesome list specific to the Lua programming language.
- [Awesome Switchcraft](https://github.com/aspen-reeves/awesome-switchcraft) - An Awesome list specific to the Switchcraft server.
- [Hengestone's list of languages which compile to Lua](https://github.com/hengestone/lua-languages/blob/master/README.md) -  A list of languages which compile to Lua.

## Resources

- [Tweaked.cc documentation](https://tweaked.cc) -  Contains documentation for most methods in CC and CC:T.
- [CC's forums](https://computercraft.info/forums2) -  An extremely valuable resource, filled with tutorials and programs.
- [CC:T's forums](https://forums.computercraft.cc) -  Also extremely valuable, but is newer.
- [Minecraft Computer Mods Discord](https://discord.gg/H2UyJXe) -  A Discord server for getting help with programming in CC and CC:T.
- [ComputerCraft's subreddit](https://reddit.com/r/computercraft) - A subreddit for showing off your ComputerCraft creations, as well as getting help.
- [Lua's manual](https://www.lua.org/manual/) -  Contains documentation on methods not covered in Tweaked.cc. Sections 5 (Auxillary Library) and 6 (Standard Library) are of particular interest.
