Skip to content

Scripts

Share and discover scripts for LiquidBounce

21 Topics 73 Posts
  • [Announcement] ScriptAPI Documentation

    Pinned Locked Moved
    1
    0 Votes
    1 Posts
    690 Views
    No one has replied
  • [Announcement] Don't use 3rd-party sites to upload scripts

    Pinned Locked Moved
    1
    3 Votes
    1 Posts
    2k Views
    No one has replied
  • [Announcement] ScriptAPI Improvements in 0.18.0

    Pinned Locked Moved
    1
    1 Votes
    1 Posts
    254 Views
    No one has replied
  • [GPLv3] transaction.js

    4
    1 Votes
    4 Posts
    288 Views
    C
    transactions.zip Also looking forward to our marketplace, I do know that some development happened on the branch recently, hope to see it soon.
  • Typescript definition for minecraft and LiquidBounce

    4
    2 Votes
    4 Posts
    737 Views
    C
    Update for LiquidBounce v0.29.0: What's new: refined disclaimer in README.md localStorage in definition (no java.utils class definition yet) multiChoose in manually maintained patch
  • [Kotlin] A simple path finder and executor module

    2
    1 Votes
    2 Posts
    218 Views
    Konoha ScarletK
    Are you interested to contribute this for LB repo?
  • [Script] PearlBlockThrow ?

    Unsolved
    2
    0 Votes
    2 Posts
    125 Views
    C
    This is a somewhat faithful transplation of the original source code, which would not work on 1.8.x, this should desync your inventory too. function __require(path) { if (path.startsWith("@embedded")) { return globalThis } if (path.startsWith("@minecraft-yarn-definitions/types/")) { return { [path.substring(path.lastIndexOf("/") + 1)]: Java.type(path .replaceAll("@minecraft-yarn-definitions/types/", "") .replaceAll("/", ".") ) } } return require(path); } var exports = {} "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // imports /* eslint-disable unused-imports/no-unused-imports */ const _embedded_1 = __require("@embedded"); /* eslint-enable unused-imports/no-unused-imports */ // DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work const PlayerInteractItemC2SPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/PlayerInteractItemC2SPacket"); const UpdateSelectedSlotC2SPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/UpdateSelectedSlotC2SPacket"); const UpdateSelectedSlotS2CPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/UpdateSelectedSlotS2CPacket"); const Items_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/item/Items"); const Hand_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/util/Hand"); const script = _embedded_1.registerScript.apply({ name: "no-pearl-use", version: "1.0.0", authors: ["commandblock2"] }); script.registerModule({ name: "no-pearl-use", description: "cancels ender pearl use", category: "Player", }, (mod) => { var slot = 0; mod.on("enable", () => { var _a, _b; slot = (_b = (_a = _embedded_1.mc.player) === null || _a === void 0 ? void 0 : _a.inventory.selectedSlot) !== null && _b !== void 0 ? _b : 0; }); mod.on("packet", (event) => { var _a; if (event.packet instanceof UpdateSelectedSlotS2CPacket_1.UpdateSelectedSlotS2CPacket) { slot = event.packet.slot(); } if (event.packet instanceof UpdateSelectedSlotC2SPacket_1.UpdateSelectedSlotC2SPacket) { slot = event.packet.selectedSlot; } if (event.packet instanceof PlayerInteractItemC2SPacket_1.PlayerInteractItemC2SPacket && ((_a = _embedded_1.mc.player) === null || _a === void 0 ? void 0 : _a.inventory.main[slot].item) == Items_1.Items.ENDER_PEARL) { // use reflection to set the hand to offhand const field = event.packet.class.getDeclaredField("hand"); field.setAccessible(true); field.set(event.packet, Hand_1.Hand.OFF_HAND); _embedded_1.Client.displayChatMessage(`§cPearl use changed to hand ${event.packet.hand}`); } }); }); original typescript code // imports /* eslint-disable unused-imports/no-unused-imports */ import { Setting, Vec3i, Vec3d, MathHelper, BlockPos, Hand, RotationAxis, mc, Client, RotationUtil, ItemUtil, NetworkUtil, InteractionUtil, BlockUtil, MovementUtil, ReflectionUtil, ParameterValidator, UnsafeThread, registerScript } from "@embedded"; /* eslint-enable unused-imports/no-unused-imports */ // DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work import { PlayerInteractItemC2SPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/PlayerInteractItemC2SPacket"; import { UpdateSelectedSlotC2SPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/UpdateSelectedSlotC2SPacket"; import { UpdateSelectedSlotS2CPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/UpdateSelectedSlotS2CPacket"; import { Items } from "@minecraft-yarn-definitions/types/net/minecraft/item/Items"; import { Hand as MCHand } from "@minecraft-yarn-definitions/types/net/minecraft/util/Hand"; const script = registerScript.apply({ name: "no-pearl-use", version: "1.0.0", authors: ["commandblock2"] }); script.registerModule({ name: "no-pearl-use", description: "cancels ender pearl use", category: "Player", }, (mod) => { var slot = 0 mod.on("enable", () => { slot = mc.player?.inventory.selectedSlot ?? 0; }) mod.on("packet", (event) => { if (event.packet instanceof UpdateSelectedSlotS2CPacket) { slot = event.packet.slot(); } if (event.packet instanceof UpdateSelectedSlotC2SPacket) { slot = event.packet.selectedSlot; } if (event.packet instanceof PlayerInteractItemC2SPacket && mc.player?.inventory.main[slot].item == Items.ENDER_PEARL ) { // use reflection to set the hand to offhand const field = (event.packet as any).class.getDeclaredField("hand"); field.setAccessible(true); field.set(event.packet, MCHand.OFF_HAND); Client.displayChatMessage(`§cPearl use changed to hand ${event.packet.hand}`); } }) }) This will indeed cancel the usage of the pearl on 1.8.x protocols function __require(path) { if (path.startsWith("@embedded")) { return globalThis } if (path.startsWith("@minecraft-yarn-definitions/types/")) { return { [path.substring(path.lastIndexOf("/") + 1)]: Java.type(path .replaceAll("@minecraft-yarn-definitions/types/", "") .replaceAll("/", ".") ) } } return require(path); } var exports = {} "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // imports /* eslint-disable unused-imports/no-unused-imports */ const _embedded_1 = __require("@embedded"); /* eslint-enable unused-imports/no-unused-imports */ // DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work const PlayerInteractItemC2SPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/PlayerInteractItemC2SPacket"); const UpdateSelectedSlotC2SPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/UpdateSelectedSlotC2SPacket"); const UpdateSelectedSlotS2CPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/UpdateSelectedSlotS2CPacket"); const Items_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/item/Items"); const script = _embedded_1.registerScript.apply({ name: "no-pearl-use", version: "1.0.0", authors: ["commandblock2"] }); script.registerModule({ name: "no-pearl-use", description: "cancels ender pearl use", category: "Player", }, (mod) => { var slot = 0; mod.on("enable", () => { var _a, _b; slot = (_b = (_a = _embedded_1.mc.player) === null || _a === void 0 ? void 0 : _a.inventory.selectedSlot) !== null && _b !== void 0 ? _b : 0; }); mod.on("packet", (event) => { var _a; if (event.packet instanceof UpdateSelectedSlotS2CPacket_1.UpdateSelectedSlotS2CPacket) { slot = event.packet.slot(); } if (event.packet instanceof UpdateSelectedSlotC2SPacket_1.UpdateSelectedSlotC2SPacket) { slot = event.packet.selectedSlot; } if (event.packet instanceof PlayerInteractItemC2SPacket_1.PlayerInteractItemC2SPacket && ((_a = _embedded_1.mc.player) === null || _a === void 0 ? void 0 : _a.inventory.main[slot].item) == Items_1.Items.ENDER_PEARL) { event.cancelEvent(); } }); }); This will desync your inventory with the server anyway, but it is true that no end pearl will be thrown if you have one in your hand (unless u have a pearl in server side but not client side). Can be used as a example. Later is the original ts file. // imports /* eslint-disable unused-imports/no-unused-imports */ import { Setting, Vec3i, Vec3d, MathHelper, BlockPos, Hand, RotationAxis, mc, Client, RotationUtil, ItemUtil, NetworkUtil, InteractionUtil, BlockUtil, MovementUtil, ReflectionUtil, ParameterValidator, UnsafeThread, registerScript } from "@embedded"; /* eslint-enable unused-imports/no-unused-imports */ // DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work import { PlayerInteractItemC2SPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/PlayerInteractItemC2SPacket"; import { UpdateSelectedSlotC2SPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/UpdateSelectedSlotC2SPacket"; import { UpdateSelectedSlotS2CPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/UpdateSelectedSlotS2CPacket"; import { Items } from "@minecraft-yarn-definitions/types/net/minecraft/item/Items"; const script = registerScript.apply({ name: "no-pearl-use", version: "1.0.0", authors: ["commandblock2"] }); script.registerModule({ name: "no-pearl-use", description: "cancels ender pearl use", category: "Player", }, (mod) => { var slot = 0 mod.on("enable", () => { slot = mc.player?.inventory.selectedSlot ?? 0; }) mod.on("packet", (event) => { if (event.packet instanceof UpdateSelectedSlotS2CPacket) { slot = event.packet.slot(); } if (event.packet instanceof UpdateSelectedSlotC2SPacket) { slot = event.packet.selectedSlot; } if (event.packet instanceof PlayerInteractItemC2SPacket && mc.player?.inventory.main[slot].item == Items.ENDER_PEARL ) { event.cancelEvent(); } }) })
  • who can write the script? noSlotChanger in the client LB for Nextgen

    Unsolved
    7
    0 Votes
    7 Posts
    191 Views
    C
    Trying with matrix on loyisa.cn with noslow mode set to None indeed will move your slot to other items. However just like I assumed previously simply ignoring the packet just won't do, you can never eat the food, even if you immediately send back a slot change. You might need something else to make a nolow mode for matrix. If you need to verify yourself, here is your script anyway. function __require(path) { if (path.startsWith("@embedded")) { return globalThis } if (path.startsWith("@minecraft-yarn-definitions/types/")) { return { [path.substring(path.lastIndexOf("/") + 1)]: Java.type(path .replaceAll("@minecraft-yarn-definitions/types/", "") .replaceAll("/", ".") ) } } return require(path); } var exports = {} "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // imports /* eslint-disable unused-imports/no-unused-imports */ const _embedded_1 = __require("@embedded"); /* eslint-enable unused-imports/no-unused-imports */ // DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work const UpdateSelectedSlotC2SPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/c2s/play/UpdateSelectedSlotC2SPacket"); const UpdateSelectedSlotS2CPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/UpdateSelectedSlotS2CPacket"); const script = _embedded_1.registerScript.apply({ name: "anti slot changing", version: "1.0.0", authors: ["commandblock2"] }); script.registerModule({ name: "anti-slot-changing", description: "like no rotate reset but for slots", category: "Exploit", settings: { resyncServerSide: _embedded_1.Setting.boolean({ name: "resync server side", default: true }) }, }, (mod) => { mod.on("packet", (event) => { var _a, _b, _c; if (event.packet instanceof UpdateSelectedSlotS2CPacket_1.UpdateSelectedSlotS2CPacket) { event.cancelEvent(); if (!mod.settings.resyncServerSide.get()) return; (_a = _embedded_1.mc.getNetworkHandler()) === null || _a === void 0 ? void 0 : _a.sendPacket(new UpdateSelectedSlotC2SPacket_1.UpdateSelectedSlotC2SPacket((_c = (_b = _embedded_1.mc.player) === null || _b === void 0 ? void 0 : _b.inventory.selectedSlot) !== null && _c !== void 0 ? _c : 0)); } }); });
  • Vectorized Velocity

    1
    0 Votes
    1 Posts
    126 Views
    No one has replied
  • [Script] Macros

    2
    0 Votes
    2 Posts
    494 Views
    Q
    macros are not created using the numpad keypad and bottom keys. can you create them quickly by pressing a key without typing?
  • [Script] GCore 0.1 (End support)

    Moved
    24
    0 Votes
    24 Posts
    4k Views
    kawaiinekololisK
    @pro0101 The script is not supported anymore.
  • Someone make a fly hack script for mineland

    1
    0 Votes
    1 Posts
    92 Views
    No one has replied
  • [Script] Mediator 0.2.1 (Update)

    1
    0 Votes
    1 Posts
    382 Views
    No one has replied
  • [Script] ClickGUISyncer

    2
    0 Votes
    2 Posts
    422 Views
    kawaiinekololisK
    This script has been superseded by https://github.com/CCBlueX/LiquidBounce/commit/1446ffc2dab9f8d1abadf947074d74e4be863d56 0 1zun4 committed to CCBlueX/LiquidBounce fix(ScriptManager): not reloading ClickGUI cache (#5364) fixes https://github.com/CCBlueX/LiquidBounce/issues/5228
  • [Script] mumyPacketDebugger 0.3 (Update)

    Moved
    9
    3 Votes
    9 Posts
    2k Views
    M
    thank you for share this information.........
  • Why won't my script be created automatically?

    2
    0 Votes
    2 Posts
    226 Views
    kawaiinekololisK
    Can you be more specific? Check your game logs. It will tell you why.
  • [Script] NES Emulator

    2
    0 Votes
    2 Posts
    495 Views
    kawaiinekololisK
    This script is compatible starting with https://github.com/CCBlueX/LiquidBounce/commit/7ca6ce4bd4500950c48d8a335634ab5092155a1f - do not use on 0.17.0. Wait for 0.18.0 to be released. 0 1zun4 committed to CCBlueX/LiquidBounce feat: key option (#4373) Similiar to Bind but only stores Key. --------- Co-authored-by: Senk Ju <[email protected]>
  • [Script] Text Translator

    1
    0 Votes
    1 Posts
    240 Views
    No one has replied
  • [API] TypeScript based API for nextgen

    Moved
    2
    0 Votes
    2 Posts
    540 Views
    kawaiinekololisK
    Very cool.
  • [Script] BlocksMCCriticals for Nextgen

    Moved
    4
    1 Votes
    4 Posts
    907 Views
    EclipsesDevE
    tbh it would be more convenient to implement this as speed mode instead..