4.2 Step 2- (fs.txt) 
This file is very simple, it is literally just a line by line listing of the features on your map. It is case sensitive however, everything must be typed in exactly. Understand that "Tree2" is different from "tree2", as well as "TREE2" is different from them as well. However, the windows file system will recognize them all as the same name, so you cannot have both the uppercase and lowercase versions. Just make sure everything is typed correctly. The line by line order is very, very important. There is a maximum of 255 lines, or 255 different features per map. Each line corresponds with a different numerical value of red per pixel on the feature map bitmap for the map compiler. The first line on this file is red #255, the second is red #254, and so on. 
Open the fs.txt file with notepad, or your favorite dos-based text editor. (note: MS Word or Wordpad will not work properly on any of the text documents, as it stores formatting with the text and will eff everything up.) Take the item or items listed on the document and replace them with the feature name (the name within the [ ] brackets on the tdf file.) of your feature or features you would like to test. Save and close this file, it is complete. 

4.3 Step 3- (directory structure) 
This is another simple step that seems to boggle a lot of map makers. The only files that need to be created and run with the mapconv program are the feature.bmp file, and the fs.txt file, everything else is just packaging. Anyways the directory structure is the following: 

C:\testmap\ 
C:\testmap\features\All Worlds\ 
C:\testmap\features\maps\ 
C:\testmap\features\objects3d\ 
C:\testmap\features\unittextures\ 

Put my map bitmaps in the root "testmap" folder. (downloaded) 
Put your fs.txt file in the root "testmap" folder. 
Put the s3o/3do files in the "objects3d" folder. 
Put the UV texturemap files in the "unittexture" folder. 
Put the tdf files in the "All Worlds" folder. 

4.4 Step 4- (compiling) 
This process is simple. Refer to this link: (many many tutorial have been written already) http://taspring.clan-sy.com/wiki/Maps:Compiling 

4.5 Step 5- (testing) 
This test is just an initial test, if your feature is on the map correctly, the feature should be white, with black outlines on the ends of all the faces. Its scale should be "close" to where you want it, and you can tweak it from there. Take some time with the s3o file in Upspring, and scale it correctly. Also, don't forget about the features footprint and selection sphere. You can always test the footprint size under the object by attempting to build something on top of it, and the parts where the footprint are located will be red. Again, every part square from the footprint to the vertical height of the object will block weapons fire. (unless they get past the density modifier within the tdf) 







7.10 
Q- Which texture in Upspring do I use for what? what do they mean? 
A- There are 2 textures per object... (they have to be *.TGA or *.PNG) with 4 channels Red, Green, Blue, and Alpha. 
-Texture 1- 
-R- color 
-G- color 
-B- color 
-A- team color (0 being no team color, and 255 being 100% teamcolor) 
-Texture 2- 
-R- Glow map color (0 no glow, 255 full-bright) 
-G- Specular layer (shineyness, 0-255) 
-B- ---- not used ---- 
-A- Transparency (0- opaque, 1-255 = completely transparent, there is no "partial" or "translucent".. yet...) 
Note: Transparencies, and Team Colors might be flip flopped and 255= opaque or no team color dependant on the painting program used, if it comes out backasswards, just invert that channel. 

Chapter 8: Tips and Tricks 

I've developed a few tricks over the last two years piddling with the spring engine. 

#1- This is probably the best tip I can give you. When you are drawing your layered bitmaps for your map in photoshop, or gimp, make use of the layers function. Put your texturemap, your heightmap, the featuremap, and all other maps together. Make a layer stack, something like: height->texture->land/water->resource->start locations->base locations->controllable areas->trees->grass->feature1->feature2-feature3->feature...->typemapping etc. This is beneficial because when you have 42 different features on the same map, that means you have 42 shades of red dots on the map, all that are close to max red, and very, very hard to tell apart. If you wanted to see where say, feature#13 was, turn that layer on, and the rest off.. and ding! You can see exactly where they are. Say you want to place features where the shoreline is, and nowhere else, (for example, the lilypads on my swamp map,) turn on the watermap, and click right next to the edges of the water... 

#2- Just because you want a feature on the map, in a certain location, at a certain height, dosen't mean its "impossible" or "hard" to do. Think about what the feature is, how the map will load it, and how it will place it. Just a hypothetical example, but say you want to place 4 different buildings together in a similar location (say for passability reasons and not acting as a single footprint blocking obstacle), with all having the exact same celing height, all perfectly horizontal, regardless of the terrain height. The buildings are all set individually by a point on the heightmap, this point is also the CENTER of each buildings hitbox, thus you cannot move the building around on the point without screwing up the hitbox. If you place the buildings on the map with no bearing on how they are generated, they will have the exact height of the terrain, plus the difference within upspring on the model height. Say you don't plan on editing the buildings 1 by 1 and making a new feature for every building, because you plan on using the same building over and over... What you can do, is with the layering technique mentioned above, pick the points on the height field directly under the dots on the feature map, and make them all exactly the same. This will however, leave funny little spots under the buildings if reclaimed or destroyed (unless the difference is negligible), so consider this with your design and possibly opt out to have the features unreclaimable/indestructible. 

#3- Trick to hide the selection sphere, yet still have the feature visible, and blocking, without causing problems. The solution is simple, if you consider how the selection sphere is generated, (it has to be large enough to encompass the object, regardless of its origin, though reset at the true center origin in upspring, but regardless of its location given within upspring.) This means, if you move it way, way off, say like 4,000,000 kilometers off the map, you will never, ever be able to click on it, and yet the sphere is still active. This is handy for very, very large objects such as my swamp trees. (though I did release that map without this trick in effect.. doh) Anyways, you have the sphere still large enough to make the object visible, its off the map and you can't click on it, and then you set the blocking hitbox to the correct sizes. It will now act as a solid object, that is uber huge, and you can mouse-over the area within its vicinity, without getting stuck ONLY reading that very large items description, or when you give a constructor a move order, it won't auto reclaim it every time. 

#4- When painting a texture on a model, or feature, there are a few tips I know of to make it look "real." First, all dark lines recess into the object adding depth, or the middle of concave corners, all white lines look like glints of light reflecting off convex corners of objects. When you begin to paint, paint the base color/colors, then add the dark crevices. After adding the dark, add glints of highlights on the corner edges of the plate that butt up to the crevices. Contrast is important. Also, when you add mixed color to an object, parallel strokes of color look EXTREMELY flat, and dabbed blobs of color look very curved like an organic surface. Consider this when painting a flat sheet of steel, or a rubber curved gasket on an object. 

#5- To add more realisim to the model and make it look less like a low-poly boring model, wrap the texture of a face on the model OVER the seam between to facets. Draw as if the UV map is one solid painting surface on a true model, don't think, "ok lets limit myself to only face A to paint window A..." paint on all the adjoining faces as well, even if it means only putting support beams and brackets, or angle iron, on them. Also, this works in the opposite fashion as well, your "window" dosen't have to be the enitre polygon either, use "part" of it, and add cracks and highlights to the surface paint to look like more polys/detail... 










