blujai831's VoxeLibre extensions
  • Lua 99.6%
  • TypeScript 0.4%
Find a file
2026-02-15 16:31:17 -08:00
bjvxlx_ameliorate_mobs Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_bronze Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_computers Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_engineering Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_instant_leaf_decay Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_lua_access Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_redstone_from_copper Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_silicon Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_sticks_from_saplings Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_text_shell Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_util Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_waystone_towers Transfer old work into repo. 2026-02-15 16:31:17 -08:00
bjvxlx_zombie_leather Transfer old work into repo. 2026-02-15 16:31:17 -08:00
.gitignore Initial commit. 2026-02-15 16:23:36 -08:00
ACCEPTABLE_USE.md Initial commit. 2026-02-15 16:23:36 -08:00
CONTACT_AND_BUG_REPORTS.md Initial commit. 2026-02-15 16:23:36 -08:00
LICENSE.md Initial commit. 2026-02-15 16:23:36 -08:00
modpack.conf Transfer old work into repo. 2026-02-15 16:31:17 -08:00
README.md Transfer old work into repo. 2026-02-15 16:31:17 -08:00

bjvxlx modpack v0.1.0: blujai831's VoxeLibre extensions

This is a modpack for Luanti. Specifically, it's for VoxeLibre.

The mods in this pack have some interdependencies, but for the most part, they can be used all together or independently (though all of them require VoxeLibre). They're grouped together as a modpack not for any thematic reason, but moreso because they come from the same author (myself), operate on the same Luanti subgame (VoxeLibre), and use a common codebase. Though, if I had to describe them as having any cohesive overall theme, I'd say that currently, they're themed mostly around programmable computers, and the groundwork necessary to make it diegetically plausible to build them in VoxeLibre.

Current mods included:

  • bjvxlx_util: Library mod for the rest of the pack.
  • bjvxlx_text_shell: Library mod for a few of the other mods.
  • bjvxlx_lua_access: Adds chat command /lua for an in-game Lua console.
  • bjvxlx_instant_leaf_decay: Orphaned leaves decay instantly.
  • bjvxlx_sticks_from_saplings: Tear apart saplings to make sticks.
  • bjvxlx_zombie_leather: Smelt rotten flesh into leather.
  • bjvxlx_redstone_from_copper: Convert between redstone and copper.
  • bjvxlx_silicon: Smelt crystals to get silicon for crafting redstone stuff.
  • bjvxlx_bronze: Copper and silicon make bronze, an iron substitute.
  • bjvxlx_engineering: Mostly a library mod. Tech-themed alt crafting system.
  • bjvxlx_computers: Essentially craftable Lua consoles with data storage.
  • bjvxlx_ameliorate_mobs: Reduces difficulty by removing some mob spawns.
  • bjvxlx_waystone_towers: Imitation of Minecraft's Towers of the Wild mod.

Installation

Clone this repository and put the resulting directory bjvxlx in [luanti dir]/mods. On Linux, [luanti dir] is probably ~/.minetest.

Specific features

bjvxlx_util

Provides facilities for bjvxlx mod init, string manip, iteration, translation, functional programming, object-oriented programming, sandboxing dynamic code, and kind-of-transparently treating a portion of a Luanti metadata or mod storage object as if it were a table. The API is documented in the source files.

bjvxlx_text_shell

Streamlines creation of somewhat persistent sessions for formspecs, particularly command-line-like formspecs. By "somewhat" persistent I mean the session will survive the player closing the formspec or even logging off and back on, but will not persist if the server restarts.

The API is documented in the source files. Good starting points are bjvxlx.text_shell.register_shell and bjvxlx.text_shell.get_session.

bjvxlx_lua_access

Type /lua <command> into chat, replacing <command> with your Lua code, to run your Lua code on the server, or type /lua with no argument for a nicer interface for doing so.

Note that unless you have privilege server, the environment in which your code is run will be sandboxed: most of the Lua standard library will be available, but (I hope) not anything that would allow access to the Luanti game state or to any server OS resources other than processing power.

Naturally, it is not possible (within reason) for the sandbox to protect against the possibility of the guest code DoS'ing the server by entering an infinite loop. That would be rude, so please don't do it.

There are two main motivations behind this mod:

  • easier mod debugging;
  • an easy basis for bjvxlx_computers.

bjvxlx_instant_leaf_decay

With this mod active, once a naturally-generated contiguous region of leaf blocks first becomes completely isolated from any log blocks, all leaf blocks in that contiguous region will decay instantaneously, rather than risk persisting midair until mined manually.

Leaf blocks are discovered via a 6-direction depth-first traversal of discrete 3D space from the point where the tree trunk was severed.

The rationale here is that I find cleaning up stray leaf blocks really tedious.

bjvxlx_sticks_from_saplings

With this mod active, a single sapling may be crafted into 3 sticks. The rationale is to provide an additional use for unneeded saplings besides as fuel, as well as a quick and realistic way to get sticks.

bjvxlx_zombie_leather

With this mod active, a single piece of rotten flesh may be smelted into a single piece of leather. The rationale is to obviate the need to kill cows.

bjvxlx_redstone_from_copper

With this mod active, a copper ingot may be crafted into four redstone, and four redstone in a square pattern may be crafted into a copper ingot.

There are two rationales here:

  • make copper less useless;
  • imply copper and redstone are one material, because it's silly they aren't.

bjvxlx_silicon

With this mod active, amethyst shards and nether quartz can both be smelted into silicon. Silicon can be used in alternative recipes for redstone components and other simple-device-like items. It comes in nuggets, ingots, and blocks, like base game metals, but cannot be used to craft armor or tools.

There are three rationales here:

  • make amethyst less useless;
  • provide a basis for bjvxlx_bronze;
  • provide a basis for bjvxlx_computers.

bjvxlx_bronze

With this mod active, a silicon nugget and a copper ingot can be crafted together to yield a bronze ingot. Bronze can be used as an alternative to iron in many recipes, including tools, armor, building blocks, and minecart tracks. It comes in nuggets, ingots, and blocks, like base game metals.

The rationale here is to provide a slightly more renewable way of obtaining what is effectively iron. In my opinion, iron is a tiny bit too rare for how essential it is. This also lends another use to copper and amethyst.

bjvxlx_engineering

Provides the "engineering table," a crafting-table-like item that accepts a separate set of recipes. An engineering table's recipes are written on blueprints, which ideally a dependent mod would, say, add to a loot table somewhere or something.

An engineering recipe requires not only up to nine consumed ingredients, but also the blueprint for the recipe, which is treated as an ingredient but not consumed, and possibly a specific tool, which is also treated as an ingredient but not consumed. The idea is that your character, who lives in whatever variety of medieval era VoxeLibre takes place in, is unfamiliar with the technology used to craft these more advanced recipes, and needs to continuously consult the blueprint during the crafting process.

bjvxlx_engineering provides only one blueprint, which is technically not a blueprint: the "engineering dossier." The dossier can be crafted together with an iron block, using ordinary crafting, to produce an engineering table. The dossier does not naturally spawn. Actual engineering recipes, as well as routes for obtaining the dossier and blueprints, are to be provided by dependent mods.

The API is documented in the source files. Of particular interest is function bjvxlx.engineering.register_blueprint.

bjvxlx_computers

Provides a usable in-game computer, which is essentially just a sandboxed Lua console plus persistent data storage.

The computer can be obtained through a long series of engineering recipes. Currently, there is no way to obtain the blueprints for these recipes in survival gameplay. A future mod will address this.

The computer's floppy disk inventory can be accessed while it's not receiving redstone power. To be useful, a computer requires at least a MineOS floppy disk (which is not even engineerable, and will in a future mod be made available in a loot table somewhere) inserted into its bootdisk slot, and redstone power input after that. To store data persistently, it must also have a regular floppy disk in at least one of its datadisk slots.

Your primary means of interfacing with MineOS is through its Lua shell. The shell API exposes the namespace os, which has the following functions:

os.disk(n): Get root table of datadisk #n. Modifications to this table will persist on the disk. The disk must be inserted and already formatted.

os.format_disk(n): Delete all data on datadisk #n and create an empty root table. The disk must already be inserted.

os.open(table, key): Opens an interface for inputting a multiline string to be saved under key in table. If key already exists in table, it must be a string, and in that case, it is loaded into the editing interface; thus, this is also a feasible way to simply view a long multiline string.

os.list(table): Returns, as multiple return values, all of the keys of the given table. This is your ls of sorts.

os.run(script): Runs the given string as Lua code.

bjvxlx_ameliorate_mobs

With this mod active, stalkers (creepers) will not spawn at all, and zombies and skeletons will not spawn above ground at night.

The rationale here is that I have always found a handful of things undesirable about these mob spawns, even in proprietary Minecraft:

  • stalkers'/creepers' griefing ability disincentivizes the building aspect of the rest of the game, and their jumpscare aspect interacts badly with the rest of the game's adventuring/exploration gameplay and chill vibes;

  • the narrative element of the dead rising at night to attack the living more-or-less introduces vestiges of a concrete predetermined setting to what's supposed to be a world wholly player-determined and up to interpretation, which I think is fine, even desirable, if it's only underground or only in certain biomes, because if its inclusion is contingent then it becomes just one more toy in the player's make-believe toybox, but if they're springing up everywhere, if they're unavoidable, then it becomes an element of the fantasy which is imposed on the player, which they are forced to imagine their world around;

  • I get that there needs to be some difficulty at night to incentivize building a shelter to stay safe during the night and a bed to skip to morning, but I think the reduced visibility at night provides enough incentive on its own and the inclusion of monsters is mostly just unnecessarily punishing, and if a player isn't intrinsically motivated to create a shelter around their bed just for aesthetic reasons, then spiders provide enough incentive for the shelter piece specifically while also being easy enough to run away from, no need to put the player in actual real danger of losing all their stuff.

bjvxlx_waystone_towers

In addition to base VoxeLibre, this mod requires PixelZone's Waystone mod.

Inspired by the discontinued Minecraft mod Towers of the Wild by idrae_ and its unofficial successors by Xpand4B and celsiusqc, bjvxlx_waystone_towers provides a semi-rare large ornate spiral tower structure which spawns in the overworld.

The tower is challenging and frankly frustrating to climb. (A gameplay redesign to ameliorate the frustration piece is probably overdue.) The entire path up the tower is lined with dangerous enemies.

At the top of the tower is a gazebo. Its gates open only at night. It's mostly safe from the enemies below. In the gazebo are a waystone, a village bell, and four chests containing waypoint warp scrolls, health potions to recover from the climb, and slow-falling potions to get down quickly and/or glide to nearby hard-to-reach peaks. Ringing the village bell will despawn all the enemies along the tower and reconfigure the spawners hidden inside the central pillar, causing them to thenceforth spawn friendly mobs instead.

This mod also changes the waypoint warp scrolls provided by the Waystone mod to not be consumed on use. I plan to make this a configurable setting in the future rather than just always doing it.