Skip to content

LucasLeCool323/mpt-CC-Tweaked

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 

Repository files navigation

MPT Package Manager (CC:T)

A lightweight package manager for ComputerCraft / CC:Tweaked.

MPT installs Lua programs directly from GitHub using wget, supports multiple repositories, and resolves dependency chains automatically.


⚠️ This is still a beta, it was tested by me but may not have every feature people may need. Future versions will get more features.


✨ Features

  • Install packages from GitHub
  • Multiple repository support
  • Recursive dependency resolution
  • Temporary dependency handling (.tmp/)
  • Clean install folder (mpt-programs/)
  • No version in installed filename
  • Uses only:
    • dkjson
    • wget
    • shell.run
    • fs

πŸ“¦ Required Repository Structure

Your GitHub repository must follow this structure:

.
└── <package>
    β”‚
    └── <version>
        β”œβ”€β”€ dependencies.json
        └── <package>.lua

Example

.
└── tst
    β”‚
    └── 1.1
        β”œβ”€β”€ dependencies.json
        └── tst.lua
  • <package> = program name
  • <version> = version folder
  • dependencies.json = if no dependencies please include it even if empty
  • <package>.lua = main program file

🌐 Download URL Format

MPT downloads files using this format:

https://raw.githubusercontent.com/<user/repo>/refs/heads/1.0/<package>/<version>/<package>.lua

Dependencies file (if present):

https://raw.githubusercontent.com/<user/repo>/refs/heads/1.0/<package>/<version>/dependencies.json

⚠ Branch is fixed to: 1.0


πŸ“ Local Installation Structure

After installing a package:

repo.json
mpt-programs/
    <package>.lua
.tmp/
  • repo.json β†’ stores list of repositories
  • mpt-programs/ β†’ installed programs
  • .tmp/ β†’ temporary dependency files (auto cleaned)

Installed programs are always saved as:

mpt-programs/<package>.lua

(no version in filename)


πŸ“œ dependencies.json Format

Dependencies must be an array of objects, not a dictionary.

Example:

[
    {
        "package": "dep1",
        "version": "1.7"
    },
    {
        "package": "dep2",
        "version": "2.0"
    }
]

Each dependency can also contain its own dependencies.json.

Dependency chains are fully supported (recursive resolution).

If no dependencies.json exists β†’ it is safely ignored.


βš™ Commands

Add a repository

mpt repo add user/repo

Remove a repository

mpt repo remove user/repo

Install a package

mpt install <package> <version>

Example:

mpt install tst 1.1

πŸ” How Dependency Resolution Works

When installing a package:

  1. Downloads <package>.lua
  2. Attempts to download dependencies.json
  3. If found:
    • Saves it as .tmp/dependencies-<package>.json
    • Reads dependency list
    • Deletes the temporary file
    • Recursively installs missing dependencies

If multiple repos are configured, MPT tries each repo until one succeeds.


πŸ“¦ Requirements

  • ComputerCraft / CC:Tweaked
  • dkjson
  • wget available in shell

Built for CC:T environments where simple, lightweight package management is needed.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors