If you are a texture artist, please visit the Texture Artists' Union by clicking the seal below for free feedback on textures, a great and friendly community, increased copyright protections, and other supertastic stuff.
This thread is a work in progress and I would be more than happy to include community contributions.
Okay let's get started!
===================================================
General Useful Information:
Here are the block ID's so you don't have to count each time you want to create a new .properties file.
CTM[/anchor]
CTM: Connected Textures Mod
This feature is great because it allows you to customize what blocks of the same type look like when they are adjacent to one another in a variety of ways.
There are currently SEVEN (7) methods in which you can implement CTM into your texture pack. These methods are:
Directions to use: 1. You will need to open up your texture pack folder/zip file.
2. Create a folder inside the texture pack zip/folder called "ctm" and open that up.
3. Create the following new .png files* based upon which methods you are using. IMPORTANT: Make the images the same size as your terrain.png or they will not work properly.
verticalctm.png
hortizontalctm.png
randomctm.png
repeatctm.png
topctm.png
originalctm.png
*They don't HAVE to be named like this but I recommend it for sake of simplicity and uniformity across texture packs.
4. Create .properties files using notepad (more info specific to each method below!)
You no longer have to name them block<n>.properties or terrain<n>.properties, but if you do not follow this convention, you must specify block IDs or tile numbers inside the .properties file instead.
All property names are case-sensitive.
General properties used by all methods:
(Required) Name of source texture. This can be anywhere in your texture pack and multiple .properties files can share the same source (with different tile numbers).
source=<path of png within texture pack>
(Required) Method to use when choosing a block's replacement texture:
ctm: Standard 8-way method (glass in the original CTM).
horizontal: Connect to blocks on left and right only (bookshelves).
vertical: Connect to blocks above and below only (columns)
top: Connect to block above only (sandstone).
random: Pick a tile at random.
repeat: Repeat a fixed pattern over large areas.
fixed: Use a single fixed tile. Equivalent to random with only one tile.
method=<ctm | horizontal | vertical | top | random | repeat | fixed>
(Required for some methods) List of tiles to use. Remember that tiles are indexed from left to right, top to bottom starting at 0 with 16 per row. See image at top of page. Syntax is a list of tiles or tile ranges. The following are equivalent:
tiles=4-6 8-10
tiles=4 5 6 8 9 10
tiles=<list of tiles between 0 and 255>
(Optional) Connect type. For methods that connect to adjacent blocks, specify how the game should decide if two blocks should be connected.
block: Connect if block id of this block = block id of neighbor.
tile: Connect if tile texture of this block = tile of neighbor.
The default is block for /ctm/block<id>.properties and tile for/ctm/terrain<tile>.properties.
connect=<block | tile>
(Optional) Faces. Limit the mod to only certain faces of the block.
bottom: Bottom face (negative y).
top: Top face (positive y).
north: North face (negative z).
south: South face (positive z).
east: East face (positive x).
west: West face (negative x).
sides: Shorthand for north south east west.
all: All sides.
NOTE: This property is ignored on non-standard blocks.
faces=<combination of: north south east west top bottom sides all>
(Optional) Metadata. Limit the mod to only blocks with certain metadata values. Uses the same syntax as the "tiles" property and can be any list of values between 0 and 31.
metadata=<list of values between 0 and 31>
(Optional)List of block and/or tile IDs this method should apply to.
Multiple .properties file can refer to the same block/tile and they will be processed in alphabetical order by filename. All tile-based entries are checked before block ID-based ones. The first match wins.
blockIDs=<list of block IDs 0-4095>
tileIDs=<list of tiles in terrain.png 0-255>
These two properties can be omitted if they can be inferred from the filename instead:
(Optional)Render pass. Specifies the render pass during which the new texture should be used.
0: Normal, solid block rendering pass. Virtually all blocks use this pass. Only on/off transparency is supported.
1: Existing translucent blocks (water, ice, etc.). With MCPatcher, two new rendering passes are available:
2: Same as pass #0 but with backface culling disabled. Use this to render all six faces of the glass block frame.
3: Extra pass with full alpha support. Will be hidden when rendered behind water, etc., from pass #1. The blending method can be changed in
/renderpass.properties.
renderPass=0
NOTE: Due to renderer limitations, specifying a renderPass requires block ID-based ctm (either by naming the file /ctm/block<nnn>.properties or using blockIDs=... instead of tileIDs=...), not tile number-based.
The rendering passes happen in this order: 0, 2, 1, 3
To make colored glass, you need two sets of tiles: one for the frame and another for the overlay. Here is an example, assuming the first four rows of the image are the frame and the second four are the overlay:
NOTE: We use renderPass=2 for the glass block frame (block 20) but not the glass pane (block 102). This is because the glass pane is rendered with 0 thickness which causes Z-fighting unless the back face is culled. So the default render pass of 0 is actually best.
****************************************
Let's take a closer look at each method.
CTM (The Original)
This one is the most difficult to create but the most useful of all the CTM methods. It lets you have the most versatility for how blocks appear when placed near others of the same kind.
method=ctm
source=<source png>
(Optional) List of tiles to use, must be exactly 48 tiles. The default is the upper left 12x4 area:
tiles=0-11 16-27 32-43 48-59
How to connect each texture:
Each arrow denotes where the tile needs to be seamless in order to tile right.
Vertical
One of the most common uses for this is to create columns out of stone slabs.
The order of the textures needs to be as follows:
How it looks in verticalctm.png:
method=vertical
source=<source png>
(Required) List of tiles to use, must be exactly 4 tiles. There is no default; you must specify a list here.
(Optional) List of tiles to use, must be exactly 4 tiles. The default is the rightmost 4 tiles on the first row. [For sake of left-to-right, I made the example .properties file be the first four tiles (in the top left) on the first row.]
This is perhaps the most common type used. This is extraordinarily useful because it allows the game to select from multiple textures for the same block. This can be used to add variations to any texture*, especially ores, flowers, and wildgrass.
method=random
source=<source png>
(Required) List of tiles to choose from. There is no default; you must specify a list here.
tiles=<list of tiles>
(Optional) List of weights to apply to the random choice. For example, if you have
tiles=6-11
weights=10 1 10 2 7 3
then tiles 6 and 8 will have a weight of 10, 7 will have a weight of 1, etc.
Weights do not have to total 100 or any other particular value. In the above example, tiles 6 and 8 will be used ~30.3% (10/(10+1+10+2+7+3)) of the time and so forth.
weights=<same-size list of weights>
(Optional) Desired level of symmetry for the faces of each block. Applies to standard blocks only.
none: All 6 faces are textured independently. This is the default.
opposite: 2-way symmetry; opposing faces have the same texture, but each pair can potentially have a different texture.
all: All 6 faces have the same texture.
symmetry=<none | opposite | all>
*except sidegrass. This feature seems to not work properly.
Example .png file: (ignore the sidegrass; as I said, it doesn't work properly)
In this example .png, you can see that there are multiple variations of each ore, logs, etc.
This method is great. It allows you to take a pattern larger than your resolution and tile it. For example, you can take a 128x128 stone texture and make it tile in your 16x texture pack. This will tile 8 blocks x 8 blocks, giving much room for increased variation.
method=repeat
source=<source png>
(Required) Width of the repeating pattern.
width=<width of pattern>
(Required) Height of the repeating pattern.
height=<height of pattern>
(Required) List of exactly width * height tiles. You do not have to arrange them in a rectangle, but doing so makes things easier to see how the pattern will look in-game. The total area cannot exceed 256 tiles, but a 20x12 pattern is permissible.
tiles=<list of width * height tiles>
(Optional) Desired level of symmetry for the faces of each block. Applies to standard blocks only.
none: All 6 faces are textured so that the pattern tiling looks the same from
all sides. This is the default.
opposite: 2-way symmetry; opposing faces have the same texture, which means
that tiling on the south and east faces will be mirrored left-to-right from
compared to the north and west faces.
symmetry=<none | opposite>
Example images:
Example .properties file (for the sand example used above)
-----SPECIAL APPLICATIONS-----
I know many of you may want to do dirt and grass this way. However, it looks horrible unless you make your sidegrass use the same method. Here is my example of how to do it right:
Grass texture:
Sidegrass texture:
Dirt texture:
You are going to use the following filenames for the .properties files.
Fixed
Use a single fixed tile. Works much like random but with only one tile.
method=fixed
source=<source png>
# (Required) Single tile to use.
tiles=<single tile>
Better Skies[/anchor]
Better Skies is a much-desired addition to the game for many texture artists. This allows you to change what the sky looks like to suit your pack.
1. You will need to open up your texture pack folder/zip file.
2. Locate the FOLDER inside the texture pack zip/folder called "terrain" and open that up.
3. Create a new folder (inside the terrain folder) called sky0
4. Create a new .png file called sky0 inside the sky0 folder. Make sure the dimensions are 3x by 2x, where x is the resolution of your texture pack.
To get the correct tiling, follow the guide images below, making sure each number is matched up with the appropriate connecting side in the appropriate rotation.
5. Create a new file called sky0.properties (to do this, open up notepad and make sure to save it as a .properties file)
Each file represents one layer of sky. MCPatcher will continue loading them until a .properties file is not found. The order is the order in which they will be rendered in game. NOTE: The "sky0" folder in the path refers to the overworld. If there were other worlds with skies (the Nether and End do not use the standard sky rendering methods), they would be in /terrain/sky<world number>. You only need to provide values for the properties you wish to change. (This is not common.) The default Minecraft values for each property are given below for convenience. Property names are case-sensitive.
Here are the different properties you can include in the .properties file:
(Optional) Name of source texture. This can be anywhere in your texture pack and multiple .properties files can share the same source. If not specified /terrain/sky0/sky<n>.png is used, but I recommend including the path.
source=<path of png within texture pack>
(Required) Fade in/out times. All times are in hh:mm [24-hour format]
For reference:
Sunrise = 6:00 = /time set 0
Noon = 12:00 = /time set 6000
Sunset = 18:00 = /time set 12000
Midnight = 0:00 = /time set 18000
The fade times control the brightness when blending.
between startFadeIn and endFadeIn: 0 up to 1
between endFadeIn and startFadeOut: always 1
between startFadeOut and endFadeOut: 1 down to 0
between endFadeOut and startFadeIn: always 0
(Note that you do not need to specify startFadeOut; its value is uniquely determined by the other three.)
(Optional) Blending method. Here "previous" can refer to the default sky or to the previous custom sky defined by sky<n-1>.properties. Supported blending methods are
add: Add this sky bitmap to the previous.
subtract:
multiply: Multiply the previous RGBA values by the RGBA values in the current bitmap.
dodge:
burn:
screen:
replace: Replace the previous entirely with the current bitmap. There is no gradual fading with this method; if brightness computed from the fade times is > 0, the full pixel value is used.
(The default method is add.)
blend=add
(Optional) Rotation. Whether or not the bitmap should rotate with the time of day. (The default is true.)
I have noticed that in order to make a second sky work and have it fade well you should use the "screen" method of blending. Here is an example sky1.properties
6. You can have an infinite number of "skies" in the sky0 folder. To add more, simply create additional .png and .properties files with the names sky1, sky2, etc. and repeat steps 4 and 5.
Custom Colors[/anchor]
There is a lot you can do with the custom colors mod: change the colors of light, fog, custom biome colorings, etc.
Below is a full list of files used by the Custom Colors mod:
/color.properties
/misc/redstonecolor.png - 16x1 redstone colors (0=fully off, 15=fully on)
/misc/stemcolor.png - 8x1 pumpkin/melon stem colors (0=sprout, 7=fully grown)
/misc/lavadropcolor.png - Nx1 lava drop colors (x=age of particle in ticks)
/misc/myceliumparticlecolor.png - any size, random mycelium particle colors
/misc/xporbcolor.png - any size, array of xp orb colors
/misc/swampgrasscolor.png - 256x256 swamp grass color palette
/misc/swampfoliagecolor.png - 256x256 swamp foliage color palette
/misc/pinecolor.png - 256x256 pine tree color palette
/misc/birchcolor.png - 256x256 birch tree color palette
/misc/watercolorX.png - 256x256 water color palette
/misc/underwatercolor.png - 256x256 underwater color
/misc/fogcolor0.png - 256x256 fog color for the overworld
/misc/skycolor0.png - 256x256 sky color for the overworld
/environment/lightmap0.png - Nx32 overworld lighting palettes
/environment/lightmap-1.png - Nx32 Nether lighting palettes
/environment/lightmap1.png - Nx32 End lighting palettes
To begin:
1. You will need to open up your texture pack folder/zip file.
2. Create a new .properties file called color.properties
You only need to provide values for the properties you wish to change. The default Minecraft values for each property are given below for convenience. Property names are case-sensitive. All colors are in hex color format, 000000 to ffffff. Convert from RGB to HEX
Base water particle (splashes, bubbles, drops) color.
Biome water color multiplier is applied to this value. The value should match the color of your base water texture. If your base water texture is grey so that you do coloring via /misc/watercolorX.png, you should set this to ffffff.
particle.water=334cff
Base portal particle color: a random multiplier between 0.4 and 1.0 is applied to all three r/g/b values.
particle.portal=ff4ce5
Nether and End colors:
fog.nether=330707
fog.end=131318
sky.end=181818
Lilypad color:
This is a single color that is used across all biomes.
lilypad=208030
Colors for each potion effect:
Final color is the average of these colors weighted by level of each potion effect.
You may assign custom biome palettes to any standard block (i.e. one that does not already have its own special color multiplier method). The syntax for this in color.properties is
palette.block.<image in texture pack>=<list of block IDs>
The image must exist in your texture pack and must be 256x256. For example, to color all stone and ore blocks with /misc/stonecolor.png
1. You will need to open up your texture pack folder/zip file.
2. Create a new folder called anim
3. Create a new .png file using the naming pattern described below inside the anim folder. Make it x pixels wide (x is the resolution of your pack). The height doesn't matter so long as it is divisible by x. Each image should be a vertical strip of separate frames.
Custom animations are read from these files, all in the anim/ folder of the texture pack .zip/folder
How to Assemble an Animation:
1. Begin by first creating your base texture (don't forget to check for tiling errors). For my example I will use this water texture I created:
2. Animate the texture.
There are many ways to animate a texture and most of them have a specific use or purpose. For low-resolution textures (32x or lower) the easiest method is to copy the base image, move it down to the next frame, edit it slightly, copy the edited texture, move it to the next frame and repeat. For HD textures (64x and up) the easiest method to use is to apply animation filters to the texture. In GIMP and Photoshop there are a variety of filters you can use, so find which ones suit your style.
When animating a texture with a filter, it will create a multi-layer image. This image will not be read by minecraft so you need to:
3. Copy each frame to the tall image. It is easiest to set a grid up with snap-to's with the grid being x by x pixels, where x is the resolution of the texture.
4. Make sure to lower the opacity to the desired setting, otherwise you will not be able to see through the texture. (mostly for water and portal animations)
5. For FLOWING lava/water animations, simply scale the image's height by one frame. NOTE: the height has to be divisible by the texture's resolution
files:
custom_fire_n_s.png
custom_fire_e_w.png
(this is the hardest animation, in my opinion.)
*The screen overlay for when you are on fire is rendered from the above files tiled twice across the bottom of the screen, and it supports partial transparency. However, the fire on blocks, while rendered from the same files, does NOT support partial transparency, EXCEPT in the Nether. I would expect to see this fixed at some point.
example .png's (without opacity lowered):
Custom Terrain Animations:
You can create an animation for any tile in terrain.png. ### is the tile index (0-255), not a block or item ID (see image at top of page)
This has a wide variety of applications, notably torch and furnace animations.
files:
custom_terrain_###.png
example .png:
Custom Item Animations:
You can create an animation for any tile in items.png. ### is the tile index (0-255), not a block or item ID
files:
custom_item_###.png
=============================================
Each custom animation may also specify its animation speed and frame order. Create a text file with the same name as the animation but change .png to .properties. In the file, make a series of entries
tile.X=Y
duration.X=Z
X starts at 0 and represents the order you want frames to display in. Y is the tile number in the animation .png file. The first tile is 0, the second is 1, etc. Z is the duration you want that frame displayed, in game ticks (if omitted, duration is assumed to be 1 for that frame). For example, to make an animation with 3 tiles, run on a 5-frame animation with a pause in the middle, the .properties file might look like this:
You may create a custom animation for any texture in the game. Create a .properties file in the anim/ folder of your texture pack. In it, supply the source and destination texture, along with coordinates of the area you wish to animate. The following example animates the first painting in kz.png.
"from" is the location of your custom animation. "to" is the texture you wish to animate. "x, y, w, h" are the coordinates of the rectangular area of that texture. The width of the "from" texture should be equal to the value of "w"; if not, it will be scaled automatically. You can have many different animations applied to the same texture by creating separate properties files for each. The properties file can also contain tile order and speed information as described above.
Random Mobs
-coming soon-
HD Fonts
-coming soon-
Better Glass
(Optional)Blending method for render pass 3. This will be applied to all blocks using that rendering pass.
alpha: Normal alpha-based blending. This is the default.
overlay: Overlay blending based on color. RGB values > 0.5 brighten the color behind it, < 0.5 darkens, and 0.5 is neutral.
blend.3=alpha
(Optional)Whether to enable lighting on textures drawn during render pass 3.
Particularly for overlay blending, this may not be desirable. The default is true for alpha blending and false for overlay blending.
enableLightmap.3=true
ALL EXAMPLES ARE MADE BY DRFROZENFIRE (except the Original CTM image). MOST ARE TAKEN FROM THE SYNTHETIC REALITY 256X TEXTURE PACK.
Any images used herein are copyrighted and licensed to Drfrozenfire. Permission to use these images must be granted by Drfrozenfire.
I hate these forums sometimes! Ever since they took out the compatibility veiw option, I can't open some spoilers, in this case the CTM part, and that is the one I least understand!
Rollback Post to RevisionRollBack
The official Bluebird continuation is underway! Please come and help keep the pack alive!
This guide is a great boon. I've been thinking about using CTM for the logs but was leery about it. Reading that section has made me feel confident that I'll get it working with little problem.
nice topic however i feel that it should be in the texturing guide that is pinned, because well that is what that topic is pinned for, to help people understand how to make a texture pack.
i feel that this topic comes under that.
but this has to do with how to texture with a mod. This isn't vanilla texturing.
INDEX
General Useful Information
CTM
Better Skies
Custom Colors
Custom Animations
Random Mobs
HD Fonts
Better Glass
This thread is a work in progress and I would be more than happy to include community contributions.
Okay let's get started!
===================================================
General Useful Information:
Here are the block ID's so you don't have to count each time you want to create a new .properties file.
CTM[/anchor]
CTM: Connected Textures Mod
This feature is great because it allows you to customize what blocks of the same type look like when they are adjacent to one another in a variety of ways.
There are currently SEVEN (7) methods in which you can implement CTM into your texture pack. These methods are:
- CTM (The Original)
- Vertical
- Horizontal
- Top
- Random
- Repeat
- Fixed
Directions to use:
1. You will need to open up your texture pack folder/zip file.
2. Create a folder inside the texture pack zip/folder called "ctm" and open that up.
3. Create the following new .png files* based upon which methods you are using. IMPORTANT: Make the images the same size as your terrain.png or they will not work properly.
verticalctm.png
hortizontalctm.png
randomctm.png
repeatctm.png
topctm.png
originalctm.png
*They don't HAVE to be named like this but I recommend it for sake of simplicity and uniformity across texture packs.
4. Create .properties files using notepad (more info specific to each method below!)
You no longer have to name them block<n>.properties or terrain<n>.properties, but if you do not follow this convention, you must specify block IDs or tile numbers inside the .properties file instead.
All property names are case-sensitive.
General properties used by all methods:
(Required) Name of source texture. This can be anywhere in your texture pack and multiple .properties files can share the same source (with different tile numbers).
(Required) Method to use when choosing a block's replacement texture:
ctm: Standard 8-way method (glass in the original CTM).
horizontal: Connect to blocks on left and right only (bookshelves).
vertical: Connect to blocks above and below only (columns)
top: Connect to block above only (sandstone).
random: Pick a tile at random.
repeat: Repeat a fixed pattern over large areas.
fixed: Use a single fixed tile. Equivalent to random with only one tile.
(Required for some methods) List of tiles to use. Remember that tiles are indexed from left to right, top to bottom starting at 0 with 16 per row. See image at top of page. Syntax is a list of tiles or tile ranges. The following are equivalent:
tiles=4-6 8-10
tiles=4 5 6 8 9 10
(Optional) Connect type. For methods that connect to adjacent blocks, specify how the game should decide if two blocks should be connected.
block: Connect if block id of this block = block id of neighbor.
tile: Connect if tile texture of this block = tile of neighbor.
The default is block for /ctm/block<id>.properties and tile for/ctm/terrain<tile>.properties.
(Optional) Faces. Limit the mod to only certain faces of the block.
bottom: Bottom face (negative y).
top: Top face (positive y).
north: North face (negative z).
south: South face (positive z).
east: East face (positive x).
west: West face (negative x).
sides: Shorthand for north south east west.
all: All sides.
NOTE: This property is ignored on non-standard blocks.
(Optional) Metadata. Limit the mod to only blocks with certain metadata values. Uses the same syntax as the "tiles" property and can be any list of values between 0 and 31.
(Optional)List of block and/or tile IDs this method should apply to.
Multiple .properties file can refer to the same block/tile and they will be processed in alphabetical order by filename. All tile-based entries are checked before block ID-based ones. The first match wins.
These two properties can be omitted if they can be inferred from the filename instead:
/ctm/block<id>.properties assumes
blockIDs=<id>
tileIDs=
/ctm/terrain<tile>.properties assumes
blockIDs=
tileIDs=<tile>
unless you specify them explicitly.
(Optional)Render pass. Specifies the render pass during which the new texture should be used.
0: Normal, solid block rendering pass. Virtually all blocks use this pass. Only on/off transparency is supported.
1: Existing translucent blocks (water, ice, etc.). With MCPatcher, two new rendering passes are available:
2: Same as pass #0 but with backface culling disabled. Use this to render all six faces of the glass block frame.
3: Extra pass with full alpha support. Will be hidden when rendered behind water, etc., from pass #1. The blending method can be changed in
NOTE: Due to renderer limitations, specifying a renderPass requires block ID-based ctm (either by naming the file /ctm/block<nnn>.properties or using blockIDs=... instead of tileIDs=...), not tile number-based.
The rendering passes happen in this order: 0, 2, 1, 3
To make colored glass, you need two sets of tiles: one for the frame and another for the overlay. Here is an example, assuming the first four rows of the image are the frame and the second four are the overlay:
NOTE: We use renderPass=2 for the glass block frame (block 20) but not the glass pane (block 102). This is because the glass pane is rendered with 0 thickness which causes Z-fighting unless the back face is culled. So the default render pass of 0 is actually best.
****************************************
Let's take a closer look at each method.
CTM (The Original)
This one is the most difficult to create but the most useful of all the CTM methods. It lets you have the most versatility for how blocks appear when placed near others of the same kind.
(Optional) List of tiles to use, must be exactly 48 tiles. The default is the upper left 12x4 area:
How to connect each texture:
Each arrow denotes where the tile needs to be seamless in order to tile right.
Vertical
One of the most common uses for this is to create columns out of stone slabs.
The order of the textures needs to be as follows:
How it looks in verticalctm.png:
(Required) List of tiles to use, must be exactly 4 tiles. There is no default; you must specify a list here.
example .properties file:
Horizontal
(Optional) List of tiles to use, must be exactly 4 tiles. The default is the rightmost 4 tiles on the first row. [For sake of left-to-right, I made the example .properties file be the first four tiles (in the top left) on the first row.]
example .properties file:
Top
(Optional) Only one tile is needed.
example .properties file:
Random
This is perhaps the most common type used. This is extraordinarily useful because it allows the game to select from multiple textures for the same block. This can be used to add variations to any texture*, especially ores, flowers, and wildgrass.
(Required) List of tiles to choose from. There is no default; you must specify a list here.
(Optional) List of weights to apply to the random choice. For example, if you have
then tiles 6 and 8 will have a weight of 10, 7 will have a weight of 1, etc.
Weights do not have to total 100 or any other particular value. In the above example, tiles 6 and 8 will be used ~30.3% (10/(10+1+10+2+7+3)) of the time and so forth.
(Optional) Desired level of symmetry for the faces of each block. Applies to standard blocks only.
none: All 6 faces are textured independently. This is the default.
opposite: 2-way symmetry; opposing faces have the same texture, but each pair can potentially have a different texture.
all: All 6 faces have the same texture.
*except sidegrass. This feature seems to not work properly.
Example .png file: (ignore the sidegrass; as I said, it doesn't work properly)
Example .properties file:
Repeat
This method is great. It allows you to take a pattern larger than your resolution and tile it. For example, you can take a 128x128 stone texture and make it tile in your 16x texture pack. This will tile 8 blocks x 8 blocks, giving much room for increased variation.
(Required) Width of the repeating pattern.
(Required) Height of the repeating pattern.
(Required) List of exactly width * height tiles. You do not have to arrange them in a rectangle, but doing so makes things easier to see how the pattern will look in-game. The total area cannot exceed 256 tiles, but a 20x12 pattern is permissible.
(Optional) Desired level of symmetry for the faces of each block. Applies to standard blocks only.
none: All 6 faces are textured so that the pattern tiling looks the same from
all sides. This is the default.
opposite: 2-way symmetry; opposing faces have the same texture, which means
that tiling on the south and east faces will be mirrored left-to-right from
compared to the north and west faces.
Example images:
Example .properties file (for the sand example used above)
-----SPECIAL APPLICATIONS-----
I know many of you may want to do dirt and grass this way. However, it looks horrible unless you make your sidegrass use the same method. Here is my example of how to do it right:
Grass texture:
Sidegrass texture:
Dirt texture:
You are going to use the following filenames for the .properties files.
terrain0.properties
terrain2.properties
terrain3.properties
Fixed
Use a single fixed tile. Works much like random but with only one tile.
Better Skies[/anchor]
Better Skies is a much-desired addition to the game for many texture artists. This allows you to change what the sky looks like to suit your pack.
1. You will need to open up your texture pack folder/zip file.
2. Locate the FOLDER inside the texture pack zip/folder called "terrain" and open that up.
3. Create a new folder (inside the terrain folder) called sky0
4. Create a new .png file called sky0 inside the sky0 folder. Make sure the dimensions are 3x by 2x, where x is the resolution of your texture pack.
To get the correct tiling, follow the guide images below, making sure each number is matched up with the appropriate connecting side in the appropriate rotation.
5. Create a new file called sky0.properties (to do this, open up notepad and make sure to save it as a .properties file)
Each file represents one layer of sky. MCPatcher will continue loading them until a .properties file is not found. The order is the order in which they will be rendered in game. NOTE: The "sky0" folder in the path refers to the overworld. If there were other worlds with skies (the Nether and End do not use the standard sky rendering methods), they would be in /terrain/sky<world number>. You only need to provide values for the properties you wish to change. (This is not common.) The default Minecraft values for each property are given below for convenience. Property names are case-sensitive.
Here are the different properties you can include in the .properties file:
(Optional) Name of source texture. This can be anywhere in your texture pack and multiple .properties files can share the same source. If not specified /terrain/sky0/sky<n>.png is used, but I recommend including the path.
(Required) Fade in/out times. All times are in hh:mm [24-hour format]
For reference:
Sunrise = 6:00 = /time set 0
Noon = 12:00 = /time set 6000
Sunset = 18:00 = /time set 12000
Midnight = 0:00 = /time set 18000
The fade times control the brightness when blending.
between startFadeIn and endFadeIn: 0 up to 1
between endFadeIn and startFadeOut: always 1
between startFadeOut and endFadeOut: 1 down to 0
between endFadeOut and startFadeIn: always 0
(Note that you do not need to specify startFadeOut; its value is uniquely determined by the other three.)
(Optional) Blending method. Here "previous" can refer to the default sky or to the previous custom sky defined by sky<n-1>.properties. Supported blending methods are
add: Add this sky bitmap to the previous.
subtract:
multiply: Multiply the previous RGBA values by the RGBA values in the current bitmap.
dodge:
burn:
screen:
replace: Replace the previous entirely with the current bitmap. There is no gradual fading with this method; if brightness computed from the fade times is > 0, the full pixel value is used.
(The default method is add.)
(Optional) Rotation. Whether or not the bitmap should rotate with the time of day. (The default is true.)
example sky0.properties:
I have noticed that in order to make a second sky work and have it fade well you should use the "screen" method of blending. Here is an example sky1.properties
6. You can have an infinite number of "skies" in the sky0 folder. To add more, simply create additional .png and .properties files with the names sky1, sky2, etc. and repeat steps 4 and 5.
Custom Colors[/anchor]
There is a lot you can do with the custom colors mod: change the colors of light, fog, custom biome colorings, etc.
INDEX:
File list
Base water particle (splashes, bubbles, drops) color.
Nether and End colors
Lilypad color
Colors for each potion effect
Spawner Egg colors
Map colors
Sheep colors
Text colors
Custom Biome palettes
Below is a full list of files used by the Custom Colors mod:
/color.properties
/misc/redstonecolor.png - 16x1 redstone colors (0=fully off, 15=fully on)
/misc/stemcolor.png - 8x1 pumpkin/melon stem colors (0=sprout, 7=fully grown)
/misc/lavadropcolor.png - Nx1 lava drop colors (x=age of particle in ticks)
/misc/myceliumparticlecolor.png - any size, random mycelium particle colors
/misc/xporbcolor.png - any size, array of xp orb colors
/misc/swampgrasscolor.png - 256x256 swamp grass color palette
/misc/swampfoliagecolor.png - 256x256 swamp foliage color palette
/misc/pinecolor.png - 256x256 pine tree color palette
/misc/birchcolor.png - 256x256 birch tree color palette
/misc/watercolorX.png - 256x256 water color palette
/misc/underwatercolor.png - 256x256 underwater color
/misc/fogcolor0.png - 256x256 fog color for the overworld
/misc/skycolor0.png - 256x256 sky color for the overworld
/environment/lightmap0.png - Nx32 overworld lighting palettes
/environment/lightmap-1.png - Nx32 Nether lighting palettes
/environment/lightmap1.png - Nx32 End lighting palettes
To begin:
1. You will need to open up your texture pack folder/zip file.
2. Create a new .properties file called color.properties
You only need to provide values for the properties you wish to change. The default Minecraft values for each property are given below for convenience. Property names are case-sensitive. All colors are in hex color format, 000000 to ffffff.
Convert from RGB to HEX
Base water particle (splashes, bubbles, drops) color.
Biome water color multiplier is applied to this value. The value should match the color of your base water texture. If your base water texture is grey so that you do coloring via /misc/watercolorX.png, you should set this to ffffff.
Base portal particle color: a random multiplier between 0.4 and 1.0 is applied to all three r/g/b values.
Nether and End colors:
Lilypad color:
This is a single color that is used across all biomes.
Colors for each potion effect:
Final color is the average of these colors weighted by level of each potion effect.
potion.water represents a plain bottle of water
Spawner Egg colors:
Map colors:
Sheep colors:
Text colors:
color of exp level text
color of "Boss Health" text
color of sign text
color codes generated by \247 + 0123456789abcdef
Custom Biome palettes:
You may assign custom biome palettes to any standard block (i.e. one that does not already have its own special color multiplier method). The syntax for this in color.properties is
The image must exist in your texture pack and must be 256x256. For example, to color all stone and ore blocks with /misc/stonecolor.png
Block ID + metadata is also supported using the following syntax:
Custom Animations[/anchor]
This is very handy. It allows you to create animated textures, items, etc. It is common to animate torches and furnaces.
It is important to note that unless otherwise specified, animations do NOT support partial transparency.
INDEX:
How to Assemble an Animation
Water Animations
Lava Animations
Portal Animation
Fire Animations
Custom Terrain Animations
Custom Item Animations
1. You will need to open up your texture pack folder/zip file.
2. Create a new folder called anim
3. Create a new .png file using the naming pattern described below inside the anim folder. Make it x pixels wide (x is the resolution of your pack). The height doesn't matter so long as it is divisible by x. Each image should be a vertical strip of separate frames.
Custom animations are read from these files, all in the anim/ folder of the texture pack .zip/folder
How to Assemble an Animation:
1. Begin by first creating your base texture (don't forget to check for tiling errors). For my example I will use this water texture I created:
2. Animate the texture.
There are many ways to animate a texture and most of them have a specific use or purpose. For low-resolution textures (32x or lower) the easiest method is to copy the base image, move it down to the next frame, edit it slightly, copy the edited texture, move it to the next frame and repeat. For HD textures (64x and up) the easiest method to use is to apply animation filters to the texture. In GIMP and Photoshop there are a variety of filters you can use, so find which ones suit your style.
When animating a texture with a filter, it will create a multi-layer image. This image will not be read by minecraft so you need to:
3. Copy each frame to the tall image. It is easiest to set a grid up with snap-to's with the grid being x by x pixels, where x is the resolution of the texture.
4. Make sure to lower the opacity to the desired setting, otherwise you will not be able to see through the texture. (mostly for water and portal animations)
5. For FLOWING lava/water animations, simply scale the image's height by one frame. NOTE: the height has to be divisible by the texture's resolution
Water Animations:
This animation supports partial transparency.
files:
custom_water_still.png
custom_water_flowing.png
example .png's (without the opacity lowered):
still water
Lava Animations:
files:
custom_lava_still.png
custom_lava_flowing.png
example .png's:
still lava
Portal Animation:
This animation supports partial transparency.
file:
custom_portal.png
example .png:
Fire Animations:
This animation supports partial transparency*
files:
custom_fire_n_s.png
custom_fire_e_w.png
(this is the hardest animation, in my opinion.)
*The screen overlay for when you are on fire is rendered from the above files tiled twice across the bottom of the screen, and it supports partial transparency. However, the fire on blocks, while rendered from the same files, does NOT support partial transparency, EXCEPT in the Nether. I would expect to see this fixed at some point.
example .png's (without opacity lowered):
Custom Terrain Animations:
You can create an animation for any tile in terrain.png. ### is the tile index (0-255), not a block or item ID (see image at top of page)
This has a wide variety of applications, notably torch and furnace animations.
files:
custom_terrain_###.png
example .png:
Custom Item Animations:
You can create an animation for any tile in items.png. ### is the tile index (0-255), not a block or item ID
files:
custom_item_###.png
=============================================
Each custom animation may also specify its animation speed and frame order. Create a text file with the same name as the animation but change .png to .properties. In the file, make a series of entries
X starts at 0 and represents the order you want frames to display in. Y is the tile number in the animation .png file. The first tile is 0, the second is 1, etc. Z is the duration you want that frame displayed, in game ticks (if omitted, duration is assumed to be 1 for that frame). For example, to make an animation with 3 tiles, run on a 5-frame animation with a pause in the middle, the .properties file might look like this:
You may create a custom animation for any texture in the game. Create a .properties file in the anim/ folder of your texture pack. In it, supply the source and destination texture, along with coordinates of the area you wish to animate. The following example animates the first painting in kz.png.
"from" is the location of your custom animation. "to" is the texture you wish to animate. "x, y, w, h" are the coordinates of the rectangular area of that texture. The width of the "from" texture should be equal to the value of "w"; if not, it will be scaled automatically. You can have many different animations applied to the same texture by creating separate properties files for each. The properties file can also contain tile order and speed information as described above.
Random Mobs
-coming soon-
HD Fonts
-coming soon-
Better Glass
(Optional)Blending method for render pass 3. This will be applied to all blocks using that rendering pass.
alpha: Normal alpha-based blending. This is the default.
overlay: Overlay blending based on color. RGB values > 0.5 brighten the color behind it, < 0.5 darkens, and 0.5 is neutral.
(Optional)Whether to enable lighting on textures drawn during render pass 3.
Particularly for overlay blending, this may not be desirable. The default is true for alpha blending and false for overlay blending.
ALL EXAMPLES ARE MADE BY DRFROZENFIRE (except the Original CTM image). MOST ARE TAKEN FROM THE SYNTHETIC REALITY 256X TEXTURE PACK.
Any images used herein are copyrighted and licensed to Drfrozenfire. Permission to use these images must be granted by Drfrozenfire.
I hope this guide will help you and anyone else
you simply need to refresh the page. I had a typo
Hmmm. Might have to do that tomorrow...
*salutes*
...But that's just my opinion.
My DeviantART, requests welcome.
B14 - My Texture Pack!
Need textures for your mod? Inquire within, just read the rules.
Do the custom colors work with Optifine?
I honestly had no idea there was so much for CTM, probably why I was struggling to do anything with it.
but this has to do with how to texture with a mod. This isn't vanilla texturing.
I play Slave Hack, give it a try!