HomeJavaModsClient Base
Client Base
ModsJava

Client Base

by Bug1312 · on Modrinth

Which build do you need?

This mod ships a separate file for every mod loader and every version of the game. Pick both, then download — the wrong build installs fine and then does nothing in the game.

Mod loader

Minecraft version

⬇ Download for 26.1–26.1.1 · Fabric⬇ Download for 1.21.8 · Fabric⬇ Download for 1.21.1 · Fabric⬇ Download for 1.20.1 · Fabric⬇ Download for 1.21.8 · Quilt⬇ Download for 1.21.1 · Quilt⬇ Download for 1.20.1 · Quilt⬇ Download for 1.21.1 · NeoForge⬇ Download for 1.20.1 · NeoForge⬇ Download for 1.20.1 · Forge
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.
Client Base — screenshot 1Client Base — screenshot 2Client Base — screenshot 3

Requires Connector and FFAPI on neo/forge.

STILL IN PRE-RELEASE This mod is still in a pre-release state. This means:

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/

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,
}
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more