Changelog
Note that not all changes made to the code between releases are listed here. Fixes to bugs that were introduced after the previous release, small internal changes, code style fixes, and changes of the like are not listed. If you want a list of every change made between releases see the commit log.
If you want to see older versions, please go to this page.
5.2.0 → 5.3.0
To be released in June 2020.
Client / Audiovisuals
- Fix HUD scaling (mainly for Android) (MoNTE48)
- Fix incorrect entity light calculations (SmallJoker, sfan5)
- Add chat_log_level and chat_font_size setting (SmallJoker)
- New default sky color gradient (TheTermos)
- Change default keys for camera/minimap to C/V (Wuzzy)
- Fix breath bar scaling (ANAND)
- Fix bone position changes breaking animations (theviper121)
- No grey screen when C++ errors are thrown by Lua (pauloue)
- Android: add OpenGL ES 2 support (MoNTE48)
- Reuse object_shader for "wielditem" and "item" entities (dcbrwn)
- Shaders: Fix OpenGL < 4.3 compatiblity (SmallJoker)
- Formspec: properly display altered inventory lists (DS)
- Android: Various input-related fixes (MoNTE48)
- Android: Android Studio support, improve everything (MoNTE48)
- Remove sound menu and show proper msgs if sound is off (Wuzzy)
- Highlight hovered formspec elements when pressing F5, for testing (SmallJoker)
- Implement DPI scaling for Windows (sfan5)
- Allow relative directories for `screenshot_path` (Calinou)
- Add tone mapping for entities (dcbrwn)
GUI (Formspec)
- Add buttons to ContentDB in game bar and configure world (rubenwardy)
- Add universal style selector `*` (v-rob)
- Add 'content_offset' and 'padding' style properties for buttons (Df458)
- Add scroll_container element (DS)
- CSS-like state-selection for style elements (Df458)
World / Server / Environment
- Fix liquids refusing to flow in X+ or Z+ in some cases (sfan5)
- Rework functionality of leveled nodes (Wuzzy)
- New Mapgen V7 floatland implementation (paramat)
- Server: Better emerge multithreading, various fixes (sfan5)
- Correctly indicate failure in /spawnentity (sfan5)
- Add PostgreSQL authentication backend (nerzhul)
- Add chat command "/revokeme (priv)" (Panquesito7)
- Optimize get_objects_inside_radius calls (nerzhul)
- Fix world migration to PostgreSQL (sfan5)
- Collision detection fixes and follow-up bug fixes (TheTermos)
- Many many networking improvements (sfan5)
Script API / Modding
- Add LevelDB auth database (luk3yx)
- Add vector functions useful for working with rotations (NetherEran)
- Add minetest.is_creative_enabled (Wuzzy)
- Add on_authplayer callback (sorcerykid)
- HUD: Implement scalable texts (LoneWolfHT)
- HUD: "off state" icon feature for statbars (Wuzzy)
- set_fov: Add time-based transitions (ANAND)
- Expose collision information to LuaEntity on_step (sfan5)
- Enforced type checks for registration fields (SmallJoker)
- Add server side translations capability (pyrollo)
- Fix alias handling of get_content_id (sfan5)
- Document inheritance of different noise seeds (paramat)
- Add default stack size setting (SmallJoker)
- Play 'player_jump' when player jumps (Wuzzy)
- HUD: Better waypoints and new image variant (appgurueu)
- CSM: Implement minetest.sound_fade() (sfan5)
- Error on invalid mapgen alias (Wuzzy)
- Add allowed_mapgens option in game.conf (wt)
- Lua API documentation clarifications (Wuzzy)
Misc / Build
- "minimal" game replaced by "Minimal Development Test" (Wuzzy)
- Particle & ParticleSpawner code cleanup (sfan5)
- Add Prometheus support (nerzhul)
- Fix detection of in-place path_locale when RUN_IN_PLACE=0 (sfan5)
- List STATIC_LOCALEDIR in "--version" (sfan5)
- Many code optimizations (sfan5)
- Wireshark dissector update (sfan5)
- Split and re-organize server object code (nerzhul)
- Automatic build improvements (sfan5, nerzhul)
Minetest Game
5.1.0 → 5.2.0
Released on 5 April 2020.
Client / Audiovisuals
- Fix alpha blending in texture modifiers (Warr1024)
- Make natural night light as bright as MT 0.4.16 (paramat)
- Shader fixes (lhofhansl, SmallJoker)
- Clean up font caching, fix bitmap fonts (SmallJoker)
- Waves generated with Perlin-type noise #8994 (lhofhansl)
- Attachments: Fix glitches after detach (SmallJoker)
- Let node 'place' and 'dug' sounds be heard by other players (sfan5)
- Fix weird looking liquid source (Wuzzy)
- Basic model shading (dcbrwn)
- Improve arm inertia animations (kilbith)
GUI Improvements
- Add visual feedback for button states (Df458)
- Formspec: draw order and clipping for all elements (DS)
- Refactor internal button styling/rendering code (Df458')
- Formspec: Fix clicking on tooltip-obstructed elements (DS)
- Formspec: change cursor on fields and co. (DS)
- Various new formspec bug fixes (SmallJoker)
- Formspec: Add 9-slice background support to button elements (Df458)
- Formspec: add hypertext[] element (pyrollo)
- Formspec: animated_image[] (Df458, kilbith)
- Make clipping of formspec elements more consistent (Df458)
- Remove outdated field_close_on_enter[] warnings in element parameters (SmallJoker)
- Fix mouse events sent to wrong GUI elements when dragging (sfan5)
- Restore intuitive click-through behaviour (DS)
Enhancements
- Wear out tools on punch (sfan5)
- Tunnels: Completely disable generation when 'cave width' >= 10.0 (paramat)
- Randomwalk cave liquids: Remove deprecated 'lava depth' (paramat)
- Automatically enable the mod's dependencies in the world config menu (HybridDog)
- Clean up craft replacements docs (pauloue)
- Falling nodes: add missing support for light sources, most drawtypes, and paramtype2s (Wuzzy)
- Remove legacy flat-file map code and documentation (random-geek)
- Fix packet receiving in server and client (sfan5)
- Key settings: Cancel with escape, clear with delete (SmallJoker)
Script API / Modding
- CSM: Introduce get_modpath() (sfan5)
- CSM: Remove non-functional minetest.get_day_count() (sfan5)
- Add z-index management to HUD (pyrollo)
- Add table.key_value_swap and table.shuffle (HybridDog)
- Map download: Escape ':' to '_' (NTFS/FAT* systems) (Montandalar)
- Settings: Add get_flags API for mapgen flags (SmallJoker)
- Improve minetest.sound_play with ephemeral sounds and player exclusion (sfan5)
- Reworked validity checks for entities (sfan5)
- Documentation: Add advice on lifetime of ObjectRefs (sfan5)
- Allow texture modifiers in hotbar textures (Warr1024)
- Nodes with torchlike drawtype and custom visual_scale now are rendered attached to surface instead of being centered (Wuzzy)
- Add documentation of VoxelArea 'ystride', 'zstride' (paramat)
- Lua API: Document HP, breath and damage limits (SmallJoker)
- Various documentation improvements (Wuzzy)
- CSM: Corrections to client_lua_api.txt (sfan5)
- Make minetest.item_place_node return position of placed node (Bluebird)
- Call on_secondary_use when object is right-clicked (sfan5)
- CSM: Various fixes (sfan5)
- Many pathfinder bugfixes and improvements (Wuzzy)
- Fix failure to find path if start or end pos is over air (Wuzzy)
- Fix very broken implementation of A* search (Wuzzy)
- No longer jump through solid nodes (Wuzzy)
- Return nil if start or end pos is solid (Wuzzy)
- New set_sky, set_sun, set_moon and set_stars (Jordach)
- Secure and document minetest.deserialize() (luk3yx)
- minetest.get_content_id: throw error for unknown nodes (HybridDog)
Misc / Build
- Don't install fonts on ENABLE_CLIENT=0 configurations (sfan5)
- Fix memleaks in formspecs (SmallJoker)
- Android: build fixes & compat fixes (MoNTE48, nerzhul)
- Run luacheck in travis, add luacheck (rubenwardy)
- Android: fix cyrillic characters (Maksim)
- Various build issue fixes (Clang, Travis CI) (sfan5)
Minetest Game
- Simple weather that varies the clouds (paramat)
- More realistic boat physics (gang65)
- Creative Inventory search: Item with exact match appears in first spot (sfan5)
- Creative Inventory: More visual tweaks (Andrey2470T)
- Improve player model animation (An0n3m0us)
- Increase water opacity (lhofhansl)
- Reset spawn position when bed is destroyed (Desour)
- Papyrus now appears in rainforest swamps as well (paramat)
- New/updated translations:
- French (DrHackberrry)
- Spanish (runsy)
- Italian (h4ml3t)
- Russian (Andrey2470T)
- Swedish (Aresiel)
- Malay (MuhdNurHidayat)
- Chinese (zaoqi, IFRFSX)
- Bugfix: TNT mod crashed when entities disappeared during explosion (sfan5)
- Bugfix: Papyrus in savanna did not appear in 5.1.0, it has been added back (paramat)
- Bugfix: Screwdriver was able to rotate torches into weird positions (An0n3m0us)
- Bugfix: Players could be knocked back when attached (sfan5)
5.1.0 → 5.1.1
Released on 17 January 2020.
This release is based upon bugfixes from 5.2.0-dev.
Client / Audiovisuals
- Fix player-bound sound playback (SmallJoker)
- Fix item eat sound not played if last item (Wuzzy)
World / Server / Environment
- Formspecs: Reset version number on rebuild (SmallJoker)
- Rework packet receiving in ServerThread (sfan5)
- Fix core.chat_format_message crashes (ClobberXD)
- Fix spaces breaking formspec_version[] tag (rubenwardy)
Misc / Build
- MacOS/BSD: Fix build issue due to conflicting s64 type definitions (AMDmi3)
- Fix find_path for newer jsoncpp installations (vilhelmgray)
- Update translations
5.0.1 → 5.1.0
Released on 12 October 2019.
Map generator
- Mapgen Carpathian: Add optional rivers (paramat)
- Move more dungeon parameter selection to mapgens (paramat)
- Dungeons: Make multiple large rooms possible (paramat)
Client / Audiovisuals
- Change pitch fly binding to 'P', add to change keys menu (rubenwardy)
- Android settings: Use 'simple' leaves instead of 'fancy' (paramat)
- Fix 3rd person selection range (srifqi)
- Make scrollbars' bar variable in size (stujones11)
- Damage: Play no damage sound when immortal (SmallJoker)
- Increase upper limit of display_gamma to 10 (ClobberXD)
- Optimize and unify mesh processing (Vitaliy)
- Re-order mapgens in mainmenu and 'all settings' mapgen selection (paramat)
- Scrollbars: Move directly to clicked pos if clicked into tray (DS-Minetest)
- Fix broken attachments on join (SmallJoker)
- Fix inventory_overlay for nodes without inventory_image (DS-Minetest)
- Better F6 profiler (SmallJoker)
- Fix minimap markers (theviper121)
- Textures: Load base pack only as last fallback (SmallJoker)
Builtin (Lua / Media / Documentation)
- Add /help formspec for commands and privileges (SmallJoker)
- Lua API: Add link to Minetest Modding Book (ClobberXD)
- Force item entities out of solid nodes (sfan5, based on Wuzzy`s work)
- Lua API: Various fixes (DS-Minetest, SmallJoker)
- Rename "private messages" to "direct messages" (Calinou)
- Automatically enable depending mods in the dialogue (HybridDog)
- All settings: Fix missing flags checkboxes (srifqi)
World / Server / Environment
- Various network performance improvements (osjc)
- Force send a mapblock to a player (sofar)
- Revert ItemStacks being limited to the 'stack_size' value (ClobberXD)
- Save forceloaded blocks file periodically (Thomas Rudin)
- Improve ABM time budget handling (lhofhansl)
- Group "immortal" also protects players from damage (Wuzzy)
- Optimize usage of TOSERVER_GOTBLOCKS packet (sfan5)
- Network: several bugfixes (sfan5)
- Mapgen::spreadLight performance improvement (DS-Minetest)
- Improve occlusion culling in corridors with additional check (sfan5)
- Inventory: Delay dirty lists, and send changes incrementally (SmallJoker)
- Other inventory bugfixes (sfan5, SmallJoker)
- Move debug.txt after it grows too big (HybridDog)
- Trigger on_place in many situations even if prediction failed (DS-Minetest)
- Punchwear (improved) (sfan5)
Script API / Modding
- Add deprecation warnings for ObjectRef:get/set_attribute (ClobberXD)
- Nodedef 'drop' documentation: Improve (paramat)
- Mark tool filtering in node drop documentation as deprecated (paramat)
- Add node field to PlayerHPChangeReason table (pauloue)
- Don't call on_hpchange callbacks if HP hasn't changed (ClobberXD)
- Add disable_jump to liquids and ladders (SmallJoker)
- Add support for 9-sliced backgrounds (rubenwardy)
- Add compatible, consistent coordinate system to FormSpecs (v-rob)
- Document ObjectRef:remove under Lua entity (ClobberXD)
- Docs: Clarify where to check for 'protection_bypass' (SmallJoker)
- Add vector.dot and vector.cross (HybridDog)
- Improve documentation of mapgen aliases (paramat)
- Remove debug.upvaluejoin to prevent leak of insecure environment (fluxionary)
- Fix previously crashing minetest.get_craft_result() (pauloue)
- Allow toolcaps to override the built-in times for dig_immediate (sfan5)
- Formspec styling using style[] (rubenwardy)
- Customizable chat message format (ClobberXD)
- Velocity modifiers for players (sfan5)
- Fix some issues with minetest.clear_craft (pauloue)
- Add function `minetest.read_schematic` (paly2)
- Formspecs: formspec_version[] element (SmallJoker)
- Per-player FOV overrides and multipliers (ClobberXD)
Misc / Build
- Find PostgreSQL correctly (adrido)
- Add compatibility to vcpkg buildsystem (adrido)
- Android: Use system provided path for default TMPFolder setting (stujones11)
- Fix handling of --color and --worldlist command line arguments (mmattes)
- Unified OpenGL ES support (sfan5)
Minetest Game
- Added dry dirt and dry dirt with dry grass. Grass never spreads on dry dirt (paramat)
- Savannas now have dry dirt and dry dirt with dry grass (paramat)
- Added steel bar door and steel bar trap door
- Added setting “enable_fence_tall” for fences that cannot be jumped over (mbartlett21)
- Firefly in a bottle can now be placed into vessels shelf
- Add flowing water sound
- Underground biomes extend much deeper, down to Y=-255
- Make the creative mod hand dig 'dig_immediate' nodes fast (paramat)
- Add new TNT sounds (TumeniNodes)
- Add missing infotext to nodes (An0n3m0us)
- Added translation support
- Added German, French, Spanish and Italian translations (Wuzzy, Hamlet, JDiaz, DrHackberry)
5.0.0 → 5.0.1
5.0.1 was released on March 31, 2019.
- Fix detached inventory serialisation (rubenwardy)
- Fix texture rotation for wallmounted nodeboxes (sfan5)
- Fix build failing on some compilers (rubenwardy)
- Warn about issues with the num_emerge_threads setting (paramat, sofar)
- HPChange Reason: Fix issues with custom reasons (rubenwardy)
- Fix FreeBSD build by handling std::time_t properly (rubenwardy)
- Confirm registration GUI: Remove positional strings to fix Windows bug (paramat)
- Prevent multi-line chat messages server-side (rubenwardy)
- httpfetch: Disable IPv6 here too if requested by settings (sfan5)
0.4.16 → 5.0.0
Released March 4th
Note: 5.0.0 is based on 0.4.16, not 0.4.17. 0.4.17 was created by backporting changes from the development branch of 5.0.0
Highlights
- Add online content repository (games, mods, modpacks, texture packs)
- Add Carpathian mapgen
- Automatic jumping
- Android: Rewritten controls. Add joystick and modify up on-screen buttons
- Mods and games can be translated
- Rename 'subgame' to 'game'
- Modding: More node drawtypes: disconnected nodeboxes (more ways to create connected blocks),
plantlike_rooted
(for underwater plants) - Modding: Custom player collision box
- Modding: A great deal of new map generator features
- Modding: Allow to rotate entities in all 3 axes
New Version Scheme
Basically, the leading 0 has been dropped. The version scheme was thus changed from
ZERO.MAJOR.MINOR.PATCH
(note: PATCH was left out when it was 0) to
MAJOR.MINOR.PATCH
.
This was chosen for a few reasons:
- Shows that we aim to keep inter-version compatibility (which has mostly been the case since early 0.4.x)
- Allows us to release patch/bug fix only releases without adding a silly 4th number
- Doesn't imply that this version is the first stable/finished version as much as a 1.0.0 does.
For some context, read the issue that resulted in this change.
Breaking changes and deprecations
As a major release, 5.0.0 will break some mods written for 0.4.x versions. We tried to keep the breakages as small as possible whilst fixing long standing issues.
- Minetest now uses C++11 instead of C++03, make sure you have a compatible system (Windows Vista, Debian 8, Ubuntu 16.04, CentOS 7, macOS 10.7, …)
- Breaks network compatibility with 0.4.x. 0.4.x clients won't be able to connect to 5.x servers and vice-versa. Fix: update clients and servers to 5.x
- Attachment and player positions have been shifted by 1 node, to allow support for custom player selection boxes. Fix: update default and player_api, subtract
10
from any attachment positions, shift the origin of player models to the feet - Formspec theming using prepended strings. This may cause wrong backgrounds to appear on formspecs. Fix: see https://forum.minetest.net/viewtopic.php?f=18&t=20646
- depends.txt and description.txt have been deprecated. Fix: use description, depends, and optional_depends in mod.conf, game.conf, or texture_pack.conf instead
- modpack.txt has been deprecated. Fix: rename to or add modpack.conf.
- Use of deprecated methods such as object:setpos() is now warned about. Fix: replace them with correct functions
- player:get/set_attribute() is now deprecated. Fix: use player:get_meta() instead
- nodeupdate() was removed. Fix: replace with minetest.check_for_falling.
- Clouds API: changed speed param from 'y' to 'z'
- Player inventory list "hand" must now be manually initialized by mods (using set_size)
- Some client-side scripting functions were removed (see below)
Note that a function being deprecated means that it still exists, but it may give a warning when used and may be removed in future. Deprecations are necessary to improve the consistency and efficiency of our API
Features
Games
- Load a texture pack from the 'textures' subfolder of a game (red-001)
Map generators
- Mapgen: Add Carpathian mapgen (Vaughan Lapsley)
- Mapgen flags: Add 'biomes' global mapgen flag (paramat)
- Dungeons: Add Y limits in all mapgens (paramat)
- Dungeons: Add setting to prevent projecting dungeons (paramat)
- Biomes: Add vertical biome blend (paramat)
- Mgv7 floatlands: Add exponent parameter (paramat)
User interface
- Add online content repository (mods, texture packs, mod packs, games) (rubenwardy)
- Rename 'subgame' to 'game' (paramat)
- Allow enter to select items from combobox's list (basicer)
- Formspecs: Use mouse wheel to pick up and deposit single items (HybridDog)
- Add player marker to both minimap types (nanoproject)
- Delete world dialogue: Move buttons to avoid double click deletion (srifqi)
- Add a refresh button to the server list (ThomasMonroe314)
- Main menu: Change tabs to 'Start Game' and 'Join Game' (ThomasMonroe314)
- Add password confirmation on new player registration (srifqi)
- Adjust default console height (Ezhh)
- Add coloured terminal output (HybridDog)
- Add setting to display the itemstring after the tooltip in the inventory (DTA7)
- Make world creation menu automatically generate a random world name (lisacvuk)
- Change “Use” key name to “Special” (TeTpaAka)
- Make number of maximum displayed chat messages configurable (Esteban)
Controls
- Automatic jumping (bendeutsch)
- Add pitch move mode, toggle with L key
- Android: Rewritten controls. Add joystick and modify up on-screen buttons (srifqi)
- More keys are changable in settings menu
- Make direct item selection keys freely bindable via minetest.conf (Wuzzy)
World / server
- Add setting for world start time, and change default to 5:15am (JRottm, paramat)
- Allow for getting world name and path separately on the command line (Brian)
- Add a server-sided way to remove color codes from incoming chat messages (red-001)
- Object limits: Allow objects to exist outside the set 'mapgen limit' (paramat)
Chat commands and privileges
- Add '/haspriv' chat command (ClobberXD)
- Add '/kill' chat command (Wuzzy)
- Remove 'zoom' privilege (zoom is now a player object property)
- Do not grant all privileges to the admin - changes game behavior (lhofhansl)
Graphics
- Fog effect when camera is inside cloud (bendeutsch)
- Camera: Add and improve arm inertia (kilbith)
- Update light decoding table size (numberZero)
- New lighting curve (numberZero)
- Add setting for near plane distance (basicer)
- Add Android drivers to the video_driver drop-down menu (Wayward1)
Sounds
- Sounds: Add falling node sounds (sofar)
- Emit liquid sound if the player walks in liquid (juhdanad)
- Play damage sound on player death (paramat)
- Add mute setting (toggled by the mute key and in the volume menu) (DTA7)
Technical
- Add support for authentication in an SQLite database (bendeutsch)
- Add an optional readonly base database (lhofhansl)
- Add crossview support (otdav33)
- Optionally extend the active object in a players camera direction (lhofhansl)
- Implement ability to set client node dig prediction result (sofar)
Misc.
- Add check to pause game on lost window focus (rubenwardy)
- Load files from subfolders in texture packs (numberZero)
- Make HUD status messages translatable (Wuzzy)
Modding
- Add on_mods_loaded callback (nerzhul)
- MetaDataRef: Add contains() and get() (rubenwardy)
- Allow dumping userdata (HybridDog)
- Hint at problematic code when logging deprecated calls (sfan5)
- Add minetest.rgba function that returns ColorString from RGBA or RGB values (Gael-de-Sailly)
- World config: Add modpack descriptions (HybridDog)
- get_node_drops: Make empty drop return empty table (tenplus1)
- Add core.remove_detached_inventory (SmallJoker)
- Add disable_repair group to prevent tool repair (Wuzzy)
- clear_craft: Return false if recipe not found, don't throw error (paramat)
- Fix string.split returning an empty table if string starts with sepearator (pyrollo)
Formspecs / HUD
- Formspecs: Add tooltip element for area (rubenwardy)
- Formspecs: Allow setting alpha value for the box[] element (Thomas--S)
- Formspecs: Add an auto vertical scrollbar to the textarea (adelcoding1)
- Formspecs: Add options to set background color and opacity (fullscreen mode + default mode) (nerzhul)
- Formspecs: textarea with scrollbar improvements (adrido)
- HUD: Make hud_get return alignment, offset and size. (lisacvuk)
Server-side
Metadata
- Give games the ability to disallow specific mapgens (Ezhh)
- Load mod dependencies and description from mod.conf (rubenwardy)
User interface
- Add clientside translations. (Ekdohibs)
- Add formspec theming using prepended strings (rubenwardy)
- Zoom: Set zoom FOV per-player using a player object property (paramat)
- Zoom: Move enabling zoom to a new player object property (paramat)
- Minimap: Add new HUD flag for minimap radar mode (paramat)
Items
- Allow overriding tool capabilities through itemstack metadata (raymoo)
- Set placer to nil instead of a non-functional one in item_OnPlace (DTA7)
- Overlays for wield and inventory images (juhdanad)
- Make dropped items colorable (juhdanad)
- Automatic item and node colorization (juhdanad)
- Add eat sound (Wuzzy)
Nodes
- Add slippery group for nodes (players/items slide) (Wuzzy)
- Connected Nodeboxes: Add 'disconnected' boxes (Thomas--S)
- Add callback to preserve node metadata as item metadata (ashtrayoz)
- Add 'plantlike_rooted' drawtype (numberZero)
Objects/entities
- ObjectRef: Add add_velocity() (HybridDog)
- Allow damage for attached objects, add attach/detach callbacks (SmallJoker)
- Optional alpha channel support for entities (stujones11)
- Add static_save property to luaentites to not save them statically. (orwell96)
- Object properties: Add 'glow', disables light's effect if negative (basicer)
- core.get_objects_inside_radius: Omit removed objects (HybridDog)
- Make entity selection and collision boxes independently settable (stujones11)
- Add set_rotation/get_rotation to rotate entities in all 3 axes
Players
- Customizeable max health and max breath for players (not persisted between server restarts) (SmallJoker)
- Add reasons to on_dieplayer and on_hpchange (rubenwardy)
- Add minetest.is_player (HybridDog)
- Add on_grant and on_revoke callbacks (rubenwardy)
- Player eye height: Make this a settable player object property (paramat)
- Step height: Add as a player object property (paramat)
- Player collisionbox: Make settable (TeTpaAka)
- Add player inventory callbacks (SmallJoker)
Mapgen
- Biomes: Add 'get_biome_name(biome_id)' API (paramat)
- Biomes: Add 'min_pos'/'max_pos' xyz biome limits (paramat)
- Biomes: Add decoration flags for underground decorations (paramat)
- Biomes: Add function to deregister single biomes (zeuner)
- Biomes / dungeons: Add biome-defined dungeon nodes (paramat)
- Biomes / cavegen: Add definable cave liquid for a biome (paramat)
- Biomes: Add 'get heat', 'get humidity', 'get biome data' APIs (paramat)
- Biomes/decorations/ores: Make relative to 'water_level' setting (paramat)
- Place schematic (on vmanip): Enable use of 'place center' flags (paramat)
- Ores: Add stratum ore (paramat)
- Stratum ore: Add option for a constant thickness stratum (paramat)
- Stratum ore: Allow use with no noise for simple horizontal strata (paramat)
- Simple decorations: Add 'param2_max' parameter for random param2 (paramat)
- Schematic decorations: Add 'place_offset_y' placement parameter (paramat)
- Decoration API: Add lightweight ability to have complete coverage (paramat)
- Mgv6: Remove incorrectly defined and unused 'volume nodes' (paramat)
- Mgv7: Add 'mount_zero_level' parameter (paramat)
- Mgv7: Add option to repeat surface biomes in floatlands (paramat)
- Mgvalleys: Make river depth variation and humidity drop optional (paramat)
- CavesRandomWalk: Make 'lava_depth' a mapgen parameter (paramat)
- Gennotify: Add 'minetest.get_decoration_id' API (paramat)
World
- Spawn level: Add 'get_spawn_level(x, z)' API (paramat)
- Add minetest.bulk_set_node call + optimize Environment::set_node call (nerzhul)
- Implement minetest.register_can_bypass_userlimit (nerzhul)
Chat
- Make the server status message customizable (SmallJoker)
- Allow the join/leave message to be overridden by mods. (red-001)
Protection
- is_area_protected: Rename from intersects_protection (SmallJoker)
- Intersects_protection(): Move from Minetest Game to builtin (paramat)
Graphics and sounds
- Real global textures (numberZero)
- Clouds API: change speed from 'y' to 'z', ColorSpecs in Lua docs (bendeutsch)
- In-cloud fog: Strengthen effect when small view range is used (lhofhansl)
- Sound: Add pitch option (Rui-Minetest)
Utility features
- Allow 'default' parameter in 'settings:get_bool' function (Jordan Irwin)
- Add `on_auth_fail` callback (red-001)
- Make core.auth_table private and structure builtin/auth.lua (sfan5)
- Add sha1 to lua utils. (basicer)
- Remove nodeupdate and nodeupdate_single (Rui-Minetest)
- Expose getPointedThing to Lua (juhdanad)
- Helper methods for hardware colorization (juhdanad)
- httpfetch: Enable gzip support (sfan5)
- Rename hasprivs command to haspriv (ezhh)
Client-side
- Add flavour limits controlled by server (nerzhul)
- Disallow exploitable clientside mod functions by default (paramat)
- Rename CSM flavours to restrictions (SmallJoker)
- Remove screenshot API (red-001)
- Don't Load the package library (red-001)
- Remove `on_connect` callback (red-001)
- Add functions to create particles and particlespawners. (red-001)
- Don't load the IO library. (red-001)
- Add a way to get current locale from CSM (lisacvuk)
- Add callback on open inventory (Dumbledor)
- Implement mod communication channels (nerzhul)
- Create a filesystem abstraction layer for CSM and only allow accessing files that are scanned into it. (red-001)
- Add function to get player privileges (red-001)
Bug fixes and small improvements
Also a big thanks to paramat, ClobberXD, pauloue, gituser2194, lhofhansl, ashtrayoz, Wuzzy, and Ezhh for their contributions to documentation, in no particular order.
Critical
- Fix crash caused by Lua error during startup (red-001)
- Pointed_thing_to_face_pos: Avoid crash when player is inside a node (paramat)
- Fix segfault in player migration and crash in log_deprecated (SmallJoker)
- Fix crash guiConfirmRegistration quit menu (Vincent Glize)
- Fix built-in inventory list crash when size = 0 (SmallJoker)
- Fix a crash or random memory leak when resetting saved environment variable in test_servermodmanager.cpp (nerzhul)
- Fix crash on can_bypass_userlimit returning non-boolean (rubenwardy)
- Fix error if setting menu_last_game is not a valid game (nOOb3167)
- Builtin: Fix handle_node_drops crash with nil digger (SmallJoker)
- Fix issue Minetest crash when custom font path is not exist (srifqi)
- Thread: fix a crash on Windows due to data race condition on Thread::m_start_finished_mutex (nerzhul)
- Fix crash on revocation of removed privilege (rubenwardy)
- Fix crash when using --go in command line (juozaspo)
- Fix crash due to missing pointer validation (nerzhul)
- Fix get_server_status() segfault due to uninitialized m_env (rubenwardy)
Build
- Fix many Android build issues (nerzhul)
- Fix i386 bit build at OpenBSD (mazocomp)
- Fix compile error in OpenBSD (jcalve)
- Fix MSVC compiling annoyances (adrido)
- directiontables: Fix MSVC compiler error (adrido)
- Fix MacOS builds (Pavel Puchkin)
- Travis-ci build: fix osx jpeg installation failure, git ambiguous argument error (caused by merging commits) and add a workaround for travis commit range bug (juozaspo)
System-specific
- Provide Xorg/net wm process ID (thoughtjigs)
- Make os.tempfolder work correctly for MinGW & MSVC (nOOb3167)
- Print error when HOME is not set (Midgard)
- MacOS: don't require X11 libraries during compilation (D Tim Cummings)
- Prevent Android from automatically locking display (Wayward1)
- Windows: Cpack wix installer (adrido)
Rendering
- Fix liquid bottoms not being rendered (numberZero)
- Fix liquid post effect colour behaviour in third person view (red-001)
- Fix dark liquids (numberZero)
- Use crack animation on all tile layers (juhdanad)
- Smoothed yaw rotation for objects (SmallJoker)
- Disable shaders GUI on unsupported drivers (numberZero)
- Fix missing ignore textures (HybridDog)
- Make sure color returns to normal after a damage flash (lhofhansl)
- Camera: Improve subpixel movement (SmallJoker)
- Camera: Fix wieldmesh glitch after teleporting (kilbith)
- upright_sprite: Fix texture position for players (SmallJoker)
- Fix node-nodebox lighting difference in direct sunlight (numberZero)
- Fix ambient occlusion and dark lines at mapblock borders (numberZero)
- Don't recalculate statustext initial color every time & review fixes (nerzhul)
- Clear colors when reading property info. Set vertex colors on upright_sprites. (basicer)
- Fix items turning black (numberZero)
- Fix dropped item look (HybridDog)
- Fix item and wield meshes (numberZero)
- Do not scale texture unless necessary. (lhofhansl)
- Avoid filtering low-res textures for animated meshes (incl. players) (lhofhansl)
- Reduce server FOV with forward speed (lhofhansl)
- ParticleSpawner::step cleanup and rotation fix (SmallJoker)
- Fix incorrect buffer size calculation on creation of HUD status messages (rubenwardy)
- Particles: Do not add digging particles for airlike nodes (SmallJoker)
- Fix animation frame_speed and blend loosing precision (sapier)
- Fix undefined behaviour in arm movement when dividing by zero (nerzhul)
- Fix render order of overlays (juhdanad)
- Particles: Make collision with objects optional (paramat)
- Fix stretched stars bug, change render order (Aspen)
- Software inventorycube (Vitality)
- Light curve: Simplify and improve code, fix darkened daytime sky (Vitality)
- Smooth lighting: Fix light leaking through edge-connected corners (DTA7)
- Darkness detection: Reduce chance of false positives darkening the skybox (lhofhansl)
- Fix sky objects not rendering with OpenGL ES (stujones11)
- Night clouds: Boost brightness for a moonlit appearence (paramat)
- Night sky: Fix brightness threshold for applying night colours (paramat)
User interface
- Fix debug and info text being the wrong color (rubenwardy)
- Fix tooltip colors specified by formspec part (rubenwardy)
- Make RTT display (F5 information) working correctly again (HybridDog)
- Don't show Android edit dialog when tapping read-only field (srifqi)
- Make sounds stop playing when entering game or mainmenu (nOOb3167)
- Fix dancing text for formspec input fields (numberZero)
- Chat: Remove prompt history duplicates (SmallJoker)
- Statbars: fix incorrect half-images in non-standard orientations (Ekdohibs)
- Advanced settings: Add range check for float type (srifqi)
- Move the nametag back to the top of the player (TeTpaAka)
- Chat: Move chat text down to not overlap 3rd line of debug text (paramat)
- Fix console resize issue when changed game window (Ezhh, Zeno-)
- Android buttons: Inset 'rare controls', inset and resize 'gear icon' (paramat)
- Main menu: Clean up and improve advanced settings dialogues (SmallJoker)
- Escape special characters when searching the server list (ChimneySwift)
Formspecs
- Mitigate formspec exploits by verifying that the formspec was shown to the user by the server. (red-001)
- Make container[] support fractional offsets (SmallJoker)
- Remove accidental empty 'quit' field (SmallJoker)
- Unify textarea and field parsing functions, fix wrong fallback text (SmallJoker)
- Formspec verification: Fix show_formspec inside callbacks (SmallJoker
- Fix wrong scrolling of formspec input fields (numberZero)
- Inventory: Restrict access from too far away (SmallJoker)
- Fix mousewheel behaviour in textarea (shivajiva101)
- Fallback to 'label' in readonly textarea[] (backwards compatible) (SmallJoker)
- Fix invalid background warning (SmallJoker)
- Fix text clipped by scrollbars (random-geek)
Performance
- Optimized MapBlock mesh generation (lhofhansl)
- Optimize ABM checks (lhofhansl)
- Fix bugs in networking which caused a performance loss (lhofhansl)
- Builtin auth handler: Speed up file writing (SmallJoker)
- Huge LBM lookup performance improvement on mapblock loading (nerzhul)
- Fix last performance-type-promotion-in-math-fn problems (nerzhul)
- Optimize a little bit isBlockInSight, adjustDist & collisions (nerzhul)
- Line_of_sight: Improve using VoxelLineIterator (juhdanad)
- Cache server config settings. (lhofhansl)
- Very little performance fix on correctBlockNodeIds (nerzhul)
- Don't search for locale folders if gettext is disabled (adrido)
Networking
- Use server's zoom fov for distant world loading. (lhofhansl)
- Fix ipv6_server=true not accepting IPv4 connections on Windows (sfan5)
- Fix narrow/utf8 difference in incoming/outcoming messages (numberZero)
- Fix day_night_ratio_do_override not being initialised server-side (rubenwardy)
- Fix attached particle spawners far from spawn (raymoo)
- Server: affect bind_addr on constructor instead of start() (nerzhul)
- Network: Fix logging into older worlds with base64 hashes (SmallJoker)
- Server: Calculate maximal total block sends dynamically (SmallJoker)
- Have the server send the player list to the client (red-001)
Chat commands and privileges
- Check if player exists on use of /privs (ClobberXD)
- Reduce block load glitches (lhofhansl)
- Make the /shutdown command work properly (dopik, SmallJoker)
- Prevent /spawnentity from spawning unknown entity (Wuzzy)
World
- Fix blocks written by VManip not being marked as modified (sfan5)
- Set range of blocks to retrieve per roundtrip to 2. (lhofhansl)
- Retrieve a small cone of blocks in the direction of the players velocity. (lhofhansl)
Map generator
- Change mapgen order to ores > dungeons > decorations (paramat)
- Biome API: Fix absent water decorations and dust, in deep water (paramat)
- Biome-defined dungeon nodes: Use faster biome calculation (paramat)
- Biomemap: Avoid empty biomemap entry to fix failing biome dust (paramat)
- Biomes: Fix vertical biome blend (paramat)
- Biome dust node: Only place on 'walkable' cubic non-liquid drawtypes (paramat)
- Biome generation: Fix layers of 'filler' nodes at biome y limits (paramat)
- Mgv5: Make spawn position search more reliable (paramat)
- Mgv6 mudflow: Avoid partially removed stacked decorations (paramat)
- Mgv7: Raise spawn point by 1 node for no mountain case (paramat)
- Mgv7: Avoid rivergen removing mod-placed nodes when overgenerating (paramat)
- Mgv7: Avoid divide-by-zero errors (paramat)
- Mgv7: Fix undefined 'float_mount_height' (paramat)
- Mgfractal: Improve spawning behaviour (paramat)
- Mgv5/v7/fractal: Add 'large_cave_depth' parameter to replace fixed value (paramat)
- Fix Mapgen Valleys getSpawnLevelAtPoint() (Treer)
- Vein ore: Fix bug caused by changing perlinmap Y size (paramat)
- Schematic decorations: Fix placement bug when centered and rotated (paramat)
- Simple decorations: Make 'place_offset_y' usable with simple decorations (paramat)
- Dungeons: Fix duplication of y limit parameters (paramat)
- Dungeons: Mostly fix missing stair nodes (paramat)
- Dungeons: Avoid generation in multiple liquid nodes and 'airlike' (paramat)
- Dungeons: Use biome 'node_stone' if normal stone types not detected (paramat)
- Cavegen: Fix errors when getting biome outside mapchunk (paramat)
- Cavegen: Re-order generation to fix cavern bug (paramat)
- Cavegen: Avoid unsupported biome 'top' or 'filler' nodes (paramat)
- valleys mapgen: Fixed submarine valleys shape (Gael-de-Sailly)
- settingtypes.txt: Fix valleys dungeon ymax error (paramat)
- L-system: Fix leaves cutting through stems (HybridDog)
Items and nodes
- Pointed thing to face pos: Use 'eye height' object property (paramat)
- Ensure no item stack is being held before crafting (Luis Cáceres)
- core.rotate_node: Run callbacks like with any regular placed node (SmallJoker)
- Don't try to craft a non-existent item (Esteban)
- Fix rotated node placement (tenplus1)
- Item drop: Tune to land exactly 2 nodes away with level view (paramat)
- Check item_drop amount clientside (rubenwardy)
- Fix Android node selection distance (juhdanad)
- Safe digging and placing (bendeutsch)
- Fix for empty key/value when reading item string with wear but no metadata (Jesse McDonald)
- Inventory: Fix wrong stack size behaviour and item loss (SmallJoker)
Objects/entities
- Fix objects colliding with their children (SmallJoker)
- core.spawn_falling_node: Keep metadata (SmallJoker)
- Collision engine: Collide with 'ignore' nodes (paramat)
- falling.lua: Delete falling node entities on contact with 'ignore' (paramat)
- Position entity nametags relative to selection-box (stujones11)
- Damage: Remove damage ignore timer (SmallJoker)
- Item entities: Enable item collision detection for sudden movement (DTA7)
- Ease selection of entities behind nodes (SmallJoker)
- Object properties: Fix loss of custom selectionbox when it's not updated (SmallJoker)
- GenericCAO: Fix light position for non-players, remove deprecated initialisation code (SmallJoker)
- GenericCAO: Fix dark model below y = 0 (paramat)
- CAO footstep sounds: Reduce gain to balance volume (paramat)
Players
- Make player liquid speed independent of FPS (paramat)
- Run detach callbacks on player leave (SmallJoker)
- Localplayer: Fix disable_jump effect and getStandingNodePos() (SmallJoker)
- Android stepheight: Only increase if 'touching ground' (paramat)
- Respect object property hp_max field for players (SmallJoker)
- Do not add base position to player selection box (stujones11)
- Abort if static_spawnpoint is an invalid setting instead of just giving an error log (HybridDog)
- Fix error not printed to console when no name is provided (juozaspo)
- Fix player coordinate rounding in collisionMoveSimple() (JRottm)
- Sneak: Stripped down version (SmallJoker)
- (Re)spawn players within 'mapgen_limit' (paramat)
- Stop autoforward on BACKWARD key-press (tukkek)
- Apply physics overrides correctly during anticheat calculations (sfan5)
Modding
- Fix builtin Lua function os.tempfolder (nOOb3167)
- Fix isNan check for object:set_yaw(..) (nerzhul)
- Fix LuaJIT include directory not being found (rubenwardy)
- Check argument types inside MetaDataRef Lua API (sfan5)
- Fix buffer parameter not working in LuaPerlinNoiseMap::l_getMapSlice() (pgimeno)
- Fix naming conventions of noise userdata (rubenwardy)
- Fix rounding error in g/set_node caused by truncation to float (rubenwardy)
- Vector fun
- CAO footstep sounds: Reduce gain to balance volume (paramat)aramat)
- Fix default item callbacks to work with nil users (raymoo)
- on_death: Fix callback number of pushed arguments (SmallJoker)
- Fix core.wrap_text and make its behaviour consistent with the docs (sfan5)
- Trigger on_rightclick regardless on the formspec meta field (SmallJoker)
- LBM: use range based for and fixed a loop variable overloading in applyLBMs (nerzhul)
- Fix deserialization of ItemDefinition (Rui-Minetest)
- Plantlike meshoptions: Fix inverted random vertical offset (numberZero)
- Player hand list: require init by mods (SmallJoker)
Debug
- Fix missing logs from warningstream (or similar) (HybridDog)
- Fix off-by-one in log output line length (pgimeno)
- Profiler: Fix var args not being passed to callback register function (rubenwardy)
Internal / code quality
- Add a MSVC / Windows compatible snprintf function (nOOb3167)
- Fix memory leaks in mod storage (nerzhul, red-001)
- Fix rtt >= 0.0f assertion and free_move crash (SmallJoker)
- Global new() or grab() to be managed in constructor only (JDCodeIt)
- Node resolver: Make error on fallback optional, disable for mapgen aliases (paramat)
- FOV: Raise lower limit to avoid zoom-loading of distant world (paramat)
- Fix many issues reported by clang-tidy (nerzhul)
- Fix various clang-tidy reported performance-type-promotion-in-math-fn (nerzhul)
- Selected ItemStack: Reduce black magic and improve the stack swapping behavior (SmallJoker)
- core.rotate_node: Do not trigger after_place_node (SmallJoker)
- Sound: fix static initialization order dependency by not having one (nOOb3167)
- Fix various Client class functions not marked as override (virtual) (nerzhul)
- Guard sound manager initialization with "enable_sound" (nOOb3167)
- Fix an alone if to be with a missing else (nerzhul)
- Drop texture file list cache (numberZero)
- Variable name fix + structure creation unrolling in lighting code (nerzhul)
- getv3intfield: Fix logic of return bool (paramat)
- Generate Notifier: Clear events once after all 'on generated' functions (paramat)
- Fix Wstringop-overflow warning from util/srp.cpp (HybridDog)
- Tool getDigParams: Fix selecting the best fitting time (HybridDog)
- Fix undefined behaviour on getting pointer to data in empty vector (nOOb3167)
- Use Irrlicht's mesh cache for animated meshes. (lhofhansl)
- Shut down mapgen threads before other shutdown tasks (raymoo)
- Allow zoom to actually show more data. (lhofhansl)
- Make use of safe file writing in auth handler (sfan5)
- Fix inventory drag drop flag (asl97)
- Fix strict_protocol_version_checking functionality after ee9a442 (SmallJoker)
- Fix empty legacy meta being persisted (rubenwardy)
- Lint fix on localplayer.h (nerzhul)
- Sort box corners correctly (Thomas--S)
- Remove unused Map::getDayNightDiff + fix one undefined variable in mapblock.cpp (nerzhul)
- Check node updates whether the blocks are known (SmallJoker)
- Really delete things in fs::RecursiveDelete (Vitality)
- Disable HW stereo for IrrLicht 1.9 (numberZero)
Misc.
- Fix for translating empty strings (minduser00)
- Positional sound: Limit volume when closer than 1 node (paramat)
- Change the server description after a search (Dumbledor)
- Fix no sound bug (Rui-Minetest)
Other / Misc
- Version scheme change: 0.5.0 -> 5.0.0 (nerzhul)
- Move ASCII art to std::cerr, to remove it from logs (rubenwardy)
- PlayerSettings struct for player movement code (bendeutsch)
- Client eventmanager refactor (nerzhul)
- Update mesh collector and move it to a separate file (numberZero)
- Add Voxelarea unittests (nerzhul)
- VoxelArea: add_{x,y,z,p} must be static (nerzhul)
- Cleanup in flat lighting (numberZero)
- Node definition manager refactor (juhdanad)
- Move 'setlocale' from Lua to C++. (red-001)
- Rewrite rendering engine (numberZero)
- Improve the path select GUI (red-001)