Client Base
Bringing your pause menu to physical space!
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>