Skip to content

About

The stock modules and HUD elements for the Myriad client

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Myriad Essentials

The stock modules and HUD elements for Myriad (source). Essentials is an ordinary addon: it's built on Myriad's public API like any other (the build fails if it touches internals), it's versioned and released on its own, and Myriad runs without it. Everything here is made for 2b2t and passes Grim by default.

Put myriad-essentials-<v>.jar in mods/ next to myriad-<v>.jar (from the latest release) and press Alt+1 in game to open the menu.

Modules

In six windows, one per tag; each module's settings explain its options.

Combat Kill Aura (Grim-safe: faces the target with move fix and hits when this tick's or the last sent rotation lands on its hitbox within reach, so the turn and the hit share a tick; full charge, vanilla packet order; Switch holds the best weapon on the server only, from the hotbar or inventory, charging it before the target is in reach, or attacks only while you hold one), Offhand (totem, crystal, golden apple or shield, falling back to a totem when it matters; sword gap), Auto Armor (best armour; a bind flips chestplate and elytra; pieces worn down to Preserve swapped out or taken off, to be mended), Velocity, Auto Disconnect (health, totem pops, totems left, armour, players, beds, anchors, crystals, creepers, chosen entities, below or above a height (Hard Deck), near a spot (Destination: coordinates or one of your Xaero waypoints, to log out where a flight ends); turns off or waits for the reason to clear)
Movement Elytra Fly, three ways: Recast (highway bouncing: stops only for a hole or a low ceiling where a hop would come down or take off, and flies over the rest; walks round obstacles with Baritone, never through a nether portal, else mines them and fills holes at floor level, gets back onto the lane at its height after a fall, and waits or disconnects when it can't get past; Ground Terrain steers where you look over uneven land instead, hopping up single-block steps and stopping at anything higher, water, or a drop of more than two; with Elytra Swap the chestplate is worn through each hop and the elytra goes on only for the glide start, on 2b2t too), Altitude (pitch 40 style flight without fireworks, about 27 b/s, made to be left alone: spare elytras go on in mid-air, it rides out setbacks, waits for chunks, and lands then disconnects when the last elytra is wearing out), Control (fly with the movement keys, where the server checks elytras loosely, like 6b6t); Snap, for each type, rounds the way it flies to 45° (Recast's default) or 90°; elytras worn down to Preserve swapped for a fresh one. Elytra Swap (keeps the elytra from wearing out, for Elytra Fly and, with When You Fly, for you: swapped with a chestplate from your inventory where Grim simulates the glide, the swap sounds muted, a short break elsewhere; opens a glide dropped in mid-air again), Rocket Boost (rockets push as hard as Grim allows, full speed at once, about 34 b/s straight and 42 on diagonals, holding height), Rotation Lock (keep flying the way you faced at takeoff, or when you turned it on, whatever the camera does; Elytra Fly's Snap rounds it to 45° or 90°), Inventory Move (walk with screens open, arrow keys to look), No Slow (full speed while eating, drinking, blocking or drawing a bow; under Grim one tick in three, about twice the speed the item allows; through cobwebs at full speed, Grim too)
World Scaffold (blocks under you as you walk, clicking faces you can see; sprints without breaking stride, unaimed as 2b2t clients place, or Rotate to face each block for stricter Grim; bridges corners, towers when you jump), Air Place (place blocks in mid-air where you look, through the off hand as 2b2t clients do; current Grim builds refuse it), Packet Mine (hit once and the block is mined for you with your hand free, timed to Grim's own allowances so it finishes early without flags; the block stays until the server says it's gone, so no ghost blocks; Fast mode finishes every block early with decoy starts, as 2b2t clients do, with double break; hold and drag to queue blocks, auto rebreak, tools borrowed from your inventory and put back), Reach (starts at vanilla; Grim flags more), Wall Interact, Baritone (Baritone's settings in the menu, grouped; while on, what you change from Baritone's defaults is set in Baritone, and its own come back when off, so profiles and control panels can carry Baritone setups; only with Baritone installed; Custom Render draws its path as a smooth flowing gradient line, the blocks it will mine and fill marked, and its goal as a ghost of you standing there, in the render mode, in place of Baritone's own drawing)
Player Inventory Tweaks (Mod + right-click a shulker box or ender chest in your inventory, or in a chest you have open, to put it down beside you with a tab on core's swap bar, opened at once from your inventory; they go back together, into the container they came from, when you close the screen; Remote Ender Chest keeps an ender chest open after you close it, from anywhere, your inventory key showing it again; shift-drag, drag to collect, scroll to move one; middle-click to sort the container or your inventory under the mouse), Replenish (tops up hotbar stacks and refills used-up slots), Middle Click (friend, experience, rocket or pearl by what you point at, without the hand swinging on screen; from the inventory too), Auto Reconnect (joins the server again after a kick or a dropped connection, after a few seconds, and keeps trying; never after Auto Disconnect)
Render Chat (chat in the theme's font and colours, filters, repeats stacked, longer history, and Minecraft's Chat Settings in one place), Extra Tab (the player list with more players and rows, ping in milliseconds, friends and you picked out), Entity ESP, Tracers, Nametags (players, mobs, items, pearl owners, remembered once they've gone), Storage ESP, Block ESP (highlight chosen blocks, like spawners or beds, in their own colours), Block Highlight (your own outline for the block you're looking at), Full Bright (gamma or night vision), Time of Day (lock the time you see), View Model, Zoom, Free Look, Freecam, Tooltips (shulker, ender chest and map previews, durability, food)
Automation Auto Eat (pauses Baritone), Auto Tool (silent; borrows tools from your inventory and puts them back; tools worn down to Preserve are left alone, by mining too), Auto Walk (Elytra Fly's Control flies forward with it too), Auto Mend (throws bottles o' enchanting at your feet until your Mending gear is mended, wearing and holding inventory pieces in turn, then puts everything back), Auto Sort (sorts chests, barrels and shulker boxes as you open them, in item, name or count order), Printer (builds Litematica schematics around you as you move, every block facing the way the schematic has it; see below), Auto Portal (a Nether portal, lit, where you right-click with obsidian or in front of you on a tap bind)

HUD elements: Watermark (with the logo), Module List, Looking At (what the crosshair is on, with a bar as it's broken), Coordinates (digits grouped in thousands), Gear (your hands and armour, durability as the uses left), Biome, Binds, Chest Count, Direction (yaw and pitch if you like), Effects, FPS, HP, Player Count, RAM, Speed, Totems, TPS. Baritone options do nothing when Baritone isn't installed.

Modules behave differently on a server running Grim (2b2t) and on one with only the vanilla checks: Myriad's anti-cheat profile (Auto, Grim, Vanilla) decides, and Essentials stays Grim-safe either way.

Two ready-made control panels put modules together on one bind: Highway (Elytra Fly's Recast, Elytra Swap, Auto Eat) and Cruise (Elytra Fly's Altitude, Elytra Swap, Rotation Lock, Auto Eat). Edit them, or make your own, in the Control Panels window.

Printer

Install Litematica 0.28.8 and MaLiLib 0.29.6 next to Essentials (nothing else needs them). Load and place a schematic in Litematica as usual (the layer range limits what's printed), put the blocks in your inventory and turn the Printer on. It places within Range of your eyes, so walk along the build; a block that can't be placed from where you are (it's shown outlined) is tried again as you move or as the blocks around it go in. Repeaters, comparators, note blocks, doors, trapdoors, gates and levers are clicked into the schematic's setting; candles, sea pickles, snow layers and double slabs get as many as it has. It runs as a job, so the Jobs window shows what it's doing and waiting for.

  • Grim servers (default): Rotate on, Air Place off. A block is clicked with the look its facing needs, and the next movement packet looks at it, as Grim checks; the rest go in when you get to a side they can be placed from.
  • 2b2t: Air Place on and Rotate off. It clicks any face in reach, or the empty space itself, from your off hand: about 26 blocks a second (Paper allows 30), your off hand and hotbar back in place a tick later.
  • It places against chests, doors and other blocks that open when clicked by telling the server you're sneaking for just that click. A block it placed that came out wrong is broken and placed again, up to three times; blocks it didn't place are left alone. It pauses while a screen is open or you eat.
  • Blocks come into any hotbar slot but the one you hold (with a full hotbar, one of yours steps aside), and the hotbar and off hand go back as they were when it's done; meanwhile the hotbar shows what was there.
  • Order: Bottom Up (a layer at a time) or Nearest (what's beside you first, as you walk past). Skip: blocks of the schematic to leave out. Walk To Blocks: once nothing in reach is left, Baritone walks you to beside the nearest unbuilt block (without mining or placing on the way). Restock: when a block runs out, a stack is fetched from the shulker boxes you carry and the chests, barrels and shulker boxes in reach (or within Container Range with Walk To Blocks), and printing carries on.

For addon developers

Essentials is written as a reference for addons: everything goes through Myriad's public API. Other addons can change how some of its modules decide things with hooks (see core's README, "Hooks"), compiling against Essentials (compileOnly) and registering only when it's installed:

Hook Decides Caller
ElytraSwap.BEHAVIOUR whether Elytra Swap swaps for a flight, and whether each glide start waits for the elytra the flight: myriad-essentials:recast, :altitude, :control, or Elytra Swap itself for you
RotationLock.HEADING the yaw a flight flies while Rotation Lock holds its heading the flight
KillAura.TARGET which entity Kill Aura attacks, from the candidates in reach (best first) Kill Aura
Offhand.FORCE_TOTEM whether Offhand forces a totem now, from the reasons it found Offhand
if (FabricLoader.getInstance().isModLoaded("myriad-essentials")) {
    ctx.hook(ElytraSwap.BEHAVIOUR)
        .named("Recast keeps its elytra on 6b6t")
        .when(Match.caller("myriad-essentials:recast").server("6b6t.org"))
        .handle(call -> call.input().withSwaps(false));
}

Building

Requires JDK 25+. Myriad comes from its maven (https://maven.myriadclient.dev/releases); myriad_version in gradle.properties picks the release.

./gradlew build                      # build/libs/myriad-essentials-<v>.jar
./gradlew runClient -PopenDesktop    # Myriad + Essentials, the menu open on the title screen
./gradlew runClient -PquickPlay="New World"               # …or straight into a singleplayer world
./gradlew runClient -PquickPlayServer=localhost:25565 -Pusername=GrimTester   # …or onto the Grim test server

The dev client has ViaFabricPlus and joins servers as 1.20.4, as most 2b2t players do; -Pvia=native joins as the client's own version (or -Pvia=1.21.4, any version ViaFabricPlus knows).

./gradlew build -PcoreDir=../myriad  # against the core jar built in a Myriad checkout next to this one

-PcoreDir is for changing core and Essentials together: build core's jar there (./gradlew :core:jar), build here against it (Myriad's addon Gradle plugin, which sets up this build, comes from that checkout too), and nothing needs publishing or a version bump until the core change is released. The other way round, Myriad's "everything" dev client loads this checkout's jar with -PessentialsDir=../myriad-essentials.

Testing against Grim

tools/grim-test/ runs a local 2b2t-like server with Grim, with scripts to run server commands, drive the dev client and read Grim's flags. tools/grim-test/suite is the Essentials test suite: every module switched on and off (selftest), then each main module in a scene of its own, checked on the server and against Grim's flags. Run it after changing core or Essentials; add a test when you add a module.

Releasing

Bump mod_version in gradle.properties, add the section to CHANGELOG.md, then git tag v<version> && git push origin v<version>. The workflow builds, attaches the jar to a GitHub release and publishes it to Myriad's maven.

Credits

Several modules take their ideas from Lambda, whose take on 2b2t utilities (packet mining, elytra bouncing, inventory tweaks) was a big inspiration. The code here is written from scratch for Myriad's services.

About

The stock modules and HUD elements for the Myriad client

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages