Speed Build
This is a pure server-side mod that provides functionalities for a customizable speed build game.
In a speed build, players compete to memorize the example and rebuild the structure in a limited time. The more consistent the player's build is with the example, the higher score the player gets. If their build matches perfectly, they get a score of 1.0; if they build nothing, they get a score of 0.0. It is also better to complete the build as fast as possible.
Basic Gameplay
Only players with numbers can participate in the speed build. The number of a player can take any integer value. You can learn about how to register a number under the "Commands" title below. Player and numbers are one-to-one mapped, that is, each player can have exactly one number, and no two players can share the same number.
The game area can be divided into the example region and the build regions. There is one example region, and each player has a build region. The build regions are sorted by the numbers of the players in natural order. The example build should be built in the example region, and the players should build in their own build regions. After the start of a speed build, the example region is cleared and an exact copy of the example build would appear in every build region. Materials it would need to build the example build would be given to each player. The "memorize time" will then be allowed to pass. Players are able to break and place blocks during this stage.
When the countdown finishes, the build regions would be cleared. A new timer would count down from "build time". In this stage, players are supposed to complete the build in their build regions with the materials given as accurate and as fast as possible. If a player completes the build exactly during the countdown, the player "completes" the game and a message would be announced to all players.
After the build countdown finishes, or every player completes their build, the example build would be pasted back to the example region, and the scores of the players would be calculated according how much proportion of their build is consistent with the example build and the time they spent. Player ranked based on their level of consistency first, then based on the time they finished.
Analysis Functionality
Besides traditional speed building functionalities, this mod also provides an analysis functionality, which allows you to analyze the build in a build region. More specifically, it tells you which blocks are correct, wrong, redundant, missing or in a wrong state by highlighting them using different blocks (different colors of stained-glass blocks by default) in the analysis region.
Commands
| Function | Command |
|---|---|
| Initialize Speed Build | /sb init |
| Reset Speed Build | /sb reset |
| Start Speed Build | /sb start |
| List Player Numbers | /sb number list |
| Register a Number | /sb number request <number: int> |
| Release Number | /sb number release |
| Analyze Build | /sb analyze <number: int> |
| Configure Speed Build | /sb config ... |
Configurations
"Origin" below refers to the bottom northwest corner of a region.
| Configuration | Description |
|---|---|
| examplePos | The origin of the example region. |
| buildPos | The origin of the first build region. |
| dimensions | The dimensions of the build. |
| buildOffset | The offset between the origins of two consecutive build regions. |
| analyzeOffset | The offset from the origin of a build region to the origin of the corresponding analysis region. |
| memorizeTime | The time for players to memorize the example build, in ticks. |
| buildTime | The time for players to complete the build, in ticks. |
| floorBlock | The block that is going to be used to fill the floor of the example region and the build regions. This should not be instant mineable. |
| Analysis Configuration | Description |
|---|---|
| correct | The block representing that this block matches exactly with the example build. |
| missing | The block representing that a block is present here in the example, but is missing in the build. |
| redundant | The block representing that this block present here is not present in the example. |
| wrongBlock | The block representing that the blocks present here in the example and the build are different blocks. |
| wrongState | The block representing that the blocks present here in the example and the build are in different states. |

