Client Base

Bringing your pause menu to physical space!

272

Quick challenge

How far can you run before the mobs catch you?

Client Base

**Requires [Connector](https://modrinth.com/mod/connector) and [FFAPI](https://modrinth.com/mod/forgified-fabric-api) on neo/forge.**
STILL IN PRE-RELEASE This mod is still in a pre-release state. This means:
  • All features are subject to change
  • Documentation may be slim
  • Examples are not present
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](https://client-base.bug1312.com/) based on https://misode.github.io/
MCDoc ``` 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, } ```
ADS