-
Notifications
You must be signed in to change notification settings - Fork 419
/
properties_files.txt
207 lines (152 loc) · 8.13 KB
/
properties_files.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
=============================================================
Description of OptiFine's configuration properties files
Based on McPatcher's configuration files
=============================================================
Overview
========
Many OptiFine features use properties files to control how textures within your texture pack are used.
Properties files are simple text files similar to the Windows ".ini" format. Each line is a property, specified as name=value.
# Sample comment
property1=value
property2=some_other_value
# Blank lines are allowed
property3=yet_another_value
All property names are case-sensitive "renderpass" is not the same as "renderPass". The order of properties within the file
does not matter. Many properties have default values and can be omitted, and in some cases the entire properties file is optional.
See the sections for each properties file for details.
Certain types of objects are used within properties files by different OptiFine features.
Rather than describe these common types separately in each feature section, they are summarized here instead.
Textures
========
Often, OptiFine requires you to specify a path to an image file or some other resource within your texture pack.
This is simply the path to the texture within the zip file. The folder structure within a texture pack can get deeply nested,
so OptiFine has some shortcuts to make things easier. Whenever OptiFine calls for you to provide a texture file,
any of these options can be used to specify the path.
The most straightforward method is simply a path relative to assets/minecraft:
# Full path
texture=textures/entity/creeper/creeper.png
This refers to "assets/minecraft/textures/entity/creeper/creeper.png" within the zip file or folder of your texture pack.
Always use forward slashes "/" to separate folder names. Regardless of your OS, do not use backslashes "\"
or the game will not properly recognize the path.
An optional "namespace" prefix can be added. This example refers to exactly the same "creeper.png" file as above:
# Full path with namespace
texture=minecraft:textures/entity/creeper/creeper.png
For textures used by other mods, the namespace will often be something other than "minecraft":
# Full path with mod namespace
texture=herobrine:textures/entity/him.png
This refers to "assets/herobrine/textures/entity/him.png", not to "assets/minecraft/textures/entity/him.png".
Many textures specific to OptiFine are in the "assets/minecraft/optifine" folder.
Since it is used so frequently, it can be represented by the tilde "~" character. The following refer to the same file:
# Relative to "assets/minecraft/optifine"
texture=~/dial/clock0.png
texture=minecraft:optifine/dial/clock0.png
Textures can also be specified relative to the path of the properties file that refers to them.
For example, within "~/dial/clock.properties" (remember "~" = "assets/minecraft/optifine")
# Relative path: Bare filename with no slashes
texture=clock0.png
# Relative path: Using "./" to denote the current directory
texture=./clock0.png
# Absolute path: Using "~"
texture=~/dial/clock0.png
# Absolute path: Without namespace
texture=optifine/dial/clock0.png
# Absolute path: With namespace
texture=minecraft:optifine/dial/clock0.png
all refer to the same path, "assets/minecraft/optifine/dial/clock0.png". If the properties file were in another location,
say ~/misc, then relative paths would be based on that folder instead, but absolute paths would still refer to the dial directory.
In general, try to organize your textures with the properties files that go with them.
Your paths will be shorter and easier to maintain when you move things around.
Blocks
======
Since 1.7 Minecraft can reference blocks by ID.
Since 1.13 the numeric blocks IDs are removed and only block names can be used.
The block IDs continue to exist within the game internally, but can no longer be specified in the configuration files as they are unstable.
For example the stone block used to be ID 1 but is now called "minecraft:stone". As with textures, the "minecraft:" prefix is optional,
so just "stone" will also work. Mods will probably use a namespace other than "minecraft" so the prefix will be required there.
See the Dinnerbone's list of Block and Item IDs with names: http://media.dinnerbone.com/uploads/2013-09/files/28_00-44-23_YfmAkomVI.txt
In 1.13 many variant blocks were "flattened" to several simple blocks and the block metadata was removed.
See https://minecraft.wiki/w/Java_Edition_1.13/Flattening
The block name format is "<namespace:>name<:property1=value1,...:property2=value1,...>".
Optional parts are in angle brackets "<>". Default namespace is "minecraft".
# Short name
blocks=oak_stairs
# Full name
blocks=minecraft:oak_stairs
# Mod blocks require full names
blocks=botania:crate
# Properties
blocks=minecraft:oak_stairs:facing=east,west:half=bottom
The "minecraft:" prefix is optional, this can also be written as:
# Properties
blocks=oak_stairs:facing=east,west:half=bottom
Items
=====
Since 1.7 items can also be specified by name.
See Dinnerbone's list of Block and Item IDs with names: http://dinnerbone.com/media/uploads/2013-09/files/28_00-44-23_YfmAkomVI.txt
Since 1.13 items can only be specified by name.
See: https://minecraft.wiki/w/Java_Edition_1.13/Flattening
Again, the "minecraft:" prefix is optional.
Biomes
======
For features that call for a list of biomes, use the names from the Minecraft wiki: https://minecraft.wiki/w/Biome#Biome_IDs
Biomes added by mods can also be used.
# Biomes short
biomes=ocean deep_ocean river beach
# Biomes full
biomes=minecraft:ocean biomesoplenty:highland
Since 1.13 many biomes have been renamed.
See: https://minecraft.wiki/w/Java_Edition_1.13/Flattening
Blending methods
================
When two or more textures are combined, OptiFine offers several options for specifying the blending operation.
Valid blending methods are described below. "This" or "current" texture refers to the texture currently being applied. "Previous" refers to whatever has been rendered so far, which could be a single texture or the result of an earlier blending operation.
- replace: Replace the previous layer entirely with the current bitmap. No blending and only simple on/off transparency.
- alpha: Blend the two textures using this texture's alpha value. This is the most common type of blending.
- overlay: RGB value > 0.5 brightens the previous image, < 0.5 darkens. color is a synonym for this method.
- add: Add this texture's RGB values multiplied by alpha to the previous layer.
- subtract: Subtract this texture's RGB values from the previous layer.
- multiply: Multiply the previous RGB values by this texture's RGB values
- dodge: Add this texture's RGB values to the previous layer.
- burn: New RGB = (1 - current RGB) * previous RGB
- screen: New RGB = 1 - (1 - current RGB) * (1 - previous RGB)
See Blend modes on Wikipedia for some illustrations: https://en.wikipedia.org/wiki/Blend_modes
Number lists
============
Occasionally you will need to specify a list of numbers. OptiFine understands ranges and individual values:
# Single entry.
list=1
# Multiple values listed separately.
list=1 2 3
# Same values using ranges.
list=1-3
# Multiple ranges.
list=1-3 6 8 10-15
Since 1.18 negative values may be specified for height. When used in a range they have to be put in brackets.
# Single entry.
list=-1
# Multiple values listed separately.
list=-3 -2 -1
# Same values using ranges.
list=(-3)-(-1)
# Multiple ranges.
list=(-3)-(-1) 6 8 (-10)-15
RGB colors
==========
Color values are specified in hexadecimal RGB format:
# White
color=ffffff
# Black
color=000000
# Red
color=ff0000
# Green
color=00ff00
# Blue
color=0000ff
References
==========
https://bitbucket.org/prupe/mcpatcher/wiki/About_Properties_Files
http://dinnerbone.com/media/uploads/2013-09/files/28_00-44-23_YfmAkomVI.txt
http://www.minecraftforum.net/forums/mapping-and-modding/resource-packs/1226351-1?comment=11315
http://www.minecraftforum.net/forums/mapping-and-modding/resource-packs/1226351-1?comment=11128
https://minecraft.wiki/w/Java_Edition_1.13/Flattening