1 unstable release

0.2.0-alpha.1+mc.1.20.1 Aug 11, 2023

#1980 in Game dev

25 downloads per month

MIT license

5.5K SLoC


This crate provides functionality for creating and managing scoreboards. In Minecraft, a scoreboard references an Objective, which is a mapping from strings to scores. Typically, the string is a player name, and the score is a number of points, but the string can be any arbitrary string <= 40 chars, and the score can be any integer.

In Valence, scoreboards obey the rules implied by EntityLayers, meaning that every Objective must have an EntityLayerId associated with it. Scoreboards are only transmitted to clients if the EntityLayer is visible to the client.

To create a scoreboard, spawn an ObjectiveBundle. The Objective component represents the identifier that the client uses to reference the scoreboard.


use valence_scoreboard::*;
use valence_server::protocol::text::IntoText;

fn spawn_scoreboard(mut commands: Commands) {
	commands.spawn(ObjectiveBundle {
		name: Objective::new("foo"),
		display: ObjectiveDisplay("Foo".bold()),


~357K SLoC