# Awesome ComputerCraft

> Useful libraries, programs, literature, and mods for ComputerCraft and its forks.

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 and might not render correctly on third-party websites. If you want to contribute, see CONTRIBUTING.md. If you have other questions, see the FAQ.

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

## Contents

- Mods
  - ComputerCraft mods
  - Add-on mods
  - Resource packs
- Lua programs
  - Utility
  - Library
  - Fun
  - Operating systems
  - Economy
  - Mod-specific programs
- Non-Lua programs
  - Bridging
  - Emulators
  - Plugins
  - Tools
- Literature
  - Essays
  - Tutorials
  - Charts, tables, and calculators
  - Other lists
- Resources

## Mods

### ComputerCraft mods

- ComputerCraft: Tweaked - A fork of the original ComputerCraft for modern versions of Minecraft.
- ComputerCraft: Restitched - A set of patches for CC:T that allow running it on Fabric.
- ComputerCraft - A mod which adds computers to allow execution of Lua programs.

### Add-on mods

- Advanced Peripherals - A mod which adds various peripherals and APIs for interacting with other mods.
- Computronics - A mod which adds various peripherals, notably for detecting events in the world and for manipulation of sound.
- Plethora - 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 - A mod that adds compatibility between the ComputerCraft and Create mod!
- Turtlematic - A mod which end goal is to make turtles so useful, so you will never need any other automation mod!
- UnlimitedPeripheralWorks - A mod which adds various peripherals to extend CC:T capabilities. Also adds a lot of peripherals for other mods.

### Resource packs

- ComputerCreate - A resource pack which adds texture packs in the style of the Create mod.

## Lua programs

### Utility

- ComputerCraft Advanced Shell (cash) - A Bourne-compatible shell for ComputerCraft.
- Consult - A text editor emphasizing ease of use and compatibility with many systems.
  - Consult: Recrafted - A fork of Consult for Recrafted systems.
- GEMU - CraftOS-PC graphics mode emulator based on Pixelbox.
- gist - A GitHub Gist download/upload program which aims to extend the built-in `pastebin` program, but for Gists.
- Howl - A build system for CC and CC:T.
- LuaIDE - A full-fledged IDE for editing Lua files in-game.
- Mildly Better Shell (MBS) - An improved shell that includes scrollback and improved resolution of completions.
- ModemShark - Modem packet sniffer with a simple UI.
- netshell - Access a computer’s shell from another computer.
- OrangeBox - Virtualization support for ComputerCraft computers.
- rawshell - A modern alternative to netshell supporting CraftOS-PC’s “raw mode” format, with file transfers, encryption, passwords, WebSockets, and more.
- unicornpkg - Modern package management that doesn’t suck.
- FSEncrypt - Transparent filesystem encryption.

### Library

- Acidity - A simple procedual world generation-oriented noise generation library.
- Anavrins’ ChaCha20 - Implementation of ChaCha20.
- Anavrins’ hashing libraries:
  - MD5 - Implementation of MD5.
  - SHA-1 - Implementation of SHA-1 with HMAC support.
  - SHA-256 - Implementation of SHA-256 with support for HMAC and PBKDF2.
- AUKit - The quintessential audio processing and conversion library for ComputerCraft.
- Basalt - A GUI library emphasizing the user experience.
- Bigfont - A library that makes writing something in different font sizes easy.
- C3D - An advanced 3D rendering API.
- CC-Archive - Various libraries for archiving and unarchiving files.
- dbprotect - A protection wrapper over the `debug` API, allowing restricting access to upvalues in protected functions.
- ecc.lua - Implements elliptic-curve cryptography.
- ecnet - Secure network communications in ComputerCraft.
- GuiH - A powerful GUI and graphics library.
- IsometriH - An isometric rendering engine.
- Luz - An extremely light compression algorithm for Lua files.
- Milo - A crafting and inventory management system. Note that this depends on OpusOS and Plethora.
- Pine3D - A 3D rendering engine designed to be fast.
- PngLua - PNG parsing library designed for ComputerCraft.
- Pixelbox Lite - An insanely fast drawing character processing library.
- RedRun - A small library for running processes in the background of CraftOS after exiting the program, similar to DOS TSRs.
- Tamperer - A library allowing easy creation of settings menus.
- Tampl - A Lua tokenization and parsing library designed for dynamic code generation and injecting code into existing programs.
- Telem - A telemetry library for peripherals, facilitating in-game and cloud-based monitoring dashboards for storage, energy, and machinery.
- VeriCode - Provides simple code signing functions for safely transferring code over modems.

### Fun

- AUKit austream - Based on AUKit, a simple audio player supporting WAV, DFPWM, AIFF, AU, and FLAC.
- battleship - An implementation of the popular two-player game Battleship.
- CCDoom - The Doom shooter ported to ComputerCraft using Pine3D.
- CC-Minecraft - Minecraft ported to ComputerCraft using Pine3D.
- LuaGB - A port of a Game Boy (Color) emulator for ComputerCraft. Works best in CraftOS-PC.
- lunatic86 - A port of an 8086 PC emulator for ComputerCraft.
- Musicify - A lightweight client for playing music on ComputerCraft: Tweaked.
  - tracc - An XM module tracker/player for ComputerCraft, supporting 8 channel polyphony in-game.
- YahtCC - An implementation of the Yahtzee dice game.
- YouCube - Access YouTube and other services in ComputerCraft.
- YTP2CCP - Convert commented YouTube piano notes and play them in CC:T.

### Operating systems

- LevelOS - A modern GUI operating system intended to mimic Windows.
- Opus - An OS which includes a GUI, an app store, and many system-related APIs.
- Phoenix - An OS which emphasizes modularity. It implements its own kernel.
  - Phoenix is currently in alpha.
- Recrafted - A rewrite of CraftOS aiming for full feature parity while maintaining “saner API design.”
- UnBIOS - 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 - Software for highly customizable Krist shops in modern versions of ComputerCraft, powered by Basalt.
- 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 - Allows controlling Draconic Evolution’s Draconic Reactor from a computer.
- ReactorControl and TurbineControl - Automatic management of reactors and turbines in Big Reactors.
  - ReactorControl patched - 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 - 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 - A program which enables interaction with computers outside of the game.
- Krist Server - A server for the Krist virtual currency, intended for use with CC and CC:T.
  - KristForge - A miner for the Krist virtual currency.
  - KristWeb2 - A web wallet for Krist, written in React.
- Netmount - Configurable WebSocket and WebDAV remote storage solution.
- Ultron Control - A program which exposes a web API for controlling turtles.

### Emulators

- CCEmuX - A CC and CC:T emulator which executes the mods directly.
- Copy Cat - A CC:T emulator that runs in a web browser.
- CraftOS-PC - A CC:T emulator written in C++ with the intention of speed.

### Plugins

- CraftOS-PC for VS Code - Extension for manipulating and running programs via CraftOS-PC in VSCode.
- `craftos2-plugins` - A collection of small plugins for CraftOS-PC, maintained by the creator.
- VSCode Extensions for ComputerCraft - Self-explanatory. Contains autocomplete for CC and CC:T functions, as well as a Lua language server.

### Tools

- ComputerCraft Music Converter - A web app to convert various sound formats to DFPWM (ComputerCraft’s sound format).
- BIMG-Generator - A Java program to convert images to the BIMG format.
- cc-tstl-template - A template for the TypeScriptToLua compiler that allows writing ComputerCraft programs in TypeScript.
- 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 - Contains suggestions, discouragement, and encouragement for building a proper operating system.
- JackMacWindows’s essay on sane APIs - Has suggestions for making your APIs easy to use.

### Tutorials

#### Basics

- Direwolf20’s tutorials - A series of videos explaining the basics of ComputerCraft programming.
- Sethbling’s tutorials - See above.
- Lyqyd’s Computer Basics series (I, II, III) - Though a bit dated, they are excellent for the beginnings of your journey.
- The FTB Wiki’s Getting Started guide for ComputerCraft - A useful all-around resource for getting started.

#### Moderate or advanced

- Bomb Bloke’s 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 - Demonstrates how coroutines work. Each column represents one coroutine’s code flow.
- KingOfGameYami’s event flow chart - Demonstrates the flow of events when a program runs.
- Wojbie’s decimal font chart and Cake’s hex font chart - Contains decimal and hex mappings to ComputerCraft font characters.
- Emma’s ComputerCraft compatibility chart - Shows compatibility across emulators and in-game mods.
- MasonGulu’s monitor size calculator - An online gadget which calculates how many characters and pixels will fit onto a monitor.

### Other lists

- Awesome Lua - An Awesome list specific to the Lua programming language.
- Awesome Switchcraft - An Awesome list specific to the Switchcraft server.
- Hengestone’s list of languages which compile to Lua - A list of languages which compile to Lua.

## Resources

- Tweaked.cc documentation - Contains documentation for most methods in CC and CC:T.
- CC’s forums - An extremely valuable resource, filled with tutorials and programs.
- CC:T’s forums - Also extremely valuable, but is newer.
- Minecraft Computer Mods Discord - A Discord server for getting help with programming in CC and CC:T.
- ComputerCraft’s subreddit - A subreddit for showing off your ComputerCraft creations, as well as getting help.
- Lua’s manual - Contains documentation on methods not covered in Tweaked.cc. Sections 5 (Auxillary Library) and 6 (Standard Library) are of particular interest.