Skip to content

A reimplementation of the minecraft server in rust.

License

Notifications You must be signed in to change notification settings

GStudiosX/ferrumc

 
 

Repository files navigation

Ferrumc Rewrite [v3]

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.

Roadmap

To view the roadmap, see plans.md

Important

Use pull requests instead of direct pushes.

Contributing

Want to contribute to FerrumC?
Make sure to check out CONTRIBUTING.md.
We would highly recommend you join our Discord.

📥 Installation/ 🖥️ Usage

Use docker

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.

Build from Source .

# Clone the repository
git clone https://github.com/Sweattypalms/ferrumc
cd ferrumc

# Build the project
cargo build --release
The binary will be in target/release/

Then

  1. Move the FerrumC binary (ferrumc.exe or ferrumc depending on the OS) to your desired server directory
  2. Open a terminal in that directory
  3. (Optional) Generate a config file: ./ferrumc --setup
    • Edit the generated config.toml file to customize your server settings
  4. Import an existing world: Place the region files (.mca) in the folder named import 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.
  5. 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)

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).

About

A reimplementation of the minecraft server in rust.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.8%
  • Other 0.2%