List of hardcoded features

From Minetest Developer Wiki
Revision as of 13:34, 20 March 2021 by Wuzzy (talk | contribs) (Change category to core)
Jump to navigation Jump to search

This is a list of hardcoded features in Minetest. A hardcoded feature is a feature with a certain functionality that behaves always in a certain fixed way that cannot be customized. Minetest in general wants to allow its mods and games to customize pretty much everything, so in the long run, any hardcoded feature should be made customizable. Note not all hardoded features are created equal, some are less annoying than others, while for some features it really doesn't matter that they are hardcoded. Also, this list should be more seen as a documentation, not as a feature request to un-hardcode everything in this list.

Gameplay

Health and damage

  • The fact that you take fall damage at all (PR: #11080)
  • The fall damage calculation formula (issue: #10348)
    • You can use minetest.register_on_player_hpchange, but if you try to remove fall damage completely, players will still experience the “red damage flash” because fall damage is calculated client-wise
  • Nodes that deal direct damage do so always once per second (with damage_per_second); no other time interval is possible
  • How breath works in general (PR: #8042)
  • You lose breath or take drowning damage every 2 seconds, and you regain breath every 0.5 seconds

Items

  • The formula that determines how fast your tool will dig
    • You can change the parameters, but not the formula itself
  • The formula that determines how much your tool will be worn
    • You can change the parameters, but not the formula itself
  • All items can point (issue: #6651)
    • range=0 does not work as you can point when you're inside a node
  • liquid_viscosity affects two things: How fast the liquid spreads and how slow players move through it (PR: #10810)

Players

  • All players can change their camera mode “for free”

Graphics

  • When you take damage, the screen flashes red
  • When you take damage, the screen shakes
  • Sunlight has a subtle yellowish tint
  • Darkness has a subtle blueish tint
  • The light curves
    • This means how bright each individual light level will appear. Probably tricky to customize since the client also has a huge say in this
  • The color of light
    • This does not refer to colored lamps, but to the color of light globally. Imagine a game in which the sun is red, tinting the world in red, or a game in which all lamps emit green light for some reason
  • The 3D version of an item inventory image (fixed rotation, fixed param2)
    • place_param2 is coupled to placement, if you only want to change the inventory image, you're out of luck
    • inventory_image only supports 2D images

HUD

  • Chat cannot be moved or hidden (by mods)
  • Status message (for messages like “Fly mode enabled”) cannot be moved or hidden (by mods)

Formspecs

  • No or incomplete styling/theming/customization for (#8744):
    • Scrollbars
    • Drop-down lists
    • Highlight color of selected text
    • Text shadow
    • (possibly others)

Game menu (in main menu)

  • All games have checkboxes for damage, Creative Mode and server hosting forced upon them (issue: #8927)

Controls

  • Mouse wheel up and mouse wheel down are hard-bound to hotbar next/previous slot selection, and cannot be rebound to a different action. (But you can bind keys for this action, in addition to the scroll wheel)

Hardcoded things that are probably OK

  • The Esc is the pause/exit key
  • The debug screen