Server Packs
Hexis core should understand Minecraft mechanisms, not Hypixel product rules. Server-specific behavior belongs in versioned capability packs unless there is strong evidence that it is universal engine behavior.
Boundary
The engine may expose universal capabilities such as navigation, block queries, inventory transactions, and interaction. A pack explains that a scoreboard means “Galatea,” which item represents a resource, or which menu option performs a server action.
Pack contents
A pack can provide:
- server and mode detection;
- semantic item, block, entity, region, and menu selectors;
- named destinations, routes, and teleport edges;
- server event decoders;
- default policies and reusable Lua workflows;
- declarations of required Hexis capabilities;
- pack-specific acceptance fixtures and compatibility metadata.
Packs should favor data and selectors over executable Java. Protected adapter code is justified when server interpretation is performance-sensitive, security sensitive, or cannot be expressed safely as data.
Pack contract
Every pack declares:
pack identity and version
supported server fingerprints
required Hexis contract versions
capabilities and permissions
selectors/data with provenance
compatibility and acceptance tests
Detection is evidence-based. A script may request a pack, but the adapter must fail closed when the current server cannot be verified.
Example target flow
local pack = hexis.packs.require("hypixel.skyblock", {
min_version = "1.0",
})
local result = hexis.await(hexis.mining.harvest({
region = pack.regions.galatea_grove,
target = pack.resources.fig_logs,
}))
The core mining contract does not know what Galatea or a fig log is. The pack does not reimplement aiming or block breaking.
Leakage checklist
A core change is leaking server knowledge when it introduces:
- Hypixel-named classes, status codes, or public API fields;
- hard-coded scoreboard, chat, tab-list, GUI, item-lore, or coordinate rules;
- island-specific navigation edges in the generic graph;
- staff lists or ban-avoidance behavior in generic lifecycle code;
- server commands or menu labels inside engine mechanisms;
- a universal API whose behavior only makes sense on one server.
Existing occurrences should be cataloged during each vertical slice and moved to a pack, data set, or script unless the mechanism is demonstrably universal.
Portability acceptance test
A core capability is server-agnostic only if a fixture can exercise it with:
- a vanilla/local-world adapter;
- a Hypixel pack;
- no conditional branch in the engine that checks either server by name.
This does not require identical server behavior. It requires the same engine contract with different knowledge supplied at the adapter boundary.