guiHyperText: Fix blinky cursor on link hover (#9392)
[oweals/minetest.git] / doc / texture_packs.txt
1 Minetest Texture Pack Reference
2 ===============================
3
4 Texture packs allow you to replace textures provided by a mod with your own
5 textures.
6
7 Texture pack directory structure
8 --------------------------------
9
10     textures
11     |-- Texture Pack
12     |   |-- texture_pack.conf
13     |   |-- screenshot.png
14     |   |-- description.txt
15     |   |-- override.txt
16     |   |-- your_texture_1.png
17     |   |-- your_texture_2.png
18     `-- Another Texture Pack
19
20 ### Texture Pack
21 This is a directory containing the entire contents of a single texture pack.
22 It can be chosen more or less freely and will also become the name of the
23 texture pack. The name must not be “base”.
24
25 ### `texture_pack.conf`
26 A key-value config file with the following keys:
27
28 * `title` - human readable title
29 * `description` - short description, shown in the content tab
30
31 ### `description.txt`
32 **Deprecated**, you should use texture_pack.conf instead.
33
34 A file containing a short description of the texture pack to be shown in the
35 content tab.
36
37 ### `screenshot.png`
38 A preview image showing an in-game screenshot of this texture pack; it will be
39 shown in the texture packs tab. It should have an aspect ratio of 3:2 and a
40 minimum size of 300×200 pixels.
41
42 ### `your_texture_1.png`, `your_texture_2.png`, etc.
43 Any other PNG files will be interpreted as textures. They must have the same
44 names as the textures they are supposed to override. For example, to override
45 the apple texture of Minetest Game, add a PNG file named `default_apple.png`.
46
47 The custom textures do not necceessarily require the same size as their
48 originals, but this might be required for a few particular textures. When
49 unsure, just test your texture pack in-game.
50
51 Texture modifiers
52 -----------------
53
54 See lua_api.txt for texture modifiers
55
56 Special textures
57 ----------------
58
59 These texture names are hardcoded into the engine but can also be overwritten
60 by texture packs. All existing fallback textures can be found in the directory
61 `textures/base/pack`.
62
63 ### Gameplay textures
64
65 * `bubble.png`: the bubble texture when the player is drowning
66                 (default size: 12×12)
67
68 * `crack_anylength.png`: node overlay texture when digging
69
70 * `crosshair.png`
71     * the crosshair texture in the center of the screen. The settings
72       `crosshair_color` and `crosshair_alpha` are used to create a cross
73       when no texture was found
74
75 * `halo.png`: used for the node highlighting mesh
76
77 * `heart.png`: used to display the health points of the player
78                (default size: 12×12)
79
80 * `minimap_mask_round.png`: round minimap mask, white gets replaced by the map
81 * `minimap_mask_square.png`: mask used for the square minimap
82 * `minimap_overlay_round.png`: overlay texture for the round minimap
83 * `minimap_overlay_square.png`: overlay texture for the square minimap
84 * `object_marker_red.png`: texture for players on the minimap
85 * `player_marker.png`: texture for the own player on the square minimap
86
87 * `player.png`: front texture of the 2D upright sprite player
88 * `player_back.png`: back texture of the 2D upright sprite player
89
90 * `progress_bar.png`: foreground texture of the loading screen's progress bar
91 * `progress_bar_bg.png`: background texture of the loading screen's progress bar
92
93 * `moon.png`: texture of the moon. Default texture is generated by Minetest
94 * `moon_tonemap.png`: tonemap to be used when `moon.png` was found
95 * `sun.png`: texture of the sun. Default texture is generated by Minetest
96 * `sun_tonemap.png`: tonemap to be used when `sun.png` was found
97 * `sunrisebg.png`: shown sky texture when the sun rises
98
99 * `smoke_puff.png`: texture used when an object died by punching
100
101 * `unknown_item.png`: shown texture when an item definition was not found
102 * `unknown_node.png`: shown texture when a node definition was not found
103 * `unknown_object.png`: shown texture when an entity definition was not found
104
105 * `wieldhand.png`: texture of the wieldhand
106
107 Note: The default textures of `player.png`, `player_back.png` and `wieldhand.png`
108 are placeholders intended to be overwritten by the game.
109
110 ### Mainmenu textures
111
112 * `menu_bg.png`: used as mainmenu background when the clouds are disabled
113 * `menu_header.png`: header texture when no texture pack is selected
114
115 * `no_screenshot.png`
116     * texture when no screenshot was found for a texture pack or mod
117
118 * `server_flags_creative.png`: icon for creative servers
119 * `server_flags_damage.png`: icon for enabled damage on servers
120 * `server_flags_favorite.png`: icon for your favorite servers
121 * `server_flags_pvp.png`: icon for enabled PvP on servers
122
123 ### Android textures
124
125 * `down_arrow.png`
126 * `left_arrow.png`
127 * `right_arrow.png`
128 * `up_arrow.png`
129
130 * `drop_btn.png`
131 * `fast_btn.png`
132 * `fly_btn.png`
133 * `jump_btn.png`
134 * `noclip_btn.png`
135
136 * `camera_btn.png`
137 * `chat_btn.png`
138 * `inventory_btn.png`
139 * `rangeview_btn.png`
140
141 * `debug_btn.png`
142 * `gear_icon.png`
143 * `rare_controls.png`
144
145 Texture Overrides
146 -----------------
147
148 You can override the textures of a node from a texture pack using
149 texture overrides. To do this, create a file in a texture pack
150 called override.txt
151
152 Each line in an override.txt file is a rule. It consists of
153
154         nodename face-selector texture
155
156 For example,
157
158         default:dirt_with_grass sides default_stone.png
159
160 You can use ^ operators as usual:
161
162         default:dirt_with_grass sides default_stone.png^[brighten
163
164 Here are face selectors you can choose from:
165
166 | face-selector | behavior                                          |
167 |---------------|---------------------------------------------------|
168 | left          | x-                                                |
169 | right         | x+                                                |
170 | front         | z-                                                |
171 | back          | z+                                                |
172 | top           | y+                                                |
173 | bottom        | y-                                                |
174 | sides         | x-, x+, z-, z+                                    |
175 | all           | All faces. You can also use '*' instead of 'all'. |
176
177 Designing leaves textures for the leaves rendering options
178 ----------------------------------------------------------
179
180 Minetest has three modes for rendering leaves nodes if the node has the
181 `allfaces_optional` drawtype.
182
183 ### Fancy
184
185 Uses the texture specified in the `tiles` nodedef field.
186 The texture should have some transparent pixels and be in the RGBA format so
187 that the transparent pixels can have color information.
188 Faces of every leaves node are rendered even if they are inside a solid volume
189 of leaves; this gives a dense appearance.
190
191 ### Opaque
192
193 Uses the texture specified in `tiles` but makes it opaque by converting each
194 transparent pixel into an opaque pixel that uses the color information of that
195 transparent pixel.
196 Due to this the `tiles` texture format must be RGBA not 'indexed alpha' to allow
197 each transparent pixel to have color information.
198
199 The colors of the transparent pixels should be set for a good appearance in
200 `opaque` mode. This can be done by painting the pixels the desired colors then
201 erasing them. Then when saving the texture, use the 'save color information from
202 transparent pixels' option (or equivalent).
203
204 ### Simple
205
206 Uses the texture specified in the `special_tiles` nodedef field if it exists, if
207 not, the `tiles` texture.
208 The `special_tiles` texture should have fewer transparent pixels than the
209 `tiles` texture and be in the 'indexed alpha' format.
210
211 This mode is between the other two in terms of appearance and rendering load.
212 The nodes are rendered using the `glasslike` drawtype, only showing the surface
213 faces for any solid volume of leaves, not the internal faces.
214 Due to this the `tiles` texture might appear lacking in density, so optionally a
215 `special_tiles` texture can be used to provide a texture with fewer transparent
216 pixels for a denser appearance.