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!
[image: 1730867961435-vlcsnap-2024-11-06-05h39m14s168-resized.png]
With this script, games developed for the Nintendo Entertainment System (NES) can be played directly in LiquidBounce. Based on JSNES by bfirsh. A demo video on YouTube can be found here.
Video
https://youtu.be/-M1xCYokurs
How to use
Place the nes_emulator folder into your scripts folder.
Navigate into the nes_emulator folder and put you NES games into the roms folder.
Launch LiquidBounce, right click NESEmulator inside the ClickGUI and select the game you want to play.
Enable NESEmulator.
Important! Performance might be terrible at first. It will improve once hot code compilation kicks in.
Default Keybinds
NES button
Keyboard Bind
A
Z
B
X
Select
C
Start
V
Up
Arrow Up
Down
Arrow Down
Left
Arrow Left
Right
Arrow Right
Download
LiquidBounce_nes_emulator_Minecraft_1_21_11.zip
Due to some issues with the pre-existing "AutoWeapon" module, I made a new script (for minecraft 1.21.11) that fits more to my needs. But, everytime a new entity type is hit for first time, it freezes the game for sometime then starts working as normal. Sometimes the script completely stops working when using for a while, requiring a reload to work again. I'm still new to the ScriptAPI so any help is appreciated!
PS: This is barely an assumption but I think the script has a chance to stop working when a wind charge is hit, haven't tested but the script mostly breaks when doing mace-pvp for sometime. And yes, I did use AI to write some stuff as I'm not that familiar with mojang mappings.
const script = registerScript({
name: "CombatUtils",
version: "1.0.0",
authors: ["nyxraze"]
});
script.registerModule({
name: "AutoWeaponSwap",
category: "Combat",
description: "Includes ShieldBreaker and MaceSwap. ShieldBreaker: Automatically swaps to axe to break shield when target is blocking. MaceSwap: Swaps to Density/Breach mace based on fall distance, then swaps back.",
settings: {
shieldBreaker: Setting.boolean({
name: "ShieldBreaker",
default: true,
}),
maceSwap: Setting.boolean({
name: "MaceSwap",
default: true,
}),
stunSlam: Setting.boolean({
name: "StunSlam",
default: true,
}),
fallThreshold: Setting.int({
name: "Density mace fall threshold",
default: 5,
range: [0, 20],
suffix: "blocks"
}),
swapBackTicks: Setting.int({
name: "Swap-back delay",
default: 1,
range: [0, 10],
suffix: "ticks"
}),
}
}, async (mod) => {
function IsAxe(stack) {
return stack && !stack.isEmpty() &&
stack.getItem().toString().endsWith("_axe")
}
// Scan hotbar for axes
function FindAxes(player) {
const originalSlot = player.inventory.selectedSlot
let slots = []
for (let slot = 0; slot < 9; slot++) {
const stack = player.getInventory().getItem(slot)
if (IsAxe(stack)) {
slots.push(slot)
}
}
player.inventory.selectedSlot = originalSlot
return slots
}
function IsMace(stack) {
return stack && !stack.isEmpty() &&
stack.getItem().toString() === "minecraft:mace"
}
// Scan hotbar for maces
function FindMaces(player) {
const originalSlot = player.inventory.selectedSlot
let slots = []
for (let slot = 0; slot < 9; slot++) {
const stack = player.getInventory().getItem(slot)
if (IsMace(stack)) {
slots.push(slot)
}
}
player.inventory.selectedSlot = originalSlot
return slots
}
// Check if item is a shield
function IsShield(stack) {
if (!stack || stack.isEmpty()) return false
const itemId = stack.getItem().toString()
return itemId === "minecraft:shield" ||
itemId.includes("shield") // For modded shields
}
// Choose which mace based on fall distance
function ChooseMaceSlot(player, maceSlots) {
if (!maceSlots || maceSlots.length === 0) return -1
const fall = player.fallDistance
return (maceSlots.length === 1) ? maceSlots[0]
: (fall >= mod.settings.fallThreshold.value ? maceSlots[0] : maceSlots[1])
}
let isAttacking = false; // top-level flag for single attack
mod.on("enable", () => {
isAttacking = false
})
mod.on("attack", async (event) => {
if (isAttacking) return; // prevent double-triggering
isAttacking = true;
const player = mc.player
const originalSlot = player.inventory.selectedSlot
const entity = event.entity
const maces = FindMaces(player)
const axes = FindAxes(player)
const bestMaceSlot = ChooseMaceSlot(player, maces)
// Check if entity is holding a shield in main hand
const mainHandItem = entity.getMainHandItem()
const hasShieldInMainHand = IsShield(mainHandItem)
// Determine if we should consider stun-slam conditions
const shouldConsiderStunSlam = entity.isBlocking() || hasShieldInMainHand
// ---- StunSlam ----
if (
mod.settings.stunSlam.value &&
shouldConsiderStunSlam &&
axes.length > 0 &&
maces.length > 0
) {
const axeSlot = axes[0]
if (axeSlot !== originalSlot) player.inventory.selectedSlot = axeSlot
await AsyncUtil.ticks(1)
player.inventory.selectedSlot = bestMaceSlot
InteractionUtil.attackEntity(entity, true, false)
await AsyncUtil.ticks(mod.settings.swapBackTicks.value)
player.inventory.selectedSlot = originalSlot
isAttacking = false
return
}
// ---- ShieldBreaker ----
if (
mod.settings.shieldBreaker.value &&
shouldConsiderStunSlam &&
(!mod.settings.stunSlam.value || maces.length === 0)
) {
if (axes.length > 0) {
const axeSlot = axes[0]
if (axeSlot !== originalSlot) player.inventory.selectedSlot = axeSlot
await AsyncUtil.ticks(mod.settings.swapBackTicks.value)
player.inventory.selectedSlot = originalSlot
}
isAttacking = false
return
}
// ---- MaceSwap ----
if (
mod.settings.maceSwap.value &&
(!shouldConsiderStunSlam) &&
bestMaceSlot !== -1 &&
bestMaceSlot !== originalSlot
) {
player.inventory.selectedSlot = bestMaceSlot
await AsyncUtil.ticks(mod.settings.swapBackTicks.value)
player.inventory.selectedSlot = originalSlot
}
isAttacking = false
})
})
I was working on a build for play almost %80 of all NBS songs published at noteblock.world so i made this basic system for it. [image: 1766533404843-system-preview.png]
You can play almost any song with that, if instruments is not enough, you can add more instruments up there[image: 1766533502360-upper-part.png]
Just be sure to be top of the dirt block and you're ready to go
[image: 1766533636359-inside-dirt.png]
Here's the list what can she play [image: 1766533702936-list.png]
Schematic Download link : EngineHub
Here's a preview while system is working Youtube
Does anyone know of a script for version 1.21.8 that would display text in the vanilla Minecraft font on the screen? I read the API script and couldn't find anything about displaying text on the screen. If anyone has one or knows of one, please make a simple script that would display “hi” on the screen.
Server List Explorer Installer for LiquidBounce NextGen
What this script does
This script acts as a lightweight installation manager for LiquidBounce NextGen, allowing you to easily install, update, run, and locate Server List Explorer directly within the client.
About Server List Explorer
Server List Explorer is a Compose Desktop application (Windows, Linux, macOS) for viewing and managing your Minecraft multiplayer server list with a reliable user-interface. For source, releases and license, see the project repository: https://github.com/SpoilerRules/server-list-explorer
️ Server List Explorer Gallery
[image: q3eO9L4.png]
[image: KnhzN9P.png]
Commands
Use these commands inside LiquidBounce NextGen after loading the script:
️ Install / Update
.sle install
Installs or updates Server List Explorer to the latest release.
Uninstall
.sle uninstall
Removes all Server List Explorer files and cleans up.
️ Run
.sle run
Launches Server List Explorer (if installed).
Path
.sle path
Prints the full installation path on your system.
Download: server-list-explorer_installer-1.0.0.zip
️ Installation
Follow the official LiquidBounce instructions for installing scripts: https://liquidbounce.net/docs/script-api/installation