Carbon is a self-updating, lightweight, intelligent mod loader for Rust utilizing the latest C# and Harmony for the best performance and stability possible. Its robust framework and backward compatibility with Oxide plugins make it the ultimate replacement for those wanting better functionality and performance from their plugins!
Carbon has all the creature comforts you need to run your server, such as a permission system, user system, and so much more. Carbon is developed by experienced developers and server owners working to take the tedium out of hosting servers and make configuration and setup seamless with an integrated GUI in-game to manage everything!
Start using Carbon today, download the latest version from our releases page. We also provide a quick start script to get your server running in minutes, available for Windows and Linux.
For more in-depth Carbon documentation, from builds and deployment, check here. Find all currently available hooks here. If you are a developer take a look at our Wiki page.
Join our official Discord server for support, more frequent development info, discussions and future plans.
To help us and work with us on the project, or get started with Carbon's structure, follow this for understanding how it works. The project is split in various essential and mostly independent components, making it easier to organise and follow.
Upon cloning Carbon, all you need to execute is setup.bat
to initialize the entire project and its dependencies.
The following branches are shared across all Component and Hook projects and synchronized accordingly with the main project (this one) and its branches.
develop
branch is the primary base branch of Carbon. It's used to be merged into Rust beta branches as well as theproduction
(live) branch.- Used against Rust
public
branch. - Public build, gets updated every time we commit changes to Carbon.
- Used against Rust
preview
branch is usually synced up withdevelop
and has experimental features that may or may not be brought intodevelop
.- Used against Rust
public
branch. - Public build, gets manually triggered to get updated, not very often.
- Used against Rust
production
branch is the primary (live) branch of Carbon and main release is built off of.- Used against Rust
public
branch orrelease
on Rust wipe day. - Public build, gets updated twice times a month, excluding important hotfix patches.
- Used against Rust
rust_beta/staging
is often times synced up withdevelop
and has changes that might come to Rustrelease|public
branch in a future update, which can contain mandatory changes to Carbon to address the Rust changes.- Used against Rust
staging
branch. - Public build, gets updated a few times a month. Usually only hooks get updated. Mainly merged from
develop
.
- Used against Rust
rust_beta/aux01
is often times synced up withrust_beta/staging
and is minimally supported, just enough to be able to run Carbon on AUX01. This Rust branch is extremely unstable and contains things that may or may not ever be merged to the main version of Rust.- Used against Rust
aux01
branch. The staging branch beta client is not always available. - Public build, gets updated a few times a month. Usually only hooks get updated.
- Used against Rust
rust_beta/aux02
is often times synced up withrust_beta/staging
and is minimally supported, just enough to be able to run Carbon on AUX02. This Rust branch is extremely unstable and contains things that may or may not ever be merged to the main version of Rust.- Used against Rust
aux02
branch. The staging branch beta client is not always available. - Public build, gets updated a few times a month. Usually only hooks get updated.
- Used against Rust
- Carbon.Preloader: Runtime preloader of dependencies and responsible assembly patching (publicising, injecting, etc.).
- Carbon.Bootstrap: Initial Carbon execution and boot in the primary app-domain.
- Carbon.Common: The very basis of Carbon, tools and extensions for overall use and functionality. Primarily a center piece for all dependant sub-components.
- Carbon.SDK: Infrastructural and contractual features with no implementation. An easy way to identify and organise the structure of our systems.
- Carbon.Modules: Carbon optional modules expanding functionality, enhanced QoL and tools.
- Carbon.Compat: Previously known as Carbon Compatibility Loader written by Patrette (community member).
- Carbon.Test: Integral implementation for automated testing rules and events.
Carbon's hooks are managed in a separate location:
- Carbon.Hooks.Base: Includes ground level dynamic and static patching instructions supplementing necessary events for Carbon's own runtime.
- Carbon.Hooks.Community: Community curated patches and hooks.
- Carbon.Hooks.Oxide: Oxide compatibility package, primarily utilized for internal use whenever going through the automatic patch code generation process.
Each Carbon version has its own protocol which relative to that, so does the hooks that get automatically updated upon boot. You can find the directory here.
To locally build Carbon from scratch, execute the build.bat
file, and find the results in the root of Carbon, under ./Release
.
If you would like to sponsor the project the best way is to use Patreon.
We would like to thank everyone who sponsors us.