This file explains information to document the code of Repixture and information for people wanting to develop or mod Repixture.
Note the focus of Repixture is not to be a “base for modding”, but to be a standalone game in its own right. That having said, Repixture also doesn’t actively oppose modding.
Repixture wants to be translated in many languages. As a translator, just go to https://translate.codeberg.org/projects/repixture/ and start contributing! All you need is an account on Codeberg.org.
Usually, all translations will be included in the next release.
From the developer’s point of view, maintaining the translations requires some extra
work. See DEV_TRANSLATION_WORKFLOW.md
for details.
There are some hidden testing/debug settings. Add them into minetest.conf
to activate:
rp_testing_enable=true
: Enables Testing Mode. Performs some simple benchmarks on startup (See the log file / console) and also enables testing the validity of crafting recipes, gold trades, and more (printing errors if any errors were found). This also enables a few helper chat commands (see/help
).hunger_debug=true
: Enables Hunger Debug. This displays the internal hunger values on the screen.
To disable the settings, set them to false
again.
There are some simple but important rules when it comes to coding or modding for Repixture. They must be followed at all times:
- Crafting recipes (except cooking and fuel recipes) MUST be registered through
rp_crafting
. - Modifying player physics (like running speed) MUST be done via
rp_player_effects
. Callingset_physics_override
directly is FORBIDDEN. - If you attach or detach the player, you MUST update
rp_player.player_attached
. - Modifying HUD flags (like
"wielditem"
) MUST be done viarp_hud
. Callinghud_set_flags
directly is FORBIDDEN. - Changing the sky (
set_sky
,set_sun
,set_moon
,set_clouds
,set_stars
) outside of therp_sky
mod is FORBIDDEN.
Some mods provide APIs to interact with. Check out the respective mod directories for a
file named API.md
.
Mods with documented APIs:
player_api
: Player model handling, model animation, textures (see alsorp_player
)rp_armor
: Armor information and registrationrp_achievements
: Add and trigger achievementsrp_bed
: Get, set and unset (re)spawn position; query bed inforp_crafting
: Add crafting recipesrp_death_messages
: Customize death messagesrp_default
: Sapling helpers, biome informationrp_door
: Add doorsrp_drop_items_on_die
: You only need this mod if you added an inventory list to the player and you want its contents to be dropped on death.rp_farming
: Add farmable plantsrp_formspec
: Build formspecs and inventory pagesrp_goodies
: Fill container nodes with random lootrp_hud
: Allow and forbid HUD flags hererp_hunger
: Get and set hungerrp_item_drop
: Add a function to simulate an item droprp_itemshow
: Needed when your item needs a custom appearance in the item frame / item showcaserp_jewels
: Register jeweled tools, and morerp_localize
: Localize numbersrp_locks
: Get info about lockable nodesrp_mobs
: Add mobs (animals, monsters)rp_moon
: Get moon phaserp_music
: Add or remove tracks; start/stop/toggle a music playerrp_paint
: Add paintable nodes; set/remove paint of noderp_partialblocks
: Register partial blocks (slabs, stairs)rp_pathfinder
: Advanced pathfindingrp_player
: Same asplayer_api
, but with extra features specific to Repixture. Only use this if you need those extra features or for internal Repixture development. Otherwise, useplayer_api
.rp_player_effects
: Add player effects (required if you want to modify player physics)rp_sounds
: Node soundsrp_spyglass
: Spyglassrp_util
: Helper functions for Repixturerp_tnt
: Ignite and blow up TNT, also spawn TNT-less explosionsrp_wielditem
: Custom rotation of item in hand in 3rd person view (in case it looks awkward)tt
: Custom tooltips
Beware: Calling functions that are declared experimental, or not documented are NOT guaranteed to be stable in future versions, so use them with care.
A reference of all groups used in this game can be found in DEV_GROUPS.md
.
The source files for the player manual are contained in manual_generator
.
The actual manual is generated from these files.
See the README.md file inside this directory for details.