Important for new members!
All future posts from members with a reputation of less than 1 will be queued for manual review to prevent forum spam. We will review your posts as soon as possible!
Changes the velocity direction or strength based on the incoming packet or minecraft player's facing direction. Usually not useful unless you need to be flying sideways or your facing direction.
Released js for LiquidBounce Nextgen 0.28.1, Licensed under GPLv3
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");
const EntityVelocityUpdateS2CPacket_1 = __require("@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/EntityVelocityUpdateS2CPacket");
/* eslint-enable unused-imports/no-unused-imports */
// DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work
const script = _embedded_1.registerScript.apply({
name: "vectorized-velocity-xz",
version: "1.0.0",
authors: ["commandblock2"]
});
script.registerModule({
name: "vectorized-velocity-xz",
description: "Port of the old script for legacy, for those anticheat that doesn't have proper velocity detection",
category: "Combat",
settings: {
offsetBasedOnPlayerOrIncomingVelocity: _embedded_1.Setting.choose({
name: "OffsetBasedOnPlayerOrIncomingVelocity",
choices: ["player", "incoming"],
default: "player"
}),
offset: _embedded_1.Setting.float({
name: "AngleOffset",
default: 0,
range: [-180, 180]
}),
amplitude: _embedded_1.Setting.float({
name: "Amplitude",
default: 1,
range: [-100, 100]
})
}
}, (mod) => {
mod.on("packet", (event) => {
if (!_embedded_1.mc.player)
return;
const packet = event.packet;
if (packet instanceof EntityVelocityUpdateS2CPacket_1.EntityVelocityUpdateS2CPacket && packet.entityId == _embedded_1.mc.player.id) {
const yaw = mod.settings.offset.get() +
(mod.settings.offsetBasedOnPlayerOrIncomingVelocity.getValue() == "player" ?
-_embedded_1.mc.player.yaw : (Math.atan2(packet.getVelocityX(), packet.getVelocityZ()) * 180 / Math.PI));
const velocity = Math.sqrt(packet.getVelocityX() * packet.getVelocityX() + packet.getVelocityZ() * packet.getVelocityZ())
* 8000 * mod.settings.amplitude.get();
// graaljs traps here:
// 1. it eats error here when we have loss in precision and does not update the value
// 2. packet.velocityX and packet.getVelocityX() is very different (public double getVelocityX() { return (double)this.velocityX / 8000.0; })
// and when reading velocityX graaljs calls getVelocityX() and when writing velocityX it directly writes that
packet.velocityX = Math.round(velocity * Math.sin(yaw / 180 * Math.PI));
packet.velocityZ = Math.round(velocity * Math.cos(yaw / 180 * Math.PI));
}
});
});
original typescript script, won't run directly in LiquidBounce, for more info, see https://github.com/commandblock2/minecraft-LBNG-types
// 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";
import { EntityVelocityUpdateS2CPacket } from "@minecraft-yarn-definitions/types/net/minecraft/network/packet/s2c/play/EntityVelocityUpdateS2CPacket";
/* eslint-enable unused-imports/no-unused-imports */
// DO NOT TOUCH ANYTHING ABOVE THIS LINE, also not sure why it didn't work
const script = registerScript.apply({
name: "vectorized-velocity-xz",
version: "1.0.0",
authors: ["commandblock2"]
});
script.registerModule({
name: "vectorized-velocity-xz",
description: "Port of the old script for legacy, for those anticheat that doesn't have proper velocity detection",
category: "Combat",
settings: {
offsetBasedOnPlayerOrIncomingVelocity: Setting.choose({
name: "OffsetBasedOnPlayerOrIncomingVelocity",
choices: ["player", "incoming"],
default: "player"
}),
offset: Setting.float({
name: "AngleOffset",
default: 0,
range: [-180, 180]
}),
amplitude: Setting.float({
name: "Amplitude",
default: 1,
range: [-100, 100]
})
}
}, (mod) => {
mod.on("packet", (event) => {
if (!mc.player)
return;
const packet = event.packet
if (packet instanceof EntityVelocityUpdateS2CPacket && packet.entityId == mc.player.id) {
const yaw = mod.settings.offset.get() +
(mod.settings.offsetBasedOnPlayerOrIncomingVelocity.getValue() == "player" ?
-mc.player.yaw : (Math.atan2(packet.getVelocityX(), packet.getVelocityZ()) * 180 / Math.PI));
const velocity = Math.sqrt(packet.getVelocityX() * packet.getVelocityX() + packet.getVelocityZ() * packet.getVelocityZ())
* 8000 * mod.settings.amplitude.get();
// graaljs traps here:
// 1. it eats error here when we have loss in precision and does not update the value
// 2. packet.velocityX and packet.getVelocityX() is very different (public double getVelocityX() { return (double)this.velocityX / 8000.0; })
// and when reading velocityX graaljs calls getVelocityX() and when writing velocityX it directly writes that
packet.velocityX = Math.round(velocity * Math.sin(yaw / 180 * Math.PI))
packet.velocityZ = Math.round(velocity * Math.cos(yaw / 180 * Math.PI))
}
})
})
[image: 1730870771737-453b7e40-7f0c-4fef-9b65-36306250c553-image.png]
[image: 1730870791301-65d17b6d-a827-48e6-9f3d-a9356599d729-image.png]
With this script, you can create macros and bind commands to the key of your choice. When you need it, just press the key and the command will be executed.
How to use
Turn on Macros Module - otherwise macros will NOT be executed.
Create macro by typing: .macro add <key> <command...>
Press <key> and the command will be executed right away.
Download
macros.js
I truly appreciate that this client has remained free and open-source, which is excellent and has given rise to many forks. However, I wonder if there has been consideration to develop an injectable client? I understand that technical expertise varies, but could we attempt to explore this path?
Take the example of CCBlueX/liquidbounce_lite, which uses DLL injection via Rust. While undoubtedly challenging (potentially taking at least two years to mature), could such an approach eventually become viable? Additionally, would an executable (EXE) based solution be worth exploring as an alternative?
Warning!
This script is no longer supported.
Please do not continue using it.
Authors
Godden & mumy255
Screenshots
[image: 1723706282510-2024-08-15_15.16.26.png]
[image: 1723706305157-2024-08-15_15.16.54.png]
Description
This script includes various conceptual CrystalPVP features, suitable for Vanilla servers running version 1.9 and above.
(Supports only Nextgen 0.2.0-0.4.1 and Minecraft 1.20.4)
Download
GCore-0.1.zip
GCoreLoader.js
Q&A
Q: Why has this script been discontinued and no longer developed?
A: This script was only used to test certain conceptual features and was never intended for long-term use.
Q: Why does it only support MC 1.20.4 and nextgen 0.4.1?
A: It's purely because the developer was too lazy to make it work for other versions.
Q: Why is there an issue with the download link?
A: Because it was disrupted by some form of coercive force on this side.
Q: Why does the script have different versions?
A: Not sure, GCore only has a standard version and a Lite version.
The standard version has no version number (default is 0.1), and the Lite version stopped earlier.
(liquidbounce script) hey im requesting for a xbow/autobow minecart module basically like this example
the example is that its basically a set of any rail that you can use like any and basically a minecart, a bow with a flame enchantment if u shoot it calculates on where the position of the arrow is gonna land it places down a rail and a minecart at the location that the bow is gonna land and also add the auto safety block placement basically calculates where its the best to place a block at to negate all of the damage from the explosion by a block placement basically the reach is just gonna place withen building reach lets say the user has the arrow out of the reach but runs into its reach while its falling it resumes and he can place a rail and minecart again at the falling position another thing is that you have to add a auto inventory basically it would take a minecart as refill and place it in the hotbar each time the current one runs out plus its gonna auto rotate body and head to where the arrow is landing at so that it can also place the rail and cart its to also lower any suspiciousness incoming.
Heres an example i want exactly like the same one in this video:
https://www.youtube.com/watch?v=caT_LzIA9LM
-
-
-
-
General Discussion
A place to talk about anything related to LiquidBounce
-
Suggestions
Think something is missing? Let us know!
-
Bug Reports
Found a bug? Report it here!
-
Chinese
A place for our Chinese community
-
Off-Topic
Talk about anything you like (as long as you follow the rules)!