Skip to content

Archtec-io/moreblocks

 
 

Repository files navigation

moreblocks and stairsplus

more blocks for minetest, a free and open source infinite world block sandbox game.

Screenshot

stairsplus adds a large variety of new shapes for registered nodes:

Screenshot

Screenshot

this is a fork of the version maintained by the minetest-mods group at https://github.com/minetest-mods/moreblocks. it provides numerous new features and bugfixes and is designed to reduce the number of registered nodes, to avoid the node ID limit.

mods in the pack

moreblocks

defines a bunch of new kinds of nodes. provides an API for creating variants of some nodes.

moreblocks_legacy_recipes

provided to keep compatibility w/ recipe changes from older versions of moreblocks. disabled by default.

stairsplus

allows the creation of 49 new shapes for registered nodes. provides an API for registering new shapes.

stairsplus_legacy

stairsplus registrations for various mods which were formerly done automatically as part of moreblocks.

stairs

overrides the stairs mod from minetest_game to use stairsplus behind the scenes, to avoid duplication of nodes.

invsaw

adds a button in unified_inventory that allows you to use the circular saw interface if you are playing creatively, or have a circular saw item in your inventory and have the right priv (interact, by default).

invsaw was taken from cheapie's invsaw mod, which itself borrowed heavily from an older version of this mod. Flux decided to just add it here because it needed to be fully rewritten to be compatible w/ their modifications to the stairsplus API.

documentation

for players

use of a decent inventory manager (e.g. unified_inventory or i3) will help you figure out how to craft various nodes.

for admins

minetest version compatibility

more blocks is only tested against up-to-date minetest. Issues arising in older versions will generally not be fixed.

legacy mode

the 2023-02-01 release of moreblocks introduces a "legacy" mode, which is on by default, and is meant to allow new servers to not commit to creating as many nodes as older versions, while not breaking anything on existing servers. See settingtypes.txt for available settings.

by defaul the 2023-02-01 release disables certain recipe overrides that were part of moreblocks 2.*. to re-enable them, set moreblocks_legacy_recipes.enabled = true.

settings

see settingtypes.txt for available settings.

dependencies

moreblocks and stairsplus do not have hard dependencies on other mods. invsaw depends on unified_inventory and stairsplus.

compatability

moreblocks currently supports resources from a number of mods and minetest_game. without these installed, some things may not be craftable, may have low-quality textures, or may not have "node sounds" registered. if available, resources will be used from bucket, default, rhotator, screwdriver, and vessels.

if the stairsplus_legacy mod is enabled, stairsplus nodes will automatically be registered for the following mods, if they are available: basic_materials, default, farming, gloopblocks, prefab, technic, and wool.

stairsplus whitelist mode

stairsplus can add a lot of nodes to the world - it comes with 49 shape variants! this can lead to big problems, because minetest can only handle 32767 different kinds of nodes at the same time. that means, you can at maximum create all possible variants for 655 distinct nodes. even fewer variations are possible if you want to use other mods at the same time.

in order to reduce the number of registered nodes, stairsplus can be run in whitelist mode, which means that only nodes listed in a certain file ($WORLDPATH/stairsplus.whitelist) will actually get registered (see note 1 below). to enable whitelist mode, set stairsplus.whitelist_mode = true in minetest.conf.

additionally stairsplus comes w/ tools to automatically create a whitelist for existing worlds, so that server operators can reap the benefits of whitelist mode without ending up w/ tons of "unknown" nodes. first, before enabling whitelist mode, run the /dump_stairsplus_registered_nodes command to generate $WORLDPATH/stairsplus_dump.json, which will be used in the next step. generating this file should be quick and painless.

the next step is not necessarily quick and painless. you will need to run a provided python script, located at moreblocks/stairsplus/scripts/create_whitelist.py. this script can only process sqlite and postgres map backends. additionally, this script only works w/ map serialization version 29, introduced with minetest 5.7.0. if you are not running 5.7.0, you will have to upgrade and migrate your database (--recompress). additionally, while the script is fairly efficient and makes use of multiple threads, it is still slow, and you will have to shut your server down for the duration of the execution of this script, or run it against a backup database.

the script requires several non-standard python modules be installed, listed in moreblocks/stairsplus/scripts/requirements.txt.

to run the script against a sqlite database, execute

python create_whitelist.py -s $WORLDPATH/map.sqlite $WORLDPATH/stairsplus_dump.json

for postgres, fill in the correct connection string for your database:

python create_whitelist.py -p "host=127.0.0.1 user=minetest password=pass dbname=minetest" $WORLDPATH/stairsplus_dump.json

both of these commands will generate $WORLDPATH/stairsplus.whitelist if successful. while running, an estimate of how much more time is needed for the script to complete will be provided.

notes:

  1. micro_*_8 variants are always registered, as they are fundamental to the functionality of the mod.

migrating schemas

stairsplus also comes with a script which can migrate blocks in minetest schemas and worldedit save files to their new names in stairsplus. without this, trying to load schemas saved while using old stairsplus may cause a server crash.

first, create the stairsplus_dump.json file mentioned in whitelist mode. next, run

python translate_schems.py $WORLDPATH/stairsplus_dump.json $WORLDPATH/schems

for mod makers

See moreblocks/API.md and stairsplus/API.md.

license

moreblocks, stairsplus, stairsplus_legacy, moreblocks_legacy_recipes

  • © 2011-2022 Hugo Locurcio and contributors under the zlib license
  • © 2023- fluxionary under the LGPL v3+
  • unless otherwise specified, textures are licensed under CC BY-SA 3.0 Unported.
  • moreblocks_copperpatina.png was created by pithydon, and is licensed under CC0 1.0 Universal.
  • stairsplus_saw_button.png CC BY-SA 3.0 Unported

invsaw

  • © 2022 cheapie and contributors under the zlib license
  • © 2023- fluxionary under the LGPL v3+

Packages

No packages published

Languages

  • Lua 92.7%
  • Python 7.2%
  • Shell 0.1%