Toggle menu
Veloren Wiki
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.


From Veloren Wiki
This page is a Stub. Help the Veloren Wiki by expanding it.


Thank you for your interest in contributing! Make sure to read the Introduction section and if you want the section For Developers. Otherwise feel free to jump around as you need.


Start contributing!

There are various ways to contribute to Veloren's development, no matter if you got a degree or taught yourself. Shall it be code, assets, creatures, bug fixes, the book donation or the wiki itself!

Embrace the wiki

We are glad that you want to participate in the collaborative process of cataloging and recording everything about the game.

Extend the book

You can find the source for this book at our GitLab, feel free to make changes, correct errors and add more content.


There are different ways to contribute translations, but the most straightforward way is using git and Rust.

Extinguish bugs

You found a bug and want to report it. Here is how!

The voxel art

We use MagicaVoxel to create Veloren's assets and some sprites for smaller object that don't render well in voxel

The music and SFX

You love working on the ambiance, creating some sound that immerse us to its universe ? Welcome!

Tracking issues

See what progress needs to be made an figure out what you'd like to work on!


The DevOps methodologies used in the project.


The language of gods. There is few tutorials for learning Rust. We all started somewhere. ;)

Hosting a server

You may want to add a new Veloren server. We will guide you!

Work in progress


Voxel Model

ArtChanny has the most up to date tutorials so they are strongly recommended. How does MagicaVoxel work with Veloren? Usually, 1 voxel in MagicaVoxel is 1 voxel in Veloren. However, this does not apply to all Veloren assets. We have something called sprites, made to represent smaller objects that wouldn’t look good in a 1 for 1 voxel conversion. That’s why they use a 1 for 11 blocks conversion, that’s to say that 1 block in Veloren will be 11 blocks in MagicaVoxel.

Note: We are currently in the process of switching to 1 for 9 but it is still 1 for 11 at the moment). Please, when making your custom palettes, DO NOT use the three bottom rows, as they are particular indexes for Veloren.

Recommended videos to learn more about MagicaVoxel:


Hotkeys and shortcuts:

More advanced:

For big projects:


The best way to contribute audio is to first visit the Discord , ask for a contributor role in the #new-contributors channel, and start a conversation in the #audio channel.

All sound files should be in .ogg format, exported at Variable Bit Rate level 5. The quick and easy way to do this is to export as a .wav, open it in Audacity, and export it again as a .ogg at compression level "5".


There are different ways to contribute translations, but the most straightforward way is using git and Rust. You do not need to compile the game, although debug builds have useful features like hot-reloading for translations, that allow you to translate the game while running it. Tooling to check the status of your translations doesn't require compiling the full game, but it still requires the Rust toolchain. Read this guide on basic tooling (git lfs is important), working with git (git is not most user friendly thing, ask if you don't understand something), compile instructions, and contribution instructions (most important).

Alternatively, you can just work on directly on assets shipped by Airshipper. Beware that updating your game will purge all your work, so think about using the VELOREN_ASSETS_OVERRIDE environment variable.


You can learn Rust while contributing! There are a lot of resources to learn Rust, the Rust book is great You can also check out our book for how to set up the environment

And also if you have any question about Rust or programming in general you are free to ask in #learning

  • The first step is to download and compile the game from source.
  • Then find an issue in the issue tracker, or create an issue for something small that you would like to change, add or remove.
  • Create a branch.
  • Make the changes.
  • Test your changes work as intended in game, and that no bugs have been unintentionally added.
  • Create a merge request with your changes.
  • Post your merge request in the development channel.
  • Someone will review your changes, and they might propose some more changes.
  • Once everything is good, the changes can be merged into the official builds when appropriate.
  • If you have some changes that might be controversial, be sure to discuss the design before hand and get consensus from the core development team, to avoid risking having your changes rejected.
  • You can still always experiment on your own branch/fork, just the changes might not be merged into the official builds. Also ask for GitLab and the Discord contributor (developer) role, to gain access to more channels and to CI.

Conference about game development in Rust:

This is useful for anybody with some basic knowledge of OpenGL or DirectX wanting to start working on Voxygen, the 3D frontend:

Cookies help us deliver our services. By using our services, you agree to our use of cookies.