Перейти к основному содержимому

Battlepass Definition

Register a battle pass definition

Manifest entry used by TypeWriter to register a [BattlePassDefinition]. The definition itself is fully described in the configuration file. When this entry is compiled into the runtime registry by the extension lifecycle.

Поля

ПолеТипПо умолчаниюОписание
iconStringminecraft:book—
descriptionList<String>empty—ПлейсхолдерыМногострочное
dataRef<BattlePassDataArtifactEntry>——
tiersList<TierConfig>empty—
TierConfig (5)
ПолеТипПо умолчаниюОписание
levelInt0Display order of the tier (starting at 1)
permissionString—Permission required to access the tier
priorityInt0Priority controls which tier overrides another
rewardsList<RewardConfig>empty—
RewardConfig (4)
ПолеТипПо умолчаниюОписание
levelRequiredInt0—
triggersList<Ref<TriggerableEntry>>empty—
displayNameString——ПлейсхолдерыЦвета
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
slotsList<String>emptySlots used to display this tier's rewards inside the menu. Supports ranges such as '10-16'.
weeksList<BattlePassWeekConfig>empty—
BattlePassWeekConfig (7)
ПолеТипПо умолчаниюОписание
numberInt0Week number (used for ordering)
titleString——ПлейсхолдерыЦвета
availableBooleantrue—
descriptionList<String>empty—ПлейсхолдерыЦветаМногострочное
questsList<BattlePassQuestConfig>emptyQuests unlocked during this week
BattlePassQuestConfig (2)
ПолеТипПо умолчаниюОписание
xpRewardLong0—
descriptionList<String>empty—ПлейсхолдерыЦветаМногострочное
unlockAtString—Explicit unlock date (ISO-8601). Overrides offset settings
unlockOffsetDaysLong?—Unlock offset in days from the battle pass start date
layoutMenuLayoutConfig——
MenuLayoutConfig (29)
ПолеТипПо умолчаниюОписание
sizeInt54—
weekSlotsList<String>empty—
tierButtonSlotInt?——
tierButtonEnabledBooleantrue—
questSlotsList<String>empty—
questPreviousSlotInt?——
questPreviousEnabledBooleantrue—
questNextSlotInt?——
questNextEnabledBooleantrue—
questSortSlotInt?——
questSortEnabledBooleantrue—
questBackSlotInt?——
questBackEnabledBooleantrue—
tierMenuSizeInt54—
tierMenuPreviousSlotInt?——
tierMenuPreviousEnabledBooleantrue—
tierMenuNextSlotInt?——
tierMenuNextEnabledBooleantrue—
tierMenuBackSlotInt?——
tierMenuBackEnabledBooleantrue—
previousWeekSlotInt?——
previousWeekEnabledBooleantrue—
nextWeekSlotInt?——
nextWeekEnabledBooleantrue—
closeSlotInt?——
closeEnabledBooleantrue—
backCommandString—Command executed when using the back button. Run as the player. Supports placeholders.
infoSlotInt?——
infoEnabledBooleantrue—
scheduleBattlePassScheduleConfig——
BattlePassScheduleConfig (4)
ПолеТипПо умолчаниюОписание
startString—Battle pass start date (ISO-8601). Leave empty for immediate start
endString—Battle pass end date (ISO-8601). Leave empty for no end
weekDurationDaysLong7Duration of a week in days
timezoneStringUTCIANA timezone used to parse local schedule dates, for example Europe/Paris
buttonsBattlePassMenuButtonsConfig——
BattlePassMenuButtonsConfig (27)
ПолеТипПо умолчаниюОписание
fillMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
levelLockedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
levelUnlockedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
levelCurrentMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierLockedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierUnlockedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierCurrentMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
weekLockedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
weekAvailableMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
weekActiveMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
weekCompletedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questLockedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questAvailableMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questActiveMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questCompletedMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questPreviousMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questNextMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questSortMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
previousWeekMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
nextWeekMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
questBackMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
closeMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierMenuOpenMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierMenuPreviousMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierMenuNextMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
tierMenuBackMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
infoMenuButtonConfig——
MenuButtonConfig (2)
ПолеТипПо умолчаниюОписание
itemItem——
loreList<String>empty—ПлейсхолдерыЦветаМногострочное
xpBattlePassXpConfig——
BattlePassXpConfig (2)
ПолеТипПо умолчаниюОписание
maxLong0—
levelsList<Long>empty—
baseMenuIdString—Optional open_gui chassis to inherit. Empty keeps the standalone Battle Pass inventory.
menuLayoutPoolList<LayoutData>emptyAdditional GUI layouts merged over the inherited chassis.
menuViewsList<MenuViewData>emptyAdditional views merged over the inherited chassis. Slots tagged view:<id> are wired automatically.
menuMainLayoutIdString?—Main layout id for a definition-owned chassis. Empty = inherited main layout.
menuDefaultViewIdString?—Initial view id. Empty = inherited default view.
menuHomeViewIdStringbattlepass_homeHome view id used by the Battle Pass navigation.
menuLevelsViewIdStringbattlepass_levelsLevels/rewards view id used by the Battle Pass navigation.
menuQuestsViewIdStringbattlepass_questsQuests view id used by the Battle Pass navigation.
menuBreadcrumbSeparatorString—MiniMessage separator used in the inherited menu breadcrumb.Цвета
menuPushHistoryOnViewSwitchBooleanfalseWhether switching between Battle Pass views pushes a history entry.

How to use it​

One definition is one battle pass. The fields work together like this:

  • xp — levels is a list of cumulative XP thresholds in increasing order. A player is level 2 once their XP reaches the second threshold. max caps the XP (0 means no cap).
  • weeks — each week has a number (unique, above zero), the quests it contains with their xpReward, and an optional unlock date. A week unlocks at unlockAt if set, otherwise at the pass start plus unlockOffsetDays, otherwise at the start plus weekDurationDays for every previous week. Without a schedule.start, weeks without a date are unlocked from the beginning.
  • schedule — start and end accept 2026-11-01T00:00:00 (read in timezone) or a full UTC date such as 2026-11-01T00:00:00Z. XP is earned only between them; rewards can still be claimed after the end.
  • tiers — each tier level must be unique. A tier with a permission only lets players holding it claim its rewards. Each reward needs a unique id (leave it empty to get tier-<level>-reward-<n>), a levelRequired and the triggers that deliver it.
  • layout and buttons — slots and button items of the default menus. Sizes must be multiples of 9 up to 54.
  • baseMenuId, menuLayoutPool, menuViews, menuMainLayoutId, menuDefaultViewId — fill any of them to open the pass inside a GUI chassis built with the GUI extension. Leave them all empty to use the standalone menus.

A definition that fails validation is skipped at startup and the reason is written to the server log.