Minetest -> Luanti (#564)

This commit is contained in:
ROllerozxa 2024-10-15 22:36:50 +02:00 committed by GitHub
parent 1432384b63
commit abc2941756
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 97 additions and 97 deletions

@ -29,7 +29,7 @@ def _make_feed(title: str, feed_url: str, items: list):
return { return {
"version": "https://jsonfeed.org/version/1", "version": "https://jsonfeed.org/version/1",
"title": title, "title": title,
"description": gettext("Welcome to the best place to find Minetest mods, games, and texture packs"), "description": gettext("Welcome to the best place to find Luanti mods, games, and texture packs"),
"home_page_url": "https://content.minetest.net/", "home_page_url": "https://content.minetest.net/",
"feed_url": feed_url, "feed_url": feed_url,
"icon": "https://content.minetest.net/favicon-128.png", "icon": "https://content.minetest.net/favicon-128.png",

@ -74,7 +74,7 @@ class AdvancedSearchForm(FlaskForm):
allow_blank=True, blank_value="", allow_blank=True, blank_value="",
get_pk=lambda a: a.id, get_label=lambda a: a.title) get_pk=lambda a: a.id, get_label=lambda a: a.title)
hide = SelectMultipleField(lazy_gettext("Hide Tags and Content Warnings"), [Optional()]) hide = SelectMultipleField(lazy_gettext("Hide Tags and Content Warnings"), [Optional()])
engine_version = QuerySelectField(lazy_gettext("Minetest Version"), engine_version = QuerySelectField(lazy_gettext("Luanti Version"),
query_factory=lambda: MinetestRelease.query.order_by(db.asc(MinetestRelease.id)), query_factory=lambda: MinetestRelease.query.order_by(db.asc(MinetestRelease.id)),
allow_blank=True, blank_value="", allow_blank=True, blank_value="",
get_pk=lambda a: a.value, get_label=lambda a: a.name) get_pk=lambda a: a.value, get_label=lambda a: a.name)

@ -59,9 +59,9 @@ class CreatePackageReleaseForm(FlaskForm):
upload_mode = RadioField(lazy_gettext("Method"), choices=[("upload", lazy_gettext("File Upload"))], default="upload") upload_mode = RadioField(lazy_gettext("Method"), choices=[("upload", lazy_gettext("File Upload"))], default="upload")
vcs_label = StringField(lazy_gettext("Git reference (ie: commit hash, branch, or tag)"), default=None) vcs_label = StringField(lazy_gettext("Git reference (ie: commit hash, branch, or tag)"), default=None)
file_upload = FileField(lazy_gettext("File Upload")) file_upload = FileField(lazy_gettext("File Upload"))
min_rel = QuerySelectField(lazy_gettext("Minimum Minetest Version"), [InputRequired()], min_rel = QuerySelectField(lazy_gettext("Minimum Luanti Version"), [InputRequired()],
query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name) query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name)
max_rel = QuerySelectField(lazy_gettext("Maximum Minetest Version"), [InputRequired()], max_rel = QuerySelectField(lazy_gettext("Maximum Luanti Version"), [InputRequired()],
query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name) query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name)
submit = SubmitField(lazy_gettext("Save")) submit = SubmitField(lazy_gettext("Save"))
@ -74,9 +74,9 @@ class EditPackageReleaseForm(FlaskForm):
url = StringField(lazy_gettext("URL"), [Optional()]) url = StringField(lazy_gettext("URL"), [Optional()])
task_id = StringField(lazy_gettext("Task ID"), filters = [lambda x: x or None]) task_id = StringField(lazy_gettext("Task ID"), filters = [lambda x: x or None])
approved = BooleanField(lazy_gettext("Is Approved")) approved = BooleanField(lazy_gettext("Is Approved"))
min_rel = QuerySelectField(lazy_gettext("Minimum Minetest Version"), [InputRequired()], min_rel = QuerySelectField(lazy_gettext("Minimum Luanti Version"), [InputRequired()],
query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name) query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name)
max_rel = QuerySelectField(lazy_gettext("Maximum Minetest Version"), [InputRequired()], max_rel = QuerySelectField(lazy_gettext("Maximum Luanti Version"), [InputRequired()],
query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name) query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name)
submit = SubmitField(lazy_gettext("Save")) submit = SubmitField(lazy_gettext("Save"))
@ -214,10 +214,10 @@ def edit_release(package, id):
class BulkReleaseForm(FlaskForm): class BulkReleaseForm(FlaskForm):
set_min = BooleanField(lazy_gettext("Set Min")) set_min = BooleanField(lazy_gettext("Set Min"))
min_rel = QuerySelectField(lazy_gettext("Minimum Minetest Version"), [InputRequired()], min_rel = QuerySelectField(lazy_gettext("Minimum Luanti Version"), [InputRequired()],
query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name) query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name)
set_max = BooleanField(lazy_gettext("Set Max")) set_max = BooleanField(lazy_gettext("Set Max"))
max_rel = QuerySelectField(lazy_gettext("Maximum Minetest Version"), [InputRequired()], max_rel = QuerySelectField(lazy_gettext("Maximum Luanti Version"), [InputRequired()],
query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name) query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name)
only_change_none = BooleanField(lazy_gettext("Only change values previously set as none")) only_change_none = BooleanField(lazy_gettext("Only change values previously set as none"))
submit = SubmitField(lazy_gettext("Update")) submit = SubmitField(lazy_gettext("Update"))

@ -25,13 +25,13 @@ poor user experience, especially for first-time users.
ContentDB isn't just about supporting the in-game content downloader; it's common for technical users to find ContentDB isn't just about supporting the in-game content downloader; it's common for technical users to find
and review packages using the ContentDB website, but install using Git rather than the in-game installer. and review packages using the ContentDB website, but install using Git rather than the in-game installer.
**ContentDB's purpose is to be a well-formatted source of information about mods, games, **ContentDB's purpose is to be a well-formatted source of information about mods, games,
and texture packs for Minetest**. and texture packs for Luanti**.
## How do I learn how to make mods and games for Minetest? ## How do I learn how to make mods and games for Luanti?
You should read You should read
[the official Minetest Modding Book](https://rubenwardy.com/minetest_modding_book/) [the official Luanti Modding Book](https://rubenwardy.com/minetest_modding_book/)
for a guide to making mods and games using Minetest. for a guide to making mods and games using Luanti.
<h2 id="donate">How can I support / donate to ContentDB?</h2> <h2 id="donate">How can I support / donate to ContentDB?</h2>
@ -45,5 +45,5 @@ For more information about the cost of ContentDB and what rubenwardy does, see h
## Sponsorships ## Sponsorships
Minetest and ContentDB are sponsored by <a href="https://sentry.io/" rel="nofollow">sentry.io</a>. Luanti and ContentDB are sponsored by <a href="https://sentry.io/" rel="nofollow">sentry.io</a>.
This provides us with improved error logging and performance insights. This provides us with improved error logging and performance insights.

@ -3,7 +3,7 @@ title: API
## Resources ## Resources
* [How the Minetest client uses the API](https://github.com/minetest/contentdb/blob/master/docs/minetest_client.md) * [How the Luanti client uses the API](https://github.com/minetest/contentdb/blob/master/docs/minetest_client.md)
## Responses and Error Handling ## Responses and Error Handling
@ -67,7 +67,7 @@ Tokens can be attained by visiting [Settings > API Tokens](/user/tokens/).
* DELETE `/api/delete-token/`: Deletes the currently used token. * DELETE `/api/delete-token/`: Deletes the currently used token.
```bash ```bash
# Logout # Logout
curl -X DELETE https://content.minetest.net/api/delete-token/ \ curl -X DELETE https://content.minetest.net/api/delete-token/ \
-H "Authorization: Bearer YOURTOKEN" -H "Authorization: Bearer YOURTOKEN"
``` ```
@ -99,13 +99,13 @@ curl -X DELETE https://content.minetest.net/api/delete-token/ \
* `video_url`: URL to a video. * `video_url`: URL to a video.
* `donate_url`: URL to a donation page. * `donate_url`: URL to a donation page.
* `translation_url`: URL to send users interested in translating your package. * `translation_url`: URL to send users interested in translating your package.
* `game_support`: Array of game support information objects. Not currently documented, * `game_support`: Array of game support information objects. Not currently documented,
* Returns a JSON object with: * Returns a JSON object with:
* `success` * `success`
* `package`: updated package * `package`: updated package
* `was_modified`: bool, whether anything changed * `was_modified`: bool, whether anything changed
* GET `/api/packages/<username>/<name>/for-client/` * GET `/api/packages/<username>/<name>/for-client/`
* Similar to the read endpoint, but optimised for the Minetest client * Similar to the read endpoint, but optimised for the Luanti client
* `long_description` is given as a hypertext object, see `/hypertext/` below. * `long_description` is given as a hypertext object, see `/hypertext/` below.
* `info_hypertext` is the info sidebar as a hypertext object. * `info_hypertext` is the info sidebar as a hypertext object.
* Query arguments * Query arguments
@ -114,7 +114,7 @@ curl -X DELETE https://content.minetest.net/api/delete-token/ \
* `protocol_version`: Optional, used to get the correct release. * `protocol_version`: Optional, used to get the correct release.
* `engine_version`: Optional, used to get the correct release. Ex: `5.3.0`. * `engine_version`: Optional, used to get the correct release. Ex: `5.3.0`.
* GET `/api/packages/<author>/<name>/hypertext/` * GET `/api/packages/<author>/<name>/hypertext/`
* Converts the long description to [Minetest Markup Language](https://github.com/minetest/minetest/blob/master/doc/lua_api.md#markup-language) * Converts the long description to [Luanti Markup Language](https://github.com/minetest/minetest/blob/master/doc/lua_api.md#markup-language)
to be used in a `hypertext` formspec element. to be used in a `hypertext` formspec element.
* Query arguments: * Query arguments:
* `formspec_version`: Required, maximum supported formspec version. * `formspec_version`: Required, maximum supported formspec version.
@ -202,8 +202,8 @@ Filter query parameters:
* `license`: Filter by [license name](#licenses). Multiple licenses are OR-ed together, ie: `&license=MIT&license=LGPL-2.1-only` * `license`: Filter by [license name](#licenses). Multiple licenses are OR-ed together, ie: `&license=MIT&license=LGPL-2.1-only`
* `game`: Filter by [Game Support](/help/game_support/), ex: `Warr1024/nodecore`. (experimental, doesn't show items that support every game currently). * `game`: Filter by [Game Support](/help/game_support/), ex: `Warr1024/nodecore`. (experimental, doesn't show items that support every game currently).
* `lang`: Filter by translation support, eg: `en`/`de`/`ja`/`zh_TW`. * `lang`: Filter by translation support, eg: `en`/`de`/`ja`/`zh_TW`.
* `protocol_version`: Only show packages supported by this Minetest protocol version. * `protocol_version`: Only show packages supported by this Luanti protocol version.
* `engine_version`: Only show packages supported by this Minetest engine version, eg: `5.3.0`. * `engine_version`: Only show packages supported by this Luanti engine version, eg: `5.3.0`.
Sorting query parameters: Sorting query parameters:
@ -216,7 +216,7 @@ Format query parameters:
* `limit`: Return at most `limit` packages. * `limit`: Return at most `limit` packages.
* `fmt`: How the response is formatted. * `fmt`: How the response is formatted.
* `keys`: author/name only. * `keys`: author/name only.
* `short`: stuff needed for the Minetest client. * `short`: stuff needed for the Luanti client.
* `vcs`: `short` but with `repo`. * `vcs`: `short` but with `repo`.
@ -236,8 +236,8 @@ Format query parameters:
* `url`: download URL * `url`: download URL
* `commit`: commit hash or null * `commit`: commit hash or null
* `downloads`: number of downloads * `downloads`: number of downloads
* `min_minetest_version`: dict or null, minimum supported minetest version (inclusive). * `min_minetest_version`: dict or null, minimum supported Luanti version (inclusive).
* `max_minetest_version`: dict or null, minimum supported minetest version (inclusive). * `max_minetest_version`: dict or null, minimum supported Luanti version (inclusive).
* `size`: size of zip file, in bytes. * `size`: size of zip file, in bytes.
* `package` * `package`
* `author`: author username * `author`: author username
@ -246,8 +246,8 @@ Format query parameters:
* GET `/api/updates/` (Look-up table) * GET `/api/updates/` (Look-up table)
* Returns a look-up table from package key (`author/name`) to latest release id * Returns a look-up table from package key (`author/name`) to latest release id
* Query arguments * Query arguments
* `protocol_version`: Only show packages supported by this Minetest protocol version. * `protocol_version`: Only show packages supported by this Luanti protocol version.
* `engine_version`: Only show packages supported by this Minetest engine version, eg: `5.3.0`. * `engine_version`: Only show packages supported by this Luanti engine version, eg: `5.3.0`.
* GET `/api/packages/<username>/<name>/releases/` (List) * GET `/api/packages/<username>/<name>/releases/` (List)
* Returns array of release dictionaries, see above, but without package info. * Returns array of release dictionaries, see above, but without package info.
* GET `/api/packages/<username>/<name>/releases/<id>/` (Read) * GET `/api/packages/<username>/<name>/releases/<id>/` (Read)
@ -262,7 +262,7 @@ Format query parameters:
* For zip upload release creation: * For zip upload release creation:
* `file`: multipart file to upload, like `<input type="file" name="file">`. * `file`: multipart file to upload, like `<input type="file" name="file">`.
* `commit`: (Optional) Source Git commit hash, for informational purposes. * `commit`: (Optional) Source Git commit hash, for informational purposes.
* You can set min and max Minetest Versions [using the content's .conf file](/help/package_config/). * You can set min and max Luanti Versions [using the content's .conf file](/help/package_config/).
* DELETE `/api/packages/<username>/<name>/releases/<id>/` (Delete) * DELETE `/api/packages/<username>/<name>/releases/<id>/` (Delete)
* Requires authentication. * Requires authentication.
* Deletes release. * Deletes release.
@ -462,7 +462,7 @@ Supported query parameters:
## Collections ## Collections
* GET `/api/collections/` * GET `/api/collections/`
* Query args: * Query args:
* `author`: collection author username. * `author`: collection author username.
* `package`: collections that contain the package. * `package`: collections that contain the package.
* Returns JSON array of collection entries: * Returns JSON array of collection entries:
@ -472,7 +472,7 @@ Supported query parameters:
* `short_description` * `short_description`
* `created_at`: creation time in iso format. * `created_at`: creation time in iso format.
* `private`: whether collection is private, boolean. * `private`: whether collection is private, boolean.
* `package_count`: number of packages, integer. * `package_count`: number of packages, integer.
* GET `/api/collections/<username>/<name>/` * GET `/api/collections/<username>/<name>/`
* Returns JSON object for collection: * Returns JSON object for collection:
* `author`: author username. * `author`: author username.
@ -502,7 +502,7 @@ Supported query parameters:
### Content Warnings ### Content Warnings
* GET `/api/content_warnings/` ([View](/api/content_warnings/)) * GET `/api/content_warnings/` ([View](/api/content_warnings/))
* List of objects with * List of objects with
* `name`: technical name * `name`: technical name
* `title`: human-readable title * `title`: human-readable title
* `description`: tag description or null * `description`: tag description or null
@ -510,14 +510,14 @@ Supported query parameters:
### Licenses ### Licenses
* GET `/api/licenses/` ([View](/api/licenses/)) * GET `/api/licenses/` ([View](/api/licenses/))
* List of objects with: * List of objects with:
* `name` * `name`
* `is_foss`: whether the license is foss * `is_foss`: whether the license is foss
### Minetest Versions ### Luanti Versions
* GET `/api/minetest_versions/` ([View](/api/minetest_versions/)) * GET `/api/minetest_versions/` ([View](/api/minetest_versions/))
* List of objects with: * List of objects with:
* `name`: Version name. * `name`: Version name.
* `is_dev`: boolean, is dev version. * `is_dev`: boolean, is dev version.
* `protocol_version`: protocol version number. * `protocol_version`: protocol version number.
@ -525,7 +525,7 @@ Supported query parameters:
### Languages ### Languages
* GET `/api/languages/` ([View](/api/languages/)) * GET `/api/languages/` ([View](/api/languages/))
* List of objects with: * List of objects with:
* `id`: language code. * `id`: language code.
* `title`: native language name. * `title`: native language name.
* `has_contentdb_translation`: whether ContentDB has been translated into this language. * `has_contentdb_translation`: whether ContentDB has been translated into this language.
@ -560,7 +560,7 @@ Supported query parameters:
* Get JSON Schema of `.cdb.json`, including licenses, tags and content warnings. * Get JSON Schema of `.cdb.json`, including licenses, tags and content warnings.
* See [JSON Schema Reference](https://json-schema.org/). * See [JSON Schema Reference](https://json-schema.org/).
* POST `/api/hypertext/` * POST `/api/hypertext/`
* Converts HTML or Markdown to [Minetest Markup Language](https://github.com/minetest/minetest/blob/master/doc/lua_api.md#markup-language) * Converts HTML or Markdown to [Luanti Markup Language](https://github.com/minetest/minetest/blob/master/doc/lua_api.md#markup-language)
to be used in a `hypertext` formspec element. to be used in a `hypertext` formspec element.
* Post data: HTML or Markdown as plain text. * Post data: HTML or Markdown as plain text.
* Content-Type: `text/html` or `text/markdown`. * Content-Type: `text/html` or `text/markdown`.

@ -8,8 +8,8 @@ Expand on the title with the short description. You have a limited number
of characters, use them wisely! of characters, use them wisely!
```ini ```ini
# Bad, we know this is a mod for Minetest. Doesn't give much information other than "food" # Bad, we know this is a mod for Luanti. Doesn't give much information other than "food"
description = The food mod for Minetest description = The food mod for Luanti
# Much better, says what is actually in this mod! # Much better, says what is actually in this mod!
description = Adds soup, cakes, bakes and juices description = Adds soup, cakes, bakes and juices
``` ```
@ -20,7 +20,7 @@ A good thumbnail goes a long way to making a package more appealing. It's one of
a user sees before clicking on your package. Make sure it's possible to tell what a a user sees before clicking on your package. Make sure it's possible to tell what a
thumbnail is when it's small. thumbnail is when it's small.
For a preview of what your package will look like inside Minetest, see For a preview of what your package will look like inside Luanti, see
Edit Package > Screenshots. Edit Package > Screenshots.
## Screenshots ## Screenshots
@ -55,18 +55,18 @@ The following are redundant and should probably not be included:
* API reference (unless your mod is a library only) * API reference (unless your mod is a library only)
* Development instructions for your package (this should be in the repo's README) * Development instructions for your package (this should be in the repo's README)
* Screenshots that are already uploaded (unless you want to embed a recipe image in a specific place) * Screenshots that are already uploaded (unless you want to embed a recipe image in a specific place)
* Note: you should avoid images in the long description as they won't be visible inside Minetest, * Note: you should avoid images in the long description as they won't be visible inside Luanti,
when support for showing the long description is added. when support for showing the long description is added.
## Localize / Translate your package ## Localize / Translate your package
According to Google Play, 64% of Minetest Android users don't have English as their main language. According to Google Play, 64% of Luanti Android users don't have English as their main language.
Adding translation support to your package increases accessibility. Using content translation, you Adding translation support to your package increases accessibility. Using content translation, you
can also translate your ContentDB page. See Edit Package > Translation for more information. can also translate your ContentDB page. See Edit Package > Translation for more information.
<p> <p>
<a class="btn btn-primary me-2" href="https://rubenwardy.com/minetest_modding_book/en/quality/translations.html"> <a class="btn btn-primary me-2" href="https://rubenwardy.com/minetest_modding_book/en/quality/translations.html">
{{ _("Translation - Minetest Modding Book") }} {{ _("Translation - Luanti Modding Book") }}
</a> </a>
<a class="btn btn-primary" href="https://api.minetest.net/translations/#translating-content-meta"> <a class="btn btn-primary" href="https://api.minetest.net/translations/#translating-content-meta">
{{ _("Translating content meta - lua_api.md") }} {{ _("Translating content meta - lua_api.md") }}

@ -6,7 +6,7 @@ your client to use new flags.
## Flags ## Flags
Minetest allows you to specify a comma-separated list of flags to hide in the Luanti allows you to specify a comma-separated list of flags to hide in the
client: client:
``` ```
@ -17,7 +17,7 @@ A flag can be:
* `nonfree`: can be used to hide packages which do not qualify as * `nonfree`: can be used to hide packages which do not qualify as
'free software', as defined by the Free Software Foundation. 'free software', as defined by the Free Software Foundation.
* `wip`: packages marked as Work in Progress * `wip`: packages marked as Work in Progress
* `deprecated`: packages marked as Deprecated * `deprecated`: packages marked as Deprecated
* A content warning, given below. * A content warning, given below.
* `*`: hides all content warnings. * `*`: hides all content warnings.

@ -75,7 +75,7 @@ Your Name, CC BY-SA 4.0:
* [Kenney game assets](https://www.kenney.nl/assets) - everything * [Kenney game assets](https://www.kenney.nl/assets) - everything
* [Free Sound](https://freesound.org/) - sounds * [Free Sound](https://freesound.org/) - sounds
* [PolyHaven](https://polyhaven.com/) - 3d models and textures. * [PolyHaven](https://polyhaven.com/) - 3d models and textures.
* Other Minetest mods/games * Other Luanti mods/games
Don't assume the author has correctly licensed their work. Don't assume the author has correctly licensed their work.
Make sure they have clearly indicated the source in a list [like above](#list-the-sources-of-your-media). Make sure they have clearly indicated the source in a list [like above](#list-the-sources-of-your-media).

@ -48,11 +48,11 @@ There are a number of methods:
* [Webhooks](/help/release_webhooks/): you can configure your Git host to send a webhook to ContentDB, and create an update immediately. * [Webhooks](/help/release_webhooks/): you can configure your Git host to send a webhook to ContentDB, and create an update immediately.
* the [API](/help/api/): This is especially powerful when combined with CI/CD and other API endpoints. * the [API](/help/api/): This is especially powerful when combined with CI/CD and other API endpoints.
### How do I learn how to make mods and games for Minetest? ### How do I learn how to make mods and games for Luanti?
You should read You should read
[the official Minetest Modding Book](https://rubenwardy.com/minetest_modding_book/) [the official Luanti Modding Book](https://rubenwardy.com/minetest_modding_book/)
for a guide to making mods and games using Minetest. for a guide to making mods and games using Luanti.
### How do I install something from here? ### How do I install something from here?

@ -7,10 +7,10 @@ title: Featured Packages
## What are Featured Packages? ## What are Featured Packages?
Featured Packages are shown at the top of the ContentDB homepage. In the future, Featured Packages are shown at the top of the ContentDB homepage. In the future,
featured packages may be shown inside the Minetest client. featured packages may be shown inside the Luanti client.
The purpose is to promote content that demonstrates a high quality of what is The purpose is to promote content that demonstrates a high quality of what is
possible in Minetest. The selection should be varied, and should vary over time. possible in Luanti. The selection should be varied, and should vary over time.
The featured content should be content that we are comfortable recommending to The featured content should be content that we are comfortable recommending to
a first time player. a first time player.
@ -47,7 +47,7 @@ other packages to be featured, or for another reason.
* MUST: Be 100% free and open source (as marked as Free on ContentDB). * MUST: Be 100% free and open source (as marked as Free on ContentDB).
* MUST: Work out-of-the-box (no weird setup or settings required). * MUST: Work out-of-the-box (no weird setup or settings required).
* MUST: Be compatible with the latest stable Minetest release. * MUST: Be compatible with the latest stable Luanti release.
* SHOULD: Use public source control (such as Git). * SHOULD: Use public source control (such as Git).
* SHOULD: Have at least 3 reviews, and be largely positive. * SHOULD: Have at least 3 reviews, and be largely positive.
@ -94,7 +94,7 @@ is available.
### Usability ### Usability
* MUST: Unsupported mapgens are disabled in game.conf. * MUST: Unsupported mapgens are disabled in game.conf.
* SHOULD: Passes the Beginner Test: A newbie to the game (but not Minetest) wouldn't get completely * SHOULD: Passes the Beginner Test: A newbie to the game (but not Luanti) wouldn't get completely
stuck within the first 5 minutes of playing. stuck within the first 5 minutes of playing.
* SHOULD: Have good documentation. This may include one or more of: * SHOULD: Have good documentation. This may include one or more of:
* A craftguide, or other in-game learning system * A craftguide, or other in-game learning system

@ -17,7 +17,7 @@ You can use `unsupported_games` to specify games that your package doesn't work
with, which is useful for overriding ContentDB's automatic detection. with, which is useful for overriding ContentDB's automatic detection.
Both of these are comma-separated lists of game technical ids. Any `_game` Both of these are comma-separated lists of game technical ids. Any `_game`
suffixes are ignored, just like in Minetest. suffixes are ignored, just like in Luanti.
supported_games = minetest_game, repixture supported_games = minetest_game, repixture
unsupported_games = lordofthetest, nodecore, whynot unsupported_games = lordofthetest, nodecore, whynot

@ -1,5 +1,5 @@
title: How to install mods, games, and texture packs title: How to install mods, games, and texture packs
description: A guide to installing mods, games, and texture packs in Minetest. description: A guide to installing mods, games, and texture packs in Luanti.
## Installing from the main menu (recommended) ## Installing from the main menu (recommended)
@ -7,8 +7,8 @@ description: A guide to installing mods, games, and texture packs in Minetest.
1. Open the mainmenu 1. Open the mainmenu
2. Go to the Content tab and click "Browse online content". 2. Go to the Content tab and click "Browse online content".
If you don't see this, then you need to update Minetest to v5. If you don't see this, then you need to update Luanti to v5.
3. Search for the package you want to install, and click "Install". 3. Search for the package you want to install, and click "Install".
4. When installing a mod, you may be shown a dialog about dependencies here. 4. When installing a mod, you may be shown a dialog about dependencies here.
Make sure the base game dropdown box is correct, and then click "Install". Make sure the base game dropdown box is correct, and then click "Install".
@ -16,7 +16,7 @@ description: A guide to installing mods, games, and texture packs in Minetest.
<div class="col-md-6"> <div class="col-md-6">
<figure> <figure>
<a href="/static/installing_content_tab.png"> <a href="/static/installing_content_tab.png">
<img class="w-100" src="/static/installing_content_tab.png" alt="Screenshot of the content tab in minetest"> <img class="w-100" src="/static/installing_content_tab.png" alt="Screenshot of the content tab in Luanti">
</a> </a>
<figcaption class="text-muted ps-1"> <figcaption class="text-muted ps-1">
1. Click Browser Online Content in the content tab. 1. Click Browser Online Content in the content tab.
@ -26,7 +26,7 @@ description: A guide to installing mods, games, and texture packs in Minetest.
<div class="col-md-6"> <div class="col-md-6">
<figure> <figure>
<a href="/static/installing_cdb_dialog.png"> <a href="/static/installing_cdb_dialog.png">
<img class="w-100" src="/static/installing_cdb_dialog.png" alt="Screenshot of the content tab in minetest"> <img class="w-100" src="/static/installing_cdb_dialog.png" alt="Screenshot of the content tab in Luanti">
</a> </a>
<figcaption class="text-muted ps-1"> <figcaption class="text-muted ps-1">
2. Search for the package and click "Install". 2. Search for the package and click "Install".
@ -38,7 +38,7 @@ description: A guide to installing mods, games, and texture packs in Minetest.
Troubleshooting: Troubleshooting:
* I can't find it in the ContentDB dialog (Browse online content) * I can't find it in the ContentDB dialog (Browse online content)
* Make sure that you're on the latest version of Minetest. * Make sure that you're on the latest version of Luanti.
* Are you using Android? Packages with content warnings are hidden by default on android, * Are you using Android? Packages with content warnings are hidden by default on android,
you can show them by removing `android_default` from the `contentdb_flag_blacklist` setting. you can show them by removing `android_default` from the `contentdb_flag_blacklist` setting.
* Does the webpage show "Non-free" warnings? Non-free content is hidden by default from all clients, * Does the webpage show "Non-free" warnings? Non-free content is hidden by default from all clients,
@ -51,14 +51,14 @@ Troubleshooting:
1. Mods: Enable the content using "Select Mods" when selecting a world. 1. Mods: Enable the content using "Select Mods" when selecting a world.
2. Games: choose a game when making a world. 2. Games: choose a game when making a world.
3. Texture packs: Content > Select pack > Click enable. 3. Texture packs: Content > Select pack > Click enable.
<div class="row mt-5"> <div class="row mt-5">
<div class="col-md-6"> <div class="col-md-6">
<figure> <figure>
<a href="/static/installing_select_mods.png"> <a href="/static/installing_select_mods.png">
<img class="w-100" src="/static/installing_select_mods.png" alt="Screenshot of Select Mods in Minetest"> <img class="w-100" src="/static/installing_select_mods.png" alt="Screenshot of Select Mods in Luanti">
</a> </a>
<figcaption class="text-muted ps-1"> <figcaption class="text-muted ps-1">
Enable mods using the Select Mods dialog. Enable mods using the Select Mods dialog.
@ -76,7 +76,7 @@ Troubleshooting:
3. Find the user data directory. 3. Find the user data directory.
In 5.4.0 and above, you can click "Open user data directory" in the Credits tab. In 5.4.0 and above, you can click "Open user data directory" in the Credits tab.
Otherwise: Otherwise:
* Windows: whereever you extracted or installed Minetest to. * Windows: wherever you extracted or installed Luanti to.
* Linux: usually `~/.minetest/` * Linux: usually `~/.minetest/`
4. Open or create the folder for the type of content (`mods`, `games`, or `textures`) 4. Open or create the folder for the type of content (`mods`, `games`, or `textures`)
5. Git clone there 5. Git clone there

@ -13,7 +13,7 @@ and they will be subject to limited promotion.
**ContentDB does not allow certain non-free licenses, and will limit the promotion **ContentDB does not allow certain non-free licenses, and will limit the promotion
of packages with non-free licenses.** of packages with non-free licenses.**
Minetest is free and open source software, and is only as big as it is now Luanti is free and open source software, and is only as big as it is now
because of this. It's pretty amazing you can take nearly any published mod and modify it because of this. It's pretty amazing you can take nearly any published mod and modify it
to how you like - add some features, maybe fix some bugs - and then share those to how you like - add some features, maybe fix some bugs - and then share those
modifications without the worry of legal issues. The project, itself, relies on open modifications without the worry of legal issues. The project, itself, relies on open
@ -24,9 +24,9 @@ If you have played nearly any game with a large modding scene, you will find
that most mods are legally ambiguous. A lot of them don't even provide the that most mods are legally ambiguous. A lot of them don't even provide the
source code to allow you to bug fix or extend as you need. source code to allow you to bug fix or extend as you need.
Limiting the promotion of problematic licenses helps Minetest avoid ending up in Limiting the promotion of problematic licenses helps Luanti avoid ending up in
such a state. Licenses that prohibit redistribution or modification are such a state. Licenses that prohibit redistribution or modification are
completely banned from ContentDB and the Minetest forums. Other non-free licenses completely banned from ContentDB and the Luanti forums. Other non-free licenses
will be subject to limited promotion - they won't be shown by default in will be subject to limited promotion - they won't be shown by default in
the client. the client.
@ -37,7 +37,7 @@ you spread it.
## What's so bad about licenses that forbid commercial use? ## What's so bad about licenses that forbid commercial use?
Please read [reasons not to use a Creative Commons -NC license](https://freedomdefined.org/Licenses/NC). Please read [reasons not to use a Creative Commons -NC license](https://freedomdefined.org/Licenses/NC).
Here's a quick summary related to Minetest content: Here's a quick summary related to Luanti content:
1. They make your work incompatible with a growing body of free content, even if 1. They make your work incompatible with a growing body of free content, even if
you do want to allow derivative works or combinations. you do want to allow derivative works or combinations.
@ -68,7 +68,7 @@ Users can opt in to showing non-free software, if they wish:
The [`platform_default` flag](/help/content_flags/) is used to control what content The [`platform_default` flag](/help/content_flags/) is used to control what content
each platforms shows. It doesn't hide anything on Desktop, but hides all mature each platforms shows. It doesn't hide anything on Desktop, but hides all mature
content on Android. You may wish to remove all text from that setting completely, content on Android. You may wish to remove all text from that setting completely,
leaving it blank. See [Content Warnings](/help/content_flags/#content-warnings) leaving it blank. See [Content Warnings](/help/content_flags/#content-warnings)
for information on mature content. for information on mature content.

@ -42,8 +42,8 @@ ContentDB understands the following information:
* `description` - A short description to show in the client. * `description` - A short description to show in the client.
* `depends` - Comma-separated hard dependencies. * `depends` - Comma-separated hard dependencies.
* `optional_depends` - Comma-separated soft dependencies. * `optional_depends` - Comma-separated soft dependencies.
* `min_minetest_version` - The minimum Minetest version this runs on, see [Min and Max Minetest Versions](#min_max_versions). * `min_minetest_version` - The minimum Luanti version this runs on, see [Min and Max Luanti Versions](#min_max_versions).
* `max_minetest_version` - The maximum Minetest version this runs on, see [Min and Max Minetest Versions](#min_max_versions). * `max_minetest_version` - The maximum Luanti version this runs on, see [Min and Max Luanti Versions](#min_max_versions).
and for mods only: and for mods only:
@ -68,7 +68,7 @@ It should be a JSON dictionary with one or more of the following optional keys:
* `tags`: List of tag names, see [/api/tags/](/api/tags/). * `tags`: List of tag names, see [/api/tags/](/api/tags/).
* `content_warnings`: List of content warning names, see [/api/content_warnings/](/api/content_warnings/). * `content_warnings`: List of content warning names, see [/api/content_warnings/](/api/content_warnings/).
* `license`: A license name, see [/api/licenses/](/api/licenses/). * `license`: A license name, see [/api/licenses/](/api/licenses/).
* `media_license`: A license name. * `media_license`: A license name.
* `long_description`: Long markdown description. * `long_description`: Long markdown description.
* `repo`: Source repository (eg: Git). * `repo`: Source repository (eg: Git).
* `website`: Website URL. * `website`: Website URL.
@ -106,11 +106,11 @@ See [Git Update Detection](/help/update_config/).
You can also use [GitLab/GitHub webhooks](/help/release_webhooks/) or the [API](/help/api/) You can also use [GitLab/GitHub webhooks](/help/release_webhooks/) or the [API](/help/api/)
to create releases. to create releases.
### Min and Max Minetest Versions ### Min and Max Luanti Versions
<a name="min_max_versions" /> <a name="min_max_versions" />
When creating a release, the `.conf` file will be read to determine what Minetest When creating a release, the `.conf` file will be read to determine what Luanti
versions the release supports. If the `.conf` doesn't specify, then it is assumed versions the release supports. If the `.conf` doesn't specify, then it is assumed
that it supports all versions. that it supports all versions.

@ -20,7 +20,7 @@ The process is as follows:
3. The git host posts a webhook notification to ContentDB, using the API token assigned to it. 3. The git host posts a webhook notification to ContentDB, using the API token assigned to it.
4. ContentDB checks the API token and issues a new release. 4. ContentDB checks the API token and issues a new release.
* If multiple packages match, then only the first will have a release created. * If multiple packages match, then only the first will have a release created.
### Branch filtering ### Branch filtering
By default, "New commit" or "push" based webhooks will only work on "master"/"main" branches. By default, "New commit" or "push" based webhooks will only work on "master"/"main" branches.
@ -67,5 +67,5 @@ Tag-based webhooks are accepted on any branch.
See the [Package Configuration and Releases Guide](/help/package_config/) for See the [Package Configuration and Releases Guide](/help/package_config/) for
documentation on configuring the release creation. documentation on configuring the release creation.
From the Git repository, you can set the min/max Minetest versions, which files are included, From the Git repository, you can set the min/max Luanti versions, which files are included,
and update the package meta. and update the package meta.

@ -39,5 +39,5 @@ Clicking "Save" on "Update Settings" will mark a package as up-to-date.
See the [Package Configuration and Releases Guide](/help/package_config/) for See the [Package Configuration and Releases Guide](/help/package_config/) for
documentation on configuring the release creation. documentation on configuring the release creation.
From the Git repository, you can set the min/max Minetest versions, which files are included, From the Git repository, you can set the min/max Luanti versions, which files are included,
and update the package meta. and update the package meta.

@ -107,7 +107,7 @@ of the [Free Software Foundation](https://www.gnu.org/philosophy/free-sw.en.html
It is highly recommended that you use a Free and Open Source software (FOSS) It is highly recommended that you use a Free and Open Source software (FOSS)
license. FOSS licenses result in a sharing community and will increase the license. FOSS licenses result in a sharing community and will increase the
number of potential users your package has. Using a closed source license will number of potential users your package has. Using a closed source license will
result in your package not being shown in Minetest by default. See the help page result in your package not being shown in Luanti by default. See the help page
on [non-free licenses](/help/non_free/) for more information. on [non-free licenses](/help/non_free/) for more information.
It is recommended that you use a proper license for code with a warranty It is recommended that you use a proper license for code with a warranty

@ -56,7 +56,7 @@ Please avoid giving other personal information as we do not want it.
* Only the admin has access to the HTTP requests. * Only the admin has access to the HTTP requests.
The logs may be shared with others to aid in debugging, but care will be taken to remove any personal information. The logs may be shared with others to aid in debugging, but care will be taken to remove any personal information.
* Encrypted backups may be shared with selected Minetest staff members (moderators + core devs). * Encrypted backups may be shared with selected Luanti staff members (moderators + core devs).
The keys and the backups themselves are given to different people, The keys and the backups themselves are given to different people,
requiring at least two staff members to read a backup. requiring at least two staff members to read a backup.
* Email addresses are visible to moderators and the admin. * Email addresses are visible to moderators and the admin.

@ -171,7 +171,7 @@ async function load_data() {
const data = { const data = {
datasets: [ datasets: [
{ label: "Web / other", data: getData(json.platform_other) }, { label: "Web / other", data: getData(json.platform_other) },
{ label: "Minetest", data: getData(json.platform_minetest) }, { label: "Luanti", data: getData(json.platform_minetest) },
], ],
}; };
setup_chart(ctx, data, annotations); setup_chart(ctx, data, annotations);

@ -3,7 +3,7 @@
<ShortName>ContentDB</ShortName> <ShortName>ContentDB</ShortName>
<LongName>ContentDB</LongName> <LongName>ContentDB</LongName>
<InputEncoding>UTF-8</InputEncoding> <InputEncoding>UTF-8</InputEncoding>
<Description>Search mods, games, and textures for Minetest.</Description> <Description>Search mods, games, and textures for Luanti.</Description>
<Tags>Minetest Mod Game Subgame Search</Tags> <Tags>Luanti Minetest Mod Game Subgame Search</Tags>
<Url type="text/html" method="get" template="https://content.minetest.net/packages?q={searchTerms}"/> <Url type="text/html" method="get" template="https://content.minetest.net/packages?q={searchTerms}"/>
</OpenSearchDescription> </OpenSearchDescription>

@ -4,7 +4,7 @@
{% if version %} {% if version %}
Edit {{ version.name }} Edit {{ version.name }}
{% else %} {% else %}
New Minetest Version New Luanti Version
{% endif %} {% endif %}
{% endblock %} {% endblock %}

@ -1,13 +1,13 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block title %} {% block title %}
{{ _("Minetest Versions") }} {{ _("Luanti Versions") }}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<a class="btn btn-primary float-end" href="{{ url_for('admin.create_edit_version') }}">{{ _("New Version") }}</a> <a class="btn btn-primary float-end" href="{{ url_for('admin.create_edit_version') }}">{{ _("New Version") }}</a>
<h1>{{ _("Minetest Versions") }}</h1> <h1>{{ _("Luanti Versions") }}</h1>
<div class="list-group"> <div class="list-group">
{% for v in versions %} {% for v in versions %}

@ -5,7 +5,7 @@
{% endblock %} {% endblock %}
{% block description %} {% block description %}
{{ _("Welcome to the best place to find Minetest mods, games, and texture packs") }} {{ _("Welcome to the best place to find Luanti mods, games, and texture packs") }}
{% endblock %} {% endblock %}
{% block scriptextra %} {% block scriptextra %}

@ -103,10 +103,10 @@
<h3 class="mt-5">{{ _("Downloads by Reason") }}</h3> <h3 class="mt-5">{{ _("Downloads by Reason") }}</h3>
<ul> <ul>
<li>{{ _("<b>New Install</b>: the user clicked [Install] inside of Minetest.") }}</li> <li>{{ _("<b>New Install</b>: the user clicked [Install] inside of Luanti.") }}</li>
<li>{{ _("<b>Dependency</b>: was installed automatically to fulfill a dependency.") }}</li> <li>{{ _("<b>Dependency</b>: was installed automatically to fulfill a dependency.") }}</li>
<li>{{ _("<b>Update</b>: download was to update the package.") }}</li> <li>{{ _("<b>Update</b>: download was to update the package.") }}</li>
<li>{{ _("<b>Other / Unknown</b>: downloaded by a web browser or an outdated Minetest version (before 5.5).") }}</li> <li>{{ _("<b>Other / Unknown</b>: downloaded by a web browser or an outdated Luanti version (before 5.5).") }}</li>
</ul> </ul>
<p class="text-muted"> <p class="text-muted">
{{ _("This is a stacked area graph. For total downloads, look at the combined height.") }} {{ _("This is a stacked area graph. For total downloads, look at the combined height.") }}

@ -51,7 +51,7 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
<h3 class="mt-5">{{ _("Supported Minetest versions") }}</h3> <h3 class="mt-5">{{ _("Supported Luanti versions") }}</h3>
<div class="row"> <div class="row">
{{ render_field(form.min_rel, class_="col-sm-6") }} {{ render_field(form.min_rel, class_="col-sm-6") }}
@ -67,12 +67,12 @@
<strong> <strong>
{{ _("Are you sure your package doesn't work on versions after %(version)s?", version=last.label) }} {{ _("Are you sure your package doesn't work on versions after %(version)s?", version=last.label) }}
</strong> </strong>
{{ _("Only set the maximum version if you know that it doesn't work on newer Minetest versions.") }} {{ _("Only set the maximum version if you know that it doesn't work on newer Luanti versions.") }}
{{ _("Don't set the maximum version just because you haven't tested it on newer versions.") }} {{ _("Don't set the maximum version just because you haven't tested it on newer versions.") }}
<p> <p>
<p> <p>
{{ _("Set the minimum and maximum Minetest versions supported. {{ _("Set the minimum and maximum Luanti versions supported.
This release will be hidden to clients outside of that range. ") }} This release will be hidden to clients outside of that range. ") }}
<br /> <br />
{{ _("Leave both as None if in doubt.") }} {{ _("Leave both as None if in doubt.") }}

@ -59,7 +59,7 @@
tips on customising releases.") }} tips on customising releases.") }}
</p> </p>
<h3 class="mt-5">{{ _("3. Supported Minetest versions") }}</h3> <h3 class="mt-5">{{ _("3. Supported Luanti versions") }}</h3>
<div class="row"> <div class="row">
{{ render_field(form.min_rel, class_="col-sm-6") }} {{ render_field(form.min_rel, class_="col-sm-6") }}
@ -75,7 +75,7 @@
<strong> <strong>
{{ _("Are you sure your package doesn't work on versions after %(version)s?", version=last.label) }} {{ _("Are you sure your package doesn't work on versions after %(version)s?", version=last.label) }}
</strong> </strong>
{{ _("Only set the maximum version if you know that it doesn't work on newer Minetest versions.") }} {{ _("Only set the maximum version if you know that it doesn't work on newer Luanti versions.") }}
{{ _("Don't set the maximum version just because you haven't tested it on newer versions.") }} {{ _("Don't set the maximum version just because you haven't tested it on newer versions.") }}
<p> <p>
@ -86,7 +86,7 @@
</p> </p>
<p> <p>
{{ _("Set the minimum and maximum Minetest versions supported. {{ _("Set the minimum and maximum Luanti versions supported.
This release will be hidden to clients outside of that range. ") }} This release will be hidden to clients outside of that range. ") }}
<br> <br>
{{ _("Leave both as None if in doubt.") }} {{ _("Leave both as None if in doubt.") }}

@ -12,7 +12,7 @@
<p> <p>
{{ _("A release is a single downloadable version of your %(title)s.", title=package.type.text.lower()) }} {{ _("A release is a single downloadable version of your %(title)s.", title=package.type.text.lower()) }}
{{ _("You need to create releases even if you use a rolling release development cycle, as Minetest needs them to check for updates.") }} {{ _("You need to create releases even if you use a rolling release development cycle, as Luanti needs them to check for updates.") }}
</p> </p>
{% if package.repo %} {% if package.repo %}

@ -20,7 +20,7 @@
</p> </p>
<p> <p>
<a class="btn btn-primary me-2" href="https://rubenwardy.com/minetest_modding_book/en/quality/translations.html"> <a class="btn btn-primary me-2" href="https://rubenwardy.com/minetest_modding_book/en/quality/translations.html">
{{ _("Translation - Minetest Modding Book") }} {{ _("Translation - Luanti Modding Book") }}
</a> </a>
<a class="btn btn-primary" href="https://api.minetest.net/translations/#translating-content-meta"> <a class="btn btn-primary" href="https://api.minetest.net/translations/#translating-content-meta">
{{ _("Translating content meta - lua_api.md") }} {{ _("Translating content meta - lua_api.md") }}

@ -53,11 +53,11 @@
{% if release and (release.min_rel or release.max_rel) %} {% if release and (release.min_rel or release.max_rel) %}
<small class="count display-block"> <small class="count display-block">
{% if release.min_rel and release.max_rel %} {% if release.min_rel and release.max_rel %}
{{ _("Minetest %(min)s - %(max)s", min=release.min_rel.name, max=release.max_rel.name) }} {{ _("Luanti %(min)s - %(max)s", min=release.min_rel.name, max=release.max_rel.name) }}
{% elif release.min_rel %} {% elif release.min_rel %}
{{ _("For Minetest %(min)s and above", min=release.min_rel.name) }} {{ _("For Luanti %(min)s and above", min=release.min_rel.name) }}
{% elif release.max_rel %} {% elif release.max_rel %}
{{ _("Minetest %(max)s and below", max=release.max_rel.name) }} {{ _("Luanti %(max)s and below", max=release.max_rel.name) }}
{% endif %} {% endif %}
</small> </small>
{% endif %} {% endif %}

@ -5,7 +5,7 @@
{%- endblock %} {%- endblock %}
{% block description -%} {% block description -%}
{{ _("Help make Minetest more accessible by translating packages into other languages.") }} {{ _("Help make Luanti more accessible by translating packages into other languages.") }}
{% endblock %} {% endblock %}
{% macro render_packages(packages) %} {% macro render_packages(packages) %}

@ -7,7 +7,7 @@
{% block content %} {% block content %}
<h1>{{ self.title() }}</h1> <h1>{{ self.title() }}</h1>
<h2>{{ _("Do you have an account on the Minetest Forums?") }}</h2> <h2>{{ _("Do you have an account on the Luanti Forums?") }}</h2>
<p> <p>
{{ _("ContentDB will link your account to your forum account if you have one, but you don't need one.") }} {{ _("ContentDB will link your account to your forum account if you have one, but you don't need one.") }}