/Obsidian

A C# implementation of the Minecraft server protocol.

Primary LanguageC#GNU General Public License v3.0GPL-3.0

logo


.NET Build Discord

Obsidian is a C# .NET implementation of the Minecraft server protocol. Obsidian is currently still in development, and a lot of love and care is being put into the project!

Feel free to join our Discord if you're curious about the current state of the project, questions are always welcome!

Obsidian Discord

✅ Roadmap

  • A custom plugin framework
  • Player movement/Info and chat
  • Basic chunk loading
  • Block breaking/placing
  • Other gamemodes besides creative
  • Usable storage and crafting blocks
  • Low memory usage
  • Inventory management
  • Daylight and weather cycle
  • World generation
  • Liquid physics
  • Mobs AI & pathfinding
  • Redstone circuits

💻 Contribute

Contributions are always welcome! Read about how you can contribute here

🔌 Develop plugins

Plugins are cool! Wanna make them yourself? Find out about plugin development here

🔥 Development builds

Very early development builds are available over at the GitHub Actions page for this repository.

  • Ensure you have the latest .NET Runtime installed
  • Find the latest .NET Build action and scroll to the bottom of the page to find the artifacts.
  • Unzip the artifact and run dotnet ObsidianApp.dll to start the server.
  • On first run, a config file is generated. Fill this file with your preferenced values and run the previous command again. Easy, isn't it?

🐟 Docker

You can now run Obsidian using Docker! As of right now, no image is available on DockerHub yet, but it will be sometime soon.

For now, to run Obsidian on Docker you will have to follow the following steps:

  1. Clone Obsidian git clone https://github.com/ObsidianMC/Obsidian.git
  2. Go to Obsidian's cloned directory cd Obsidian
  3. Build the docker image docker build . -t obsidian
  4. Run the container docker run -d -p YOUR_HOST_PORT:25565 -v YOUR_SERVERFILES_PATH:/files --name YOUR_CONTAINER_NAME obsidian
  5. Obsidian will pregenerate a config file. Fill it out in YOUR_SERVERFILES_PATH/config.json
  6. Start Obsidian's container again. docker restart YOUR_CONTAINER_NAME

Docker Compose

There's also docker-compose support.

  1. Clone Obsidian git clone https://github.com/ObsidianMC/Obsidian.git
  2. Go to Obsidian's cloned directory cd Obsidian
  3. Run docker-compose up -V to generate the config.json
  4. Edit your docker-compose.yml file, along with files/config.json
  5. docker-compose up -Vd to have the server run! The world, plugin and other server related files will be created in the files directory.

😎 The Obsidian Team

💕 Thank-you's

Thank you to #mcdevs for additional support.

Thank you to Wiki.vg for documenting Minecraft's protocol.

Thank you to Mojang for creating this wonderful game named Minecraft.

...and of course the biggest thank you to everyone that contributed!

Made with contributors-img

repobeats