The Best Resource for Minecraft
The Best Resource for Minecraft

PackMenu Mod Wiki

PackMenu is a comprehensive customization mod that allows players and modpack creators to completely overhaul the Minecraft main menu using JSON-based configurations for buttons, backgrounds, logos, and music.

7 sections · 843 words

Overview#

PackMenu provides a powerful framework for modifying the Minecraft main menu without requiring complex Java coding. By utilizing JSON files and standard resource packs, users can relocate or remove vanilla buttons, add custom buttons with unique actions, change the background to static images or animated slideshows, and replace the default Minecraft logo. This mod is a staple for modpack creators looking to provide a branded and professional first impression for their users.

File Structure and Setup#

PackMenu operates using two primary locations within the Minecraft instance directory. Configuration files determine the logic and layout, while resource packs provide the visual assets.

Directory Layout

  • config/packmenu/: This is the primary directory for customization logic.
    • buttons/: A folder containing individual .json files for every custom button.
    • background.json: Defines the menu background (image, panorama, or slideshow).
    • logo.json: Defines the main title logo properties.
    • packmenu.cfg: General mod settings, such as enabling/disabling specific vanilla elements.
  • resources/packmenu/: While assets can be placed in any resource pack, this folder is often used for modpack-specific textures like button icons and backgrounds.

Custom Buttons#

The JSON Button is the primary interface for adding menu content. Each button specifies a position, texture, and action. Buttons can also be created without actions to serve as decorative still images.

Button Schema

Key Type Requirement Description
x int Mandatory The x position of the button in pixels, adjusted against the anchor point.
y int Mandatory The y position of the button in pixels, adjusted against the anchor point.
width int Mandatory The width of the button in pixels.
height int Mandatory The height of the button in pixels.
anchor AnchorPoint Optional The anchor point for the button. Defaults to default.
sprites WidgetSprites Optional The sprites for the button. Defaults to vanilla sprites.
icon ButtonIcon Optional An optional button icon to draw.
hover_icon ButtonIcon Optional The icon drawn when hovered. Defaults to icon.
action ButtonAction Mandatory The action performed on click.
text ButtonText Optional The text to draw on the button.
hover_text ButtonText Optional The text to draw when hovered. Defaults to text.
active boolean Optional If the button can be clicked. Defaults to true.
scale_x float Optional Scale factor for x values.
scale_y float Optional Scale factor for y values.

Anchor Points

Anchor points determine the origin (0,0) for the button's X and Y coordinates:

  • top_left, top_center, top_right
  • middle_left, center, middle_right
  • bottom_left, bottom_center, bottom_right

Button Actions

Action Type Description
packmenu:open_url Opens a specified URL in the user's default browser.
packmenu:connect_to_server Automatically connects the player to a specific server IP.
packmenu:quit Closes the Minecraft client.
packmenu:open_gui Opens a specific Minecraft screen (e.g., Options, Multiplayer, Language).
packmenu:open_folder Opens a local folder within the Minecraft directory.

Example: Sponsor Button

This example demonstrates a button anchored to the top right that opens a URL.

{
 "x": -150,
 "y": 0,
 "width": 150,
 "height": 20,
 "anchor": "top_right",
 "icon": {
 "texture": "packmenu:icon/akliz",
 "width": 150,
 "height": 20
 },
 "action": {
 "type": "packmenu:open_url",
 "url": "https://www.akliz.net/partners"
 },
 "text": {
 "key": "packmenu.akliz",
 "x_offset": 5
 }
}

Backgrounds#

The background.json file controls what is displayed behind the menu buttons. PackMenu supports three distinct background types.

Background Types

  1. Image: A single static texture that covers the screen.
  2. Panorama: A classic rotating 3D view using six cubic textures (similar to vanilla Minecraft backgrounds).
  3. Slideshow: A sequence of images that fade into one another over a specified duration.

Slideshow Configuration

When using the slideshow type, you can define the speed and the list of textures to cycle through.

Key Type Description
type string Must be "slideshow".
textures array A list of resource locations for the images.
duration int The time in ticks each image stays on screen.
fade_time int The time in ticks for the transition between images.

Logo Customization#

The logo.json file allows you to replace the default Minecraft title logo with a custom image. This is highly useful for modpack branding.

Logo Properties

  • texture: The resource location of the logo image.
  • x / y: The offset from the anchor point.
  • width / height: The dimensions of the logo in pixels.
  • scale: A multiplier for the logo's size.
  • anchor: Typically set to top_center for standard title placement.

General Configuration#

The packmenu.cfg file contains global toggles for various menu elements. This is where you can disable vanilla components to make room for your custom layout.

Configurable Options

  • Draw Splash Text: Toggle the yellow splash text next to the logo.
  • Draw Java Edition: Toggle the "Java Edition" subtitle.
  • Draw Forge Info: Toggle the version information in the bottom left corner.
  • Folder Overrides: Enable or disable the loading of custom JSONs from the config folder.