If you have delved into the art of texturepack making, you may have heard the word CTM. 'What is this strange word?', you may ask. This is, in fact, not a word but an acronym of the phrase, Connected Textures Mod.
Originally, this mod made the glass, chests and bookshelves seamless. Texturepack functionality was added later for other blocks and other features such as randomised, repeated and fixed textures were made available later by MCPatcher.
This guide aims to detail how one uses CTM in a simple and concise fashion. If you find any errors, please do not hesitate to tell me.
There is a dual-colour system in this guide.
● text means it is important or required. Always read these parts.
● text means it is a helpful tip or something which is optional. You can skip over these if you want.
Getting It
How do I get this mod? You may find that the thread for it lists 1.2.5 as the latest version. But, never fear, this mod is bundled along with MCPatcher and Optifine. We will be covering the MCPatcher version in this thread.
Now, go to the /minecraft folder and create a new folder named mcpatcher like so:
Click on your newly created mcpatcher folder and create another folder called ctm. This is where all of our CTM is going to go.
That's it! Now, for the fun part...
How CTM Works
CTM is made by having textures in a folder in the ctm folder. This folder can be named anything and is called in this guide, the base folder. It is advised, however, to name your base folder based on its contents so you can easily find them.
~/minecraft/mcpatcher/ctm/dirtblock/
and
~/minecraft/mcpatcher/ctm/stupidbrownblock/
both work however the first one is more descriptive and may be better in the long run.
You can put multiple block textures inside a single base folder however it may be better to separate blocks into different materials.
Your textures can be named anything however they must be 16px for default resolution packs, 32px for 32px packs and so on. In this guide, textures will be named 0.png, 1.pnget cetera however they can be named however you like in your pack. Thus, 0.png and cakeTop.png will both work.
The thing which makes it all tick is a file called blockID.properties located inside the base folder. This file is named depending on which block the CTM code inside should modify.
The structure of the name is generally as follows.
block<block ID>.properties
You only have to modify the block ID part. A list of block IDs can be found here. If you need two CTM methods on the same block, simply append a or b or cet cetera to the end of the block ID like so:
block3a.properties
or
block15b.properties
To be honest, you can name your properties file anything however if so, you require a matchBlocks or matchTiles rule inside as shown below:
matchBlocks=<block IDs>
or
matchTiles=<tile names>
If using multiple block IDs or names, they should be separated by spaces.
To refer to a tile in vanilla MC, use the name of the texture in texture/blocks.
To refer to a tile in a mod, use the name of the texture in the mod's texture folder.
Tiles can also refer to tiles used in other .properties files. More information is located here.
By default, the default blockID.properties will load first, then the rest in alphabetical.
The weight rule tells CTM which .properties file to load first.
To use it, put this in your file:
weight=<weight>
The highest weight is loaded first. In the event of a tie, the file names are looked at next. Make sure you write weight, not weights.
weight is given precedent over matchTiles is given precedent over matchBlocks which is given precedent over the filename of the .properties file.
Thus, a block65.properties with matchBlocks=43 will apply to the block with the ID of 43, not the block with the ID of 65.
Methods
There are multiple methods which CTM uses to allow you to manipulate the textures of blocks in different ways.
These methods should be declared at the top of your blockID.properties file as shown below:
method=<method>
There are 9 CTM methods available:
ctm
horizontal
vertical
horizontal+vertical
vertical+horizontal
top
random
repeat
fixed
The function of these methods is explained below in greater detail.
Tiles blockID.properties also requires you to define which textures to use since there can be a varying number of textures in a single base folder.
To specify which textures, or tiles, to use, add this below your method.
tiles=<list of tiles>
Essentially, you are specifying which textures to use for the CTM.
You can specify tiles in multiple ways.
tiles=0 1 2 3
tells CTM to use tiles 0.png, 1.png, 2.png and 3.png.
tiles=0-3
also tells CTM to use tiles 0.png, 1.png, 2.png and 3.png.
You can also specify tiles with custom names:
tiles=dirt1.png dirt_with_fossil.png crumbly_dirt
This will use dirt1.png,dirt_with_fossil.png and crumbly_dirt.png.
The .png suffix is not required.
Another way of specifying tiles is by using the full path.
This will use /mcpatcher/ctm/dirt/green_alien_dirt.png, mossdirt.png, 0.png and 1.png.
For all specification methods other than full path, the texture file must be in the same directory as the blockID.properties file.
For all specification methods other than full path, the .png suffix is not required.
Connection Type
For methods which connect textures such as Classic CTM and Horizontal CTM, this optional rule specifies how the game should connect textures.
To use it, add this to your blockID.properties.
connect=<connection type>
There are three kinds of connection:
block
tile
material
block connections connect if the block ID is the same as the block ID of its neighbour. This is the default connection. tile connections connect if the tile is the same as the tile of its neighbour. material connections connect if the material of its neighbour is the same as its own.
Faces
This rule limits the CTM in a particular blockID.properties to a specific face or faces.
To use it, add this to your blockID.properties.
faces=<list of faces>
Valid faces are listed below:
bottom
top
north
south
east
west
sides
all
The bottom face is the bottom face, -y.
The top face is the top face, +y.
The north face is -z.
The south face is +z.
The east face is +x
The west face is -x. sides is the north, south, east and west faces. all is all faces.
Metadata
Another thing you can do is limit the CTM to a specific metadata. If you do not know what metadata is, it is essentially extra data in a block which tells it extra information like what colour it is, direction or what type of wood.
To do this, add this in your blockID.properties file:
metadata=<metadata>
The metadata is specified in the same fashion as tiles, utilising spaces, hyphens or a mix of both.
Biome and Height
This rule limits the CTM to a specific biome and/or height. This can be useful by allowing different types of stone at different levels and allowing snow covered flowers in taigas and mossy planks in swamps.
To use it, add this in your blockID.properties file:
biomes=<List of biome names>
Ocean
Plains
Sunflower Plains
Desert
Desert M
Extreme Hills
Extreme Hills M
Forest
Flower Forest
Taiga
Taiga M
Swampland
Swampland M
River
Hell
Sky
FrozenOcean
FrozenRiver
Ice Plains
Ice Plains Spikes
Ice Mountains
MushroomIsland
MushroomIslandShore
Beach
DesertHills
ForestHills
TaigaHills
Extreme Hills Edge
Jungle
Jungle M
JungleHills
JungleEdge
JungleEdge M
Deep Ocean
Stone Beach
Cold Beach
Birch Forest
Birch Forest M
Birch Forest Hills
Birch Forest Hills M
Roofed Forest
Roofed Forest M
Cold Taiga
Cold Taiga M
Cold Taiga Hills
Mega Taiga
Mega Spruce Taiga
Mega Taiga Hills
Mega Spruce Taiga Hills
Extreme Hills+
Extreme Hills+ M
Savanna
Savanna M
Savanna Plateau
Savanna Plateau M
Mesa
Mesa (Bryce)
Mesa Plateau F
Mesa Plateau F M
Mesa Plateau
Mesa Plateau M
Please note the Savannah biomes are spelt wrongly without an 'h'.
To use height restrictions, add this to your blockID.properties:
The min height is the lower y coordinate you wish your block to start appearing at. The maxHeight is the upper boundary of where you wish to your texture to start appearing.
Weights Did you mean weight which tells CTM which properties file to load first?
No, no, weight is not the obesity of a texture. It is how common it is. It is only used with the random method and specifies how common a specific texture should be.
To use weight, add this in your blockID.properties.
weights=5 2 7 2 9
Make sure you write weights, not weight.
The weights are linked to your tiles. The first weight corresponds to the first tile, the second weight the second tile and so on.
Weights do not have to add up to anything and the higher the weight is, the more common it will be.
There is no maximum weight.
tile=0 1
weights=20 1
This will give 20 0.pngs to every one 1.png.
Symmetry
Symmetry is another random method only rule. Add this to the blockID.properties to use it.
symmetry=<symmetry type>
There are three kinds of symmetry:
none
opposite
all
If you choose none symmetry, all sides of the block will be textured independently. This does not mean they cannot be the same, it merely means they will be textured completely randomly. This is the default symmetry.
In opposite symmetry, opposing sides will have the same texture but each pair can have different textures.
In all symmetry, all sides will have the same texture. This is good for textures which change colour or design.
Layered CTM
A CTM rule can also act as the source for another CTM rule. You can use this to make randomised bookshelves that also have horizontal CTM.
Simply use the matchTiles rule to target the specific texture the horizontal CTM uses to apply random textures.
An example is shown below:
# The main bookshelf properties file
block47.properties:
method=horizontal
tiles=0-3
# For every tile you want to randomise, make a new properties file.
block47a.properties
matchTiles=0.png
method=random
tiles=4 5 6
block47b.properties
matchTiles=0.png
method=random
tiles=4 5 6
block47c.properties
matchTiles=1.png
method=random
tiles=7-9
block47d.properties
matchTiles=2.png
method=random
tiles=10 11-13
As you can see, we can specify random textures for each of the horizontal CTM tiles, thereby making randomised horizontal CTM.
Classic CTM
This is the CTM method commonly used for glass and mineral blocks. It uses the method, ctm as shown below.
method=ctm
Your texture should be based on this template*.
The numbers refer to the filename of the image as we discussed above. So, for this method, a single block would be 0.png, a block connecting to the right would be 1.png and so on. You must create individual files! Tilesheets do not work.
So, if we were making glass classic CTM, our block20.properties would have:
method=ctm
tiles=0-46
Remember
You can call the texture files anything however for connecting CTM, it is recommended to use numbers, else your blockID.properties file may become bloated like so:
Optional
Specify whether to show seams on inner edge when connecting to adjacent blocks.
innerSeams=false
* template is by Kahr
Horizontal CTM
Another form of CTM is horizontal CTM. This CTM connects only to the left and right; never up or down.
The method is:
method=horizontal
Use the template below to help you when making your textures for horizontal CTM*.
As always, 0 is 0.png, 1 is 1.png etc. or whatever your naming system uses and should be located in your base folder. You must create individual files! Tilesheets do not work.
For a horizontally connecting bookshelf, block47.properties would contain:
method=horizontal
tiles=0-3
Possible Uses
Seamless Bookshelves
Sandstone
Larger Logs
Wooden Plank ends * template is by Kahr
Vertical CTM
When there is horizontal CTM, there is vertical CTM. This CTM works similarly to horizontal CTM but only connects up and down, never left or right.
The method used is vertical like below:
method=vertical
Use the template below to help you:
You must create individual files! Tilesheets do not work.
For a vertically connecting log, block17.properties would contain:
method=vertical
tiles=0-3
Possible Uses
Pillar slabs
Logs
Sugar Cane tops * template is by Kahr
Horizontal+Vertical and Vertical+Horizontal CTM
This CTM method is quite special. What it does is, in the case of Horizontal+Vertical, is check if any blocks are eligible for horizontal CTM. It applies it then checks if any blocks which do not already have CTM can receive vertical CTM. Vertical+Horizontal is the opposite.
The methods used are:
method=h+v
for horizontal+vertical CTM
and
method=v+h
for vertical+horizontal CTM.
Use the top template below for Horizontal+Vertical CTM and the bottom one for Vertical+Horizontal CTM
You must create individual files! Tilesheets do not work.
For example, a chiseled sandstone texture wants vertical+horizontal CTM to show hieroglyphics. To do this, in your block24.properties, write:
method=v+h
tiles=0-6
metadata=1
Possible Uses
Hieroglyphic Sandstone
Bookshelf display cabinets
Random CTM
By far the most popular, this method allows one to create multiple textures which are randomly chosen when a block is textured by the renderer.
The method used is:
method=random
This method requires multiple single textures which it then randomises. When specifying tiles, you can choose any combination of tiles.
method=random
tiles=4 viney_grass 6-8
uses the tiles 4.png, viney_grass.png, 6.png, 7.png and 8.png.
You must create individual files! Tilesheets do not work.
Optional
Another feature of this method is the weights rule. Information can be found here.
Yet another feature is the symmetry rule. Information can be found here.
For example, to make a rare knotted wood texture for oak logs, put the following into your block17.properties.
Tiles 0 to 4 are my normal variants and tile 5 my special dinosaur texture.
Possible Uses
This method has an absurd amount of uses. Some common uses are:
Random Tall grass
Flowers
Ore designs
Grass textures
Stone texture
Dirt pattern
Repeating Textures
This method allows you to plaster a larger texture onto a flat wall of blocks, thereby helping to create better tiling. It essentially is a giant stamp tool, stamping large paintings on blocks.
Here is how to make it.
Starting with the method:
method=repeat
Then, add the width of the repeating texture in blocks:
method=repeat
width=5
Then add the height of the repeating texture in blocks:
method=repeat
width=5
height=3
Lastly, define the tiles to use.
method=repeat
width=5
height=3
tiles=0-14
CTM will do the rest.
If your image you wish to repeat is 3 blocks wide and 2 blocks tall, then the top three textures would be 0.png, 1.png and 2.png and the bottom three 3.png, 4.png and 5.png, if using this tile naming system.
You must create individual files! Tilesheets do not work.
Your blockID.properties would look like this:
method=repeat
width=3
height=2
tiles=0-5
Optional
This method also supports limited symmetry. Information can be found here. Keep in mind symmetry=all does not work.
Possible Uses
Large carpet rugs
Grass patterns
Wool patterns
Leaf patterns
Walls of bookshelves with stepladdersand trinkets
Fixed Textures
This method allows you to essentially replace a specific texture with your own. This is especially usefor for deriviative textures that you wish to make unique.
Here is how to make it.
Starting with the method:
method=fixed
Then specify the single tile.
method=fixed
tiles=0
Done! Make sure you have specified which block to target too. Often, one needs to use the faces and metadata options too.
If you wished to have a custom crafting table bottom, your blockID.properties would look like this:
One thing I'd like to see added is a section on things that are known not to work and why. For example, using horizontal/vertical methods on the top faces of blocks is something that we see a lot of questions on, but doesn't work for reasons that should be obvious. I know this guide isn't finished yet, of course, so this is just an "in case you didn't think of it already" type suggestion.
Anyway, great guide! I'll start sending people with CTM questions here since this seems to be the place to look! Thanks Deonyi!
But, there are a few things I would like to point out that can be added/changed:
In your random ctm, the example uses the "weight" property instead of the (proper) "weights" property. "weight" determines the order in which ctm files are loaded (also used in cit)
Weights can be any number, so instead of {10 10 10 1} you can have {30 1}
Numbered tiles (0,1,2) can only be used once, for example, you cannot have two 3.pngs
matchTiles cannot work in conjunction with matchBlocks/blockXXXX.properties
The biome names also seem to come from their display names in the F3 menu, not their IDs in the code. (Useful for mod biomes)
CTM is made by having textures named 0.png, 1.png, 2.png et cetera in a folder in the ctm folder. This folder can be named anything and is called in this guide, the base folder. For every block, you require a new base folder.
This is incorrect. Just as the folders inside /ctm/ can be named anything, they can contain any blocks you wish. For instance, if you were so inclined, you could have every one of your textures inside of /ctm/ctm. If you do 1 folder for every block, and you do a bunch of blocks, your /ctm/ folder is going to be MADNESS.
Instead, what you should be doing is using folders like groups. For instance, find a connection to block you use and name that as the name. Like using "wood" for any objects made with wood, "desert" for things in a desert, etc.
Telling someone to use 1 block per folder is akin to telling someone pre-1.5 to use 1 texture sheet per block- it's just not needed. It was implemented the way it is now as an organization tool, to allow groupings, and should be treated here as such.
Rollback Post to RevisionRollBack
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
Yeh, I know that you can name them anything but it seems numbered files are the easiest for beginners.
I'll fix it up a bit soon.
I wasn't talking about file names, I was talking about folders being used for multiple blocks! I merely mentioned that you could name folders anything you want.
Rollback Post to RevisionRollBack
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
I'm glad someone finally did this. It is complex enough to warrant a thorough guide, and drfrozenfire's MCPatcher guide is outdated. Thanks for doing this! It is very well done. There are a few little errors, but it seems they have all been pointed out.
Rollback Post to RevisionRollBack
Fare well everyone! My time to retire has come! "And with that, POW! I'm gone." ---Lord Crump
Yes, I realized that, but filenames cannot have duplicates, otherwise they will not be recognized. (like naming a file "default")
File names cannot have duplicates in filesystems anyways. you couldn't even have 2 "3.png"s in a folder anyways, so I'm not sure what you're trying to point out here. With most filesystems (yes, even in windows with NTFS) you CAN have something that has the same name but a different case (like three.png and Three.png) and that will be allowed (even with CTM, but it will only work right if you reference it with the exact casing as the name is).
If you're just talking about how they used the same tile over again with weights, yes that's quite dumb as large numbers definitely do work. I think I've even tried 100 1 and it worked. If 10 ever was a max, Kahr certainly doesn't mention it, so it must be something from a long time ago. It also isn't mentioned in the sample ctm.properties.
Rollback Post to RevisionRollBack
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
So I can still use classic CTM files instead of splitting it up into 30+ files?!
I don't think so. (Also note how it says "a single block would be 0.png, a block connecting to the right would be 1.png and so on." under the first template) If it bothers you so much you could work in the old format and then use MCpatcher to convert it.
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
Yeah if you wanted you could have every texture in the same folder numbered however and the ctm will still work. Lot of my random, vertical and such ctm is all in the same folder,
shoot my shugercane is 43-46 and works fine. My random flowers start at 33-42 and again work fine. They don't have to start at 0, or be in their own folder. You just have to tell the properties file what numbers are used. Sure it may be easier to just make a whole bunch of folders and start everything at 0. But not everyone may want to do that.
Sure it may be easier to just make a whole bunch of folders and start everything at 0. But not everyone may want to do that.
I think the only time this would be easier if all you were doing was using CTM to retexture things (like derivatives, such as stairs) and you just copied and renamed things without changing the contents of the .properties file.
Rollback Post to RevisionRollBack
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
A guide to help you understand
how to implement CTM features
into your resource pack!
Contents
Getting It
Let's Start!
How CTM Works
Methods
Tiles
Connection Type
Faces
Metadata
Biome and Height
Weights
Symmetry
Layered CTM
Classic CTM
Horizontal CTM
Vertical CTM
Horizontal+Vertical and Vertical+Horizontal CTM
Random CTM
Repeat CTM
Fixed CTM
About this Guide
If you have delved into the art of texturepack making, you may have heard the word CTM. 'What is this strange word?', you may ask. This is, in fact, not a word but an acronym of the phrase, Connected Textures Mod.
Originally, this mod made the glass, chests and bookshelves seamless. Texturepack functionality was added later for other blocks and other features such as randomised, repeated and fixed textures were made available later by MCPatcher.
This guide aims to detail how one uses CTM in a simple and concise fashion. If you find any errors, please do not hesitate to tell me.
There is a dual-colour system in this guide.
● text means it is important or required. Always read these parts.
● text means it is a helpful tip or something which is optional. You can skip over these if you want.
Getting It
How do I get this mod? You may find that the thread for it lists 1.2.5 as the latest version. But, never fear, this mod is bundled along with MCPatcher and Optifine. We will be covering the MCPatcher version in this thread.
You can get MCPatcher here:
http://www.minecraft.../topic/1496369-
Follow the instructions on the page to download it and install the mod to your Minecraft.
Let's Start!
To start, we are going to assume you already have finished your default textures. Make sure your Resource Pack's file structure is like this:
For a full file structure, click here.
Now, go to the /minecraft folder and create a new folder named mcpatcher like so:
Click on your newly created mcpatcher folder and create another folder called ctm. This is where all of our CTM is going to go.
That's it! Now, for the fun part...
How CTM Works
CTM is made by having textures in a folder in the ctm folder. This folder can be named anything and is called in this guide, the base folder. It is advised, however, to name your base folder based on its contents so you can easily find them.
and
both work however the first one is more descriptive and may be better in the long run.
You can put multiple block textures inside a single base folder however it may be better to separate blocks into different materials.
Your textures can be named anything however they must be 16px for default resolution packs, 32px for 32px packs and so on. In this guide, textures will be named 0.png, 1.png et cetera however they can be named however you like in your pack. Thus, 0.png and cakeTop.png will both work.
The thing which makes it all tick is a file called blockID.properties located inside the base folder. This file is named depending on which block the CTM code inside should modify.
The structure of the name is generally as follows.
block<block ID>.properties
You only have to modify the block ID part. A list of block IDs can be found here. If you need two CTM methods on the same block, simply append a or b or c et cetera to the end of the block ID like so:
or
To be honest, you can name your properties file anything however if so, you require a matchBlocks or matchTiles rule inside as shown below:
or
If using multiple block IDs or names, they should be separated by spaces.
To refer to a tile in vanilla MC, use the name of the texture in texture/blocks.
To refer to a tile in a mod, use the name of the texture in the mod's texture folder.
Tiles can also refer to tiles used in other .properties files. More information is located here.
By default, the default blockID.properties will load first, then the rest in alphabetical.
The weight rule tells CTM which .properties file to load first.
To use it, put this in your file:
The highest weight is loaded first. In the event of a tie, the file names are looked at next.
Make sure you write weight, not weights.
weight is given precedent over matchTiles is given precedent over matchBlocks which is given precedent over the filename of the .properties file.
Thus, a block65.properties with matchBlocks=43 will apply to the block with the ID of 43, not the block with the ID of 65.
Methods
There are multiple methods which CTM uses to allow you to manipulate the textures of blocks in different ways.
These methods should be declared at the top of your blockID.properties file as shown below:
There are 9 CTM methods available:
The function of these methods is explained below in greater detail.
Tiles
blockID.properties also requires you to define which textures to use since there can be a varying number of textures in a single base folder.
To specify which textures, or tiles, to use, add this below your method.
Essentially, you are specifying which textures to use for the CTM.
You can specify tiles in multiple ways.
tells CTM to use tiles 0.png, 1.png, 2.png and 3.png.
also tells CTM to use tiles 0.png, 1.png, 2.png and 3.png.
You can also specify tiles with custom names:
This will use dirt1.png, dirt_with_fossil.png and crumbly_dirt.png.
The .png suffix is not required.
Another way of specifying tiles is by using the full path.
Different ways to specifying tiles can be mixed and matched. The following works:
This will use /mcpatcher/ctm/dirt/green_alien_dirt.png, mossdirt.png, 0.png and 1.png.
For all specification methods other than full path, the texture file must be in the same directory as the blockID.properties file.
For all specification methods other than full path, the .png suffix is not required.
Connection Type
For methods which connect textures such as Classic CTM and Horizontal CTM, this optional rule specifies how the game should connect textures.
To use it, add this to your blockID.properties.
There are three kinds of connection:
block connections connect if the block ID is the same as the block ID of its neighbour.
This is the default connection.
tile connections connect if the tile is the same as the tile of its neighbour.
material connections connect if the material of its neighbour is the same as its own.
Faces
This rule limits the CTM in a particular blockID.properties to a specific face or faces.
To use it, add this to your blockID.properties.
Valid faces are listed below:
The bottom face is the bottom face, -y.
The top face is the top face, +y.
The north face is -z.
The south face is +z.
The east face is +x
The west face is -x.
sides is the north, south, east and west faces.
all is all faces.
Metadata
Another thing you can do is limit the CTM to a specific metadata. If you do not know what metadata is, it is essentially extra data in a block which tells it extra information like what colour it is, direction or what type of wood.
To do this, add this in your blockID.properties file:
The metadata is specified in the same fashion as tiles, utilising spaces, hyphens or a mix of both.
Biome and Height
This rule limits the CTM to a specific biome and/or height. This can be useful by allowing different types of stone at different levels and allowing snow covered flowers in taigas and mossy planks in swamps.
To use it, add this in your blockID.properties file:
Ocean
Plains
Sunflower Plains
Desert
Desert M
Extreme Hills
Extreme Hills M
Forest
Flower Forest
Taiga
Taiga M
Swampland
Swampland M
River
Hell
Sky
FrozenOcean
FrozenRiver
Ice Plains
Ice Plains Spikes
Ice Mountains
MushroomIsland
MushroomIslandShore
Beach
DesertHills
ForestHills
TaigaHills
Extreme Hills Edge
Jungle
Jungle M
JungleHills
JungleEdge
JungleEdge M
Deep Ocean
Stone Beach
Cold Beach
Birch Forest
Birch Forest M
Birch Forest Hills
Birch Forest Hills M
Roofed Forest
Roofed Forest M
Cold Taiga
Cold Taiga M
Cold Taiga Hills
Mega Taiga
Mega Spruce Taiga
Mega Taiga Hills
Mega Spruce Taiga Hills
Extreme Hills+
Extreme Hills+ M
Savanna
Savanna M
Savanna Plateau
Savanna Plateau M
Mesa
Mesa (Bryce)
Mesa Plateau F
Mesa Plateau F M
Mesa Plateau
Mesa Plateau M
Please note the Savannah biomes are spelt wrongly without an 'h'.
To use height restrictions, add this to your blockID.properties:
The min height is the lower y coordinate you wish your block to start appearing at. The maxHeight is the upper boundary of where you wish to your texture to start appearing.
Weights
Did you mean weight which tells CTM which properties file to load first?
No, no, weight is not the obesity of a texture. It is how common it is. It is only used with the random method and specifies how common a specific texture should be.
To use weight, add this in your blockID.properties.
Make sure you write weights, not weight.
The weights are linked to your tiles. The first weight corresponds to the first tile, the second weight the second tile and so on.
Weights do not have to add up to anything and the higher the weight is, the more common it will be.
There is no maximum weight.
This will give 20 0.pngs to every one 1.png.
Symmetry
Symmetry is another random method only rule. Add this to the blockID.properties to use it.
There are three kinds of symmetry:
If you choose none symmetry, all sides of the block will be textured independently. This does not mean they cannot be the same, it merely means they will be textured completely randomly.
This is the default symmetry.
In opposite symmetry, opposing sides will have the same texture but each pair can have different textures.
In all symmetry, all sides will have the same texture.
This is good for textures which change colour or design.
Layered CTM
A CTM rule can also act as the source for another CTM rule. You can use this to make randomised bookshelves that also have horizontal CTM.
Simply use the matchTiles rule to target the specific texture the horizontal CTM uses to apply random textures.
An example is shown below:
As you can see, we can specify random textures for each of the horizontal CTM tiles, thereby making randomised horizontal CTM.
Classic CTM
This is the CTM method commonly used for glass and mineral blocks. It uses the method, ctm as shown below.
Your texture should be based on this template*.
The numbers refer to the filename of the image as we discussed above. So, for this method, a single block would be 0.png, a block connecting to the right would be 1.png and so on.
You must create individual files! Tilesheets do not work.
So, if we were making glass classic CTM, our block20.properties would have:
Remember
You can call the texture files anything however for connecting CTM, it is recommended to use numbers, else your blockID.properties file may become bloated like so:
Optional
Specify whether to show seams on inner edge when connecting to adjacent blocks.
* template is by Kahr
Horizontal CTM
Another form of CTM is horizontal CTM. This CTM connects only to the left and right; never up or down.
The method is:
Use the template below to help you when making your textures for horizontal CTM*.
As always, 0 is 0.png, 1 is 1.png etc. or whatever your naming system uses and should be located in your base folder.
You must create individual files! Tilesheets do not work.
For a horizontally connecting bookshelf, block47.properties would contain:
Possible Uses
Seamless Bookshelves
Sandstone
Larger Logs
Wooden Plank ends
* template is by Kahr
Vertical CTM
When there is horizontal CTM, there is vertical CTM. This CTM works similarly to horizontal CTM but only connects up and down, never left or right.
The method used is vertical like below:
Use the template below to help you:
You must create individual files! Tilesheets do not work.
For a vertically connecting log, block17.properties would contain:
Possible Uses
Pillar slabs
Logs
Sugar Cane tops
* template is by Kahr
Horizontal+Vertical and Vertical+Horizontal CTM
This CTM method is quite special. What it does is, in the case of Horizontal+Vertical, is check if any blocks are eligible for horizontal CTM. It applies it then checks if any blocks which do not already have CTM can receive vertical CTM. Vertical+Horizontal is the opposite.
The methods used are:
for horizontal+vertical CTM
and
for vertical+horizontal CTM.
Use the top template below for Horizontal+Vertical CTM and the bottom one for Vertical+Horizontal CTM
You must create individual files! Tilesheets do not work.
For example, a chiseled sandstone texture wants vertical+horizontal CTM to show hieroglyphics. To do this, in your block24.properties, write:
Possible Uses
Hieroglyphic Sandstone
Bookshelf display cabinets
Random CTM
By far the most popular, this method allows one to create multiple textures which are randomly chosen when a block is textured by the renderer.
The method used is:
This method requires multiple single textures which it then randomises. When specifying tiles, you can choose any combination of tiles.
uses the tiles 4.png, viney_grass.png, 6.png, 7.png and 8.png.
You must create individual files! Tilesheets do not work.
Optional
Another feature of this method is the weights rule. Information can be found here.
Yet another feature is the symmetry rule. Information can be found here.
For example, to make a rare knotted wood texture for oak logs, put the following into your block17.properties.
0.png is my standard oak texture and 1.png my rare knotted log texture.
For a rare dinosaur fossil in my stone which already has random textures put this in block1.properties:
Tiles 0 to 4 are my normal variants and tile 5 my special dinosaur texture.
Possible Uses
This method has an absurd amount of uses. Some common uses are:
Random Tall grass
Flowers
Ore designs
Grass textures
Stone texture
Dirt pattern
Repeating Textures
This method allows you to plaster a larger texture onto a flat wall of blocks, thereby helping to create better tiling. It essentially is a giant stamp tool, stamping large paintings on blocks.
Here is how to make it.
Starting with the method:
Then, add the width of the repeating texture in blocks:
Then add the height of the repeating texture in blocks:
Lastly, define the tiles to use.
CTM will do the rest.
If your image you wish to repeat is 3 blocks wide and 2 blocks tall, then the top three textures would be 0.png, 1.png and 2.png and the bottom three 3.png, 4.png and 5.png, if using this tile naming system.
You must create individual files! Tilesheets do not work.
Your blockID.properties would look like this:
Optional
This method also supports limited symmetry. Information can be found here.
Keep in mind symmetry=all does not work.
Possible Uses
Large carpet rugs
Grass patterns
Wool patterns
Leaf patterns
Walls of bookshelves with stepladdersand trinkets
Fixed Textures
This method allows you to essentially replace a specific texture with your own. This is especially usefor for deriviative textures that you wish to make unique.
Here is how to make it.
Starting with the method:
Then specify the single tile.
Done! Make sure you have specified which block to target too. Often, one needs to use the faces and metadata options too.
If you wished to have a custom crafting table bottom, your blockID.properties would look like this:
Possible Uses
Fixing crafting table bottoms,
Custom pressure plates
Custom cuttons
Custom stair textures
Great job!
One thing I'd like to see added is a section on things that are known not to work and why. For example, using horizontal/vertical methods on the top faces of blocks is something that we see a lot of questions on, but doesn't work for reasons that should be obvious. I know this guide isn't finished yet, of course, so this is just an "in case you didn't think of it already" type suggestion.
Anyway, great guide! I'll start sending people with CTM questions here since this seems to be the place to look! Thanks Deonyi!
Or at the very least we need a pinned topic that contains links to all of the great up-to-date tutorial threads.
Maybe someone can shed some light on why my repeat CTM isn't working?
It has 100 textures
and the file looks like this
//stone
method=repeat
width=10
height=10
tiles=0-99
I can't get some of the tiles to show *puzzled face*
EDIT now fixed
But, there are a few things I would like to point out that can be added/changed:
Putting the CENDENT back in transcendent!
This is incorrect. Just as the folders inside /ctm/ can be named anything, they can contain any blocks you wish. For instance, if you were so inclined, you could have every one of your textures inside of /ctm/ctm. If you do 1 folder for every block, and you do a bunch of blocks, your /ctm/ folder is going to be MADNESS.
Instead, what you should be doing is using folders like groups. For instance, find a connection to block you use and name that as the name. Like using "wood" for any objects made with wood, "desert" for things in a desert, etc.
Telling someone to use 1 block per folder is akin to telling someone pre-1.5 to use 1 texture sheet per block- it's just not needed. It was implemented the way it is now as an organization tool, to allow groupings, and should be treated here as such.
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
> Lemon
I'll fix it up a bit soon.
I wasn't talking about file names, I was talking about folders being used for multiple blocks! I merely mentioned that you could name folders anything you want.
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
I really need to find a way to get quotes on an iPad..,
"And with that, POW! I'm gone." ---Lord Crump
Yes, I realized that, but filenames cannot have duplicates, otherwise they will not be recognized. (like naming a file "default")
Putting the CENDENT back in transcendent!
File names cannot have duplicates in filesystems anyways. you couldn't even have 2 "3.png"s in a folder anyways, so I'm not sure what you're trying to point out here. With most filesystems (yes, even in windows with NTFS) you CAN have something that has the same name but a different case (like three.png and Three.png) and that will be allowed (even with CTM, but it will only work right if you reference it with the exact casing as the name is).
If you're just talking about how they used the same tile over again with weights, yes that's quite dumb as large numbers definitely do work. I think I've even tried 100 1 and it worked. If 10 ever was a max, Kahr certainly doesn't mention it, so it must be something from a long time ago. It also isn't mentioned in the sample ctm.properties.
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
Servers Rules|Support Forum Rules|Show Your Creation Rules|Off Topic Rules
And I will add a bit about the naming of images.
I don't think so. (Also note how it says "a single block would be 0.png, a block connecting to the right would be 1.png and so on." under the first template) If it bothers you so much you could work in the old format and then use MCpatcher to convert it.
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
shoot my shugercane is 43-46 and works fine. My random flowers start at 33-42 and again work fine. They don't have to start at 0, or be in their own folder. You just have to tell the properties file what numbers are used. Sure it may be easier to just make a whole bunch of folders and start everything at 0. But not everyone may want to do that.
I think the only time this would be easier if all you were doing was using CTM to retexture things (like derivatives, such as stairs) and you just copied and renamed things without changing the contents of the .properties file.
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin