Warning
FerrumC is going through a major rewrite for 1.21.1. This branch contains all of the new code.
To view the original code, go to the dev branch.
To view the roadmap, see plans.md
Important
Use pull requests instead of direct pushes.
Want to contribute to FerrumC?
Make sure to check out CONTRIBUTING.md.
We would highly recommend you join our Discord.
This method comes with a default world and might be easier assuming you arent doing development and dont have cargo already installed. Just run the following command
docker run -d -p 25565:25565 -v ferrumc/ferrumc-example:latest
// TODO: Throw the images in dockerhub under the ferrumc username.
# Clone the repository
git clone https://github.com/Sweattypalms/ferrumc
cd ferrumc
# Build the project
cargo build --release
Then
- Move the FerrumC binary (
ferrumc.exe
orferrumc
depending on the OS) to your desired server directory - Open a terminal in that directory
- (Optional) Generate a config file:
./ferrumc --setup
- Edit the generated
config.toml
file to customize your server settings
- Edit the generated
- Import an existing world: Place the region files (
.mca
) in the folder namedimport
then run./ferrumc --import
.- The location of these files is explained here.
- If you want to modify batch size (default 150), you can use
./ferrumc --import --batch_size=<num>
.- Basically the number of chunks to import at once, higher => faster but more CPU intensive.
- Max is 1024, since that's the max number of chunks in a region(
.mca
) file.
- Run the server:
- Windows:
.\ferrumc.exe
- Linux/macOS:
./ferrumc
- You can change logging level by using
--log=<level>
:- e.g.
.\ferrumc.exe --log=info
for info level logging - Possible values:
trace
(Extremely verbose)debug
(Default, Slightly verbose, used for debugging)info
(Recommended, useful information)warn
(Only warnings)error
(Only errors)
- e.g.
- Windows:
Note: You can specify the directory to treat as the root directory (the place where the config files, data files,
etc. live) by setting an environment variable FERRUMC_ROOT
to the path of the directory. For example, I run
set FERRUMC_ROOT=C:\Users\ReCor\Documents\Code\Rust\ferrumc
before running the server. This is useful if you
can't move the place the binary is executed from (cargo run
for example).