Lobby + staging config
Two records, both bundled into Game:
LobbyConfig— the pad-and-lobby description (HubZonebacking). Max players, pad block/item, hologram title + type + tagline, accent colour.StagingConfig— overrides for the default staging-box dimensions (platform half-width, ceiling height). Defaults read fromConduitConfig.
When to use it
Section titled “When to use it”- You’re declaring a
Gameand need to customise the pad or staging box. - You’re inheriting engine defaults but tweaking one or two fields with
with*methods. - You want a 16×16 pre-game arena instead of the default 8×8.
package me.zlex.conduit.game;
public record LobbyConfig( int maxPlayers, @Nullable ItemLike pad, String lobbyTitle, @Nullable String lobbyType, List<String> lobbyTagline, int padAccentArgb) {
public static LobbyConfig defaults(String title);
public LobbyConfig withMaxPlayers(int n); public LobbyConfig withPad(@Nullable ItemLike p); public LobbyConfig withType(@Nullable String t); public LobbyConfig withTagline(List<String> ts); public LobbyConfig withAccent(int argb);}
public record StagingConfig(int platformHalf, int ceilingHeight) { public static StagingConfig defaults(); // pulls from ConduitConfig}Example
Section titled “Example”import me.zlex.conduit.game.Game;import me.zlex.conduit.game.LobbyConfig;import me.zlex.conduit.game.StagingConfig;import net.minecraft.world.item.Items;
import java.util.List;
public final class MyConfig {
public static Game myGame() { return Game.builder("my-game", "My Game") .lobby(LobbyConfig.defaults("MY GAME") .withMaxPlayers(6) .withPad(Items.STONE) .withType("Co-op") .withTagline(List.of( "Reach the goal together.", "Don't fall.")) .withAccent(0xFFAA88FF)) .staging(new StagingConfig(/* half */ 16, /* height */ 8)) .build(); }}LobbyConfig.defaults(title)ships with 8 max players, paper pad, no type, no tagline, white accent — replace what you care about withwith*.StagingConfig.defaults()readsConduitConfig.defaultStagingHalf()anddefaultStagingHeight()so server ops can tune the engine-wide default without touching mod code.padAccentArgbdoubles as the colour of the pad’s particle ring and the status-line text.