Client Base

Bringing your pause menu to physical space!

272

Client Base

Requires Connector and FFAPI on neo/forge.

STILL IN PRE-RELEASE

This mod is still in a pre-release state. This means: <ul> <li>All features are subject to change</li> <li>Documentation may be slim</li> <li>Examples are not present</li> </ul>

Providing the player with a client-only room that dependencies can hook into for special functionality.

This mod adds in a new keybind and config setup that allow the user to pause their game -- but instead of a menu appearing, they spawn into a room! This room can house anything the player desires as long as they set up the correct configs and assets.

Config Schema

Web-based Config Generator based on https://misode.github.io/

<details> <summary>MCDoc</summary>

``` dispatch minecraft:resource[clientbase:config] to struct ClientbaseConfig { config_format: 1, structure: StructureConfig, player_start?: PlayerStartConfig, renderers?: struct { [string]: RendererConfig, }, interactions?: [InteractionConfig], easy_place?: [EasyPlaceConfig], }

struct StructureConfig { structure: string, offset?: [int] @ 3, }

struct PlayerStartConfig { offset?: [float] @ 3, pitch?: float, yaw?: float, }

struct RendererConfig { type: RendererType, ...clientbase:renderer[[type]], }

enum(string) RendererType { FakeBlock = "fake_block", BlockEntity = "block_entity", BlockModel = "replace_state", }

dispatch clientbase:renderer[fake_block] to struct FakeBlockRenderer { model: #[id="model"] string, hitbox?: [[float] @ 6], }

dispatch clientbase:renderer[block_entity] to struct BlockEntityRenderer { renderer: #[id="renderer"] string, hitbox?: [[float] @ 6], }

dispatch clientbase:renderer[replace_state] to struct BlockModelRenderer { model: #[id="model"] string, replace_state: struct { block: #[id="block"] string, state: string, }, }

struct InteractionConfig { type: InteractionType, ...clientbase:interaction[[type]], }

enum(string) InteractionType { BlockPos = "blockpos", }

enum(string) InteractionId { Exit = "exit", Inventory = "inventory", Advancements = "advancements", Options = "options", VideoOptions = "video_options", }

dispatch clientbase:interaction[blockpos] to struct BlockPosInteraction { interaction: InteractionId, blockpos: [int] @ 3, }

struct EasyPlaceConfig { blockpos: [int] @ 3, renderer: string, } ```

</details>

ADS