ToddLLM/luanti-complete-dataset huggingface dataset:
**Title:** Metatable Metamethods Fixes + Customization

**Description:** 

**Details:**
Were you, like me, angry that certain metatable metamethods just... Didn't work!??! Well, here's MY solution for you!

It's important that you DON'T modify the `.__metatable` parameter - as the mod requires it for indexing custom parameters

Mods you wish to be modified by this - must have `metatable_metamethods` specified in `depends` or `optional_depends` - or else this will likely load *AFTER* the mod

I modify certain functions as well as providing one, to permit the invocation of 3 metamethods:

`.__pairs(tbl)`

`.__ipairs(tbl)`

`.__len(tbl)` - with the provided `length` function (which permits any table, string, or `vector` if MT 5.5+)

Adds a new 4th metamethod:

`.__setmetatable(table, metatable)` - return `false` to prevent table metatable overwrite, return `table` for a custom `setmetatable` return. Return anything else to proceed with normal overwrite

This may hypothetically be laggier, since it's an implementation through Lua - but I personally didn't notice much lag. But then again I come with LuaJIT so who knows.

Related to https://github.com/luanti-org/luanti/issues/15133 and https://github.com/luanti-org/luanti/pull/1277


**Tags:** library
**Repository:** https://codeberg.org/TPH/metatable_metamethods
**License:** MIT
**Title:** Node Meta Manipulation

**Description:** 

**Details:**
### Description:

A mod that allows administrators with *server* privilege to examine & alter node meta data. Additionally, a pencil & key tools are provided with limited use for players to alter *infotext* & *owner* meta value.

### Licensing:

- Code: [MIT](https://github.com/AntumMT/mod-alternode/blob/master/LICENSE.txt)
- Textures: CC0

### Usage:

##### Chat commands:

- */getmeta &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;key&gt;*
	- prints the value of `key` in meta data of node at `x,y,z`.
- */setmeta &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;key&gt; &lt;new_value&gt;*
	- Sets the value of `key` in meta data of node at `x,y,z`.
- */unsetmeta &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;key&gt;*
	- Unsets the value of `key` in meta data of node at `x,y,z`.

##### Tools:

**Wand:** ![wand](https://raw.githubusercontent.com/AntumMT/mod-alternode/master/textures/alternode_wand.png)

Use the `alternode:wand` on a node to view, set, or unset meta info. Only players with the `server` privilege can use this item

- *left-click (use):* Opens formspec to retrieve & set/unset meta attributes.
- *right-click (place):* Print node coordinates, name, & some select meta info.

**Pencil:** ![pencil](https://raw.githubusercontent.com/AntumMT/mod-alternode/master/textures/alternode_pencil.png)

The `alternode:pencil` is a tool for players to set/unset the `infotext` meta value of nodes within protected/owned areas.

- *left-click (use):* Opens formspec to set/unset infotext meta attribute.

**Key:** ![key](https://raw.githubusercontent.com/AntumMT/mod-alternode/master/textures/alternode_key.png)

The `alternode:key` is a tool that will set/unset the player wielding it as owner of a node (e.g. `owner` meta attribute will be set to player's name or cleared). Only nodes within an area owned/protected by the player can owned. Any node can be unowned.

- *left-click (use):* Sets/Unsets user as owner.
- *right-click (place):* Prints owner status to chat log.

### Links:

- [Reference](https://antummt.github.io/mod-alternode/reference/latest/)
- [Changelog](http://github.com/AntumMT/mod-alternode/blob/master/changelog.txt)
- [TODO](http://github.com/AntumMT/mod-alternode/blob/master/TODO.txt)

**Tags:** server_tools, world_tools
**Repository:** https://github.com/AntumMT/mod-alternode
**License:** MIT
**Title:** Notices

**Description:** 

**Details:**
## Features
* `notify` privilege - Allows players to use the notice commands
* `/notice <msg>` - Sends a blue `[NOTICE] <msg>` in chat
* `/warn <msg>` - Sends a red `[WARNING] <msg>` in chat

**Tags:** chat, multiplayer, server_tools
**Repository:** https://github.com/LoneWolfHT/notices
**License:** MIT
**Title:** B.W Protection

**Description:** 

**Details:**
# cs_strict_api / Strict API
This is a mod of minetest that provides a table for cs_strict in cs_mt (**Maybe for another Game, Look for API down!**)

The cs_strict mod in cs_mt depends this to work, else cs_strict dont crashes, but dont protect the chat from bad people.
## API
- `strict`: Is the main table of the mod
- `strict.find_word(string)`: Find a bad word (cursed or swearing), returns true if it had
- `strict.random_word()`: Returns a random bad word
- `all`: Is a another table, containing all bad words
- `bw`: Is an another table, containing bad words (Not same as `all`)


**Tags:** library
**Repository:** https://github.com/EISHU-MT/cs_strict
**License:** MIT
**Title:** GroupLib

**Description:** 

**Details:**
# GroupLib: General Grouping API

A robust and optimized solution for all your grouping needs.


## Usage

### `grouplib.item_get(name)`

Gets the groups of an item by name.

Either returns a table or nil.

    groups = grouplib.item_get("sand")


### `grouplib.item_set(name, groups)`

Sets the groups of an item by name.

This is not the same as just plain overriding, because this doesn't replace
the entire groups table of an item, only update it with new values; if you want
to do the former then use `grouplib.item_replace`.

    grouplib.item_set("sand", {yellow = 1, crumbly = -1, magic = 9})


### `grouplib.item_replace(name, groups)`

Replaces the groups of an item by name.

The old groups are completely thrown out; if what you want to do is to update
the existing values then use `grouplib.item_set`.

    grouplib.item_replace("sand", {oddly_breakable_by_hand = 1})


### `grouplib.item_get_rating(name, ...)`

Gets the ratings of groups of an item by its name and group names.

The amount of return values will be the same as the amount of secondary
arguments passed to the function.

    one, two, three = grouplib.item_get_rating("sand", "crumbly", "falling_node", "soil")


### `grouplib.group_override(group, override)`

Bulk-overrides all items with specified group (`~= 0`) with the override table.

Values are added to a queue on call and the overrides are performed after all
mods have loaded.

Keep in mind this is basically a wrapper for `minetest.override_item`.

    grouplib.group_override("leaves", {drawtype = "firelike"})


## License

The license of the source code is MIT. See `LICENSE` file for details.

**Tags:** library
**Repository:** https://codeberg.org/rudzik8/grouplib.git
**License:** MIT
**Title:** Ascend

**Description:** 

**Details:**
Use the chat command: **/ascend** to instantly ascend vertically through rocks and other solid nodes.

Useful for quickly getting out of caves, but be careful you don't get stuck in a very high spot. There's no way to preview the destination ahead of time, so make sure you're prepared.

**2024-04-17 update:** Added short version of command. Can now use either **/ascend** or **/asc** to ascend.

**2024-03-21 update:** Improved handling of unloaded regions—nonexistent ones will now be generated.  With this I've extended the maximum allowed ceiling thickness to 1000 nodes. However, caution is advised when using very large values, since there still might be some corner cases that aren't handled well.

Features
-----------
- Maximum ceiling height defaults to 30 nodes, but can be configured from 10 to 100 nodes.
- Maximum thickness of ceiling that can be traversed still defaults to 90 nodes, but can be configured from 10 to 1000 nodes.
- *Can't* ascend if not enough room to stand at destination.
- *Can't* ascend while in water.
- However, one *can* ascend to the surface of water, if there's an air node above.
- *Can* ascend through lava, *but not* onto the lava's surface.
- *Can't* ascend through doors or gates.
- Optionally can ascend through trees and bushes, but defaults to not allowed.
- If the scan up reaches unloaded nodes, it will attempt to load them. It's then necessary to reissue the /ascend command, which *may* or *may not* complete.
- Requires "ascend" privilege to use. (Granted automatically in singleplayer. In multiplayer use: */grant &lt;player&gt; ascend.*)


Configuration
-------------

- ascend_ceiling_height: default = 30, but ranges from 10 to 100 nodes.
- ascend_ceiling_thickness: default = 90, but ranges from 10 to 1000 nodes.
- ascend_thru_trees: default = false.

**Tags:** chat, transport
**Repository:** https://github.com/kestral246/ascend
**License:** MIT
**Title:** Send Stack

**Description:** 

**Details:**
# Send Stack
Adds a command to Minetest which enables you to send the stack you are currently holding to another player's inventory.

## Usage
`/sendstack <playername>`

Takes the item you are holding and sends it to `playername`, setting the stack you are holding to what couldn't be added to the player's inventory (none if all was added, partial stack if partially added and a full stack if none was added)

## Privs
By default the command will require the `interact` priv. On lines 1 to 4 you can enable or disable and set an additional privilage (such as ban) to also be required. 

**Tags:** multiplayer, world_tools
**Repository:** https://github.com/ChimneySwift/sendstack
**License:** MIT
**Title:** Cellular Automata

**Description:** 

**Details:**
An implementation of 3D Cellular Automata for Minetest. Resembles [Flux](https://forum.minetest.net/viewtopic.php?f=15&t=20498).

Part of the Cellestial Series: `cellestial`, [`cellestiall`](https://content.luanti.org/packages/LMD/cellestiall/) and [`cellestial_game`](https://content.luanti.org/packages/LMD/cellestial_game)

Also see ["Candidates for the Game of Life in Three Dimensions" by Carter Bays](http://wpmedia.wolfram.com/uploads/sites/13/2018/02/01-3-1.pdf)

## Features

* High Performance
* Intuitive Interfaces
* Powerful API

## Instructions

Available in-game through `/cells help`.

## Configuration

Below is the default configuration, located under `<worldpath>/config/cellestial.json`. It is mostly self-explaining. A few notes:

* `r`, `g`, `b`: Red, green and blue color components
* `max_steps`: Maximum steps per item use / second
* `speedup`: Decrease processing time, but cache more
* `mapcache`: Cache the nodes of the area
* `arena_defaults`: Values used for arenas if not provided

```json
{
  "colors": {
    "cell": {
      "edge": {
        "r": 0,
        "g": 128,
        "b": 0
      },
      "fill": {
        "r": 0,
        "g": 255,
        "b": 0
      }
    },
    "border": {
      "edge": {
        "r": 51,
        "g": 51,
        "b": 51
      },
      "fill": {
        "r": 77,
        "g": 77,
        "b": 77
      }
    }
  },
  "max_steps": 10,
  "request_duration": 30,
  "creative": true,
  "place_inside_player": false,
  "speedup": true,
  "mapcache": false,
  "arena_defaults": {
    "name": "unnamed",
    "dimension": {"x": 80, "y": 80, "z": 80},
    "search_origin": {"x": 0, "y": 0, "z": 0},
    "steps": 1,
    "threshold": 0.5
  }
}
```


**Tags:** education, puzzle, simulation
**Repository:** https://github.com/appgurueu/cellestial
**License:** MIT