Hello fellow spore lovers. Sadly we have moved on from this game. However we have made an index of all the content on this website for your easy convenience, though mods are no longer supported by us. We now also have a Youtube channel focusing on geek parody music videos including Doctor Who, The Hobbit and Game of Thrones videos. Check out this video, and if you enjoy, please subscribe!
Have a Question? Post in our sister forums here.
Void at Sporemods has released a modding program for spore, in collaboration with others, called SporeMaster. The second version brings a whole new life to Spore modding with the possibilities to mod and create entirely new parts! Many of the bugs have been fixed since v1, however there may still have some bugs in the program so watch out and report them in this thread so we can have a better modding tool!
Want to know how to use Sporemaster? Use our new tutorial here.
- Unpacking and packing of .package files, with automatic conversion of .prop files to and from .xml. files.xml is no longer necessary.
- NEW: Packing of .rw4 (RenderWare 4) model and texture files (from OGRE3D XML format and DDS format respectively) with packages, making part creation possible for the first time. Unpacking of these files is currently very limited. Part animations are not yet supported.
- XML property files are more user-friendly than in previous mod tools, using names instead of hashes where possible. NEW:XML files are order-independent.
- Full text indexing of .xml and .locale files in the unpacked package, to permit very fast incremental search. NEW:Search for keywords separated by spaces or “literal phrases”.
- Side-by-side comparison of file tree in Spore and the mod under development. One-click execution of WinMerge to see and edit changes in an individual file.
- Built in syntax highlighting editor.
- NEW: Image and model viewers.
- Tools for guessing the original names for hashes and for creating friendly aliases for hashes that can’t be guessed (or that were randomly generated by EA). The “Hash Guesser” tries more than 250 billion possible names for a given hash, providing you with a list of possible original names to choose from. When a new name is found the unpacked files are automatically updated.
To install SporeMaster, you need to:
- Install the .Net Framework (link above)
- Restart your computer
- Extract SporeMaster zip folder to anywhere on your computer
- Then just run the exe and you are done!
After installing SporeMaster, you need to:
- Go to the Spore Packages tab, click Spore_Game.package, click Change, find this package in your Spore\Data folder, click OK.
- Click Text.package, find this package in your Spore\Data\Locale\en-us\ folder, click OK.
- Click Unpack at the bottom and wait a long time for SporeMaster to unpack and index these files. They go in a “spore.unpacked” folder under your SporeMaster folder, if you are curious.
- Go to the Mod tab, and either:
- Click Open, select an existing package, click OK, and then click Unpack,
- or Click Create, type in the name of a new mod you would like to work on.
- (In either case, your mod’s files go in a folder called “whatevermod.unpacked”.)
- Go to the Files tab, which should now be enabled.
- Be aware of the setting of “show only modded files” on the Files tab: if you created a new mod, clicking this checkbox will hide all your files.
To create a part
The new SporeMaster 2 has the ability to pack models and textures into the renderware 4 (.rw4) format used by the game to store parts. This makes it possible to add new parts for the first time. This is still a very new development – literally the only parts mods in existence are my cheesy glasses and cube. So don’t expect the workflow to be completely smooth. Also note that texturing is somewhat limited – I haven’t really figured out how the different texture channels interact – and mesh-level animation is completely unsupported so far.
SporeMaster reads models from the OGRE3D mesh.xml format, and textures from S3TC-compressed (DXT5) .DDS (DirectDraw Surface) files. I picked the OGRE format because it’s easily readable, close to the type of data that Spore needs, and there are exporters for lots and lots of modeling tools: http://www.ogre3d.org/wiki/index.php/OGRE_Exporters I picked the DDS format because it can store images that are S3TC compressed, and since S3TC compression is lossy I didn’t want SporeMaster to do it automatically when packing.
In principle, then, you can develop models with any tool that supports these formats. I’m going to try to describe a workflow using Blender (for models) and the Gimp (for textures), which are both freely available programs. If you get a model imported using Maya or 3DS max or the XSI mod tool or whatever, please post how you did it.
To make a model you will need:
- SporeMaster 2: http://www.sporemods.org/forum/index.php/topic,201.0.html
- Blender: http://www.blender.org/download/get-blender/
- Blender OGRE export plugin: http://ogre.svn.sourceforge.net/viewvc/ogre/branches/v1-6/Tools/BlenderExport.tar.gz?view=tar
- OGRE command line tools: http://downloads.sourceforge.net/ogre/OgreCommandLineTools_1.6.0.msi?use_mirror=
- My proof-of-concept “glasses” mod: http://www.sporemods.org/forum/index.php/topic,247.0.html
- The original Blender file for the “glasses” mod (attached)
- Follow the installation instructions in the SporeMaster thread, make sure you can make and use packages with SporeMaster (and ideally know how to use it)
- Put the glasses mod in your Spore\Data directory and make sure it works
- Install Blender (and ideally know how to use it)
- Install the Blender OGRE export plugin. It doesn’t have an installer, and needs to go in your Blender scripts folder (not in a subdirectory). Generally that will be in your user profile, not in Blender’s installation directory. On Vista it is C:\Users\USERNAME\AppData\Roaming\Blender Foundation\Blender\.blender\scripts; I’m told that on the Mac it is /Applications/blender/blender.app/Contents/MacOS/.blender/scripts/, and you must reach it via Terminal or “Show Package Contents” on blender.app.
- Install the OGRE command line tools
- Make a copy of the glasses mod and rename it to addon_yourpart.package
- Open addon_yourpart.package in SporeMaster and unpack it
- Select “Show only modded files”
- Search for “glasses” and change every single occurrence to yourpart. This means renaming files and folders that have “glasses” in the name, and changing references in the XML files. If you don’t change every single reference, your mod will either not work or be incompatible with my mod and the mods of every other person who can’t follow instructions. SporeMaster does not have an easy to use rename feature so you will have to use Windows Explorer to rename files and folders; you can get there easily by selecting something and clicking the “Explore Right” button.
- In the creature_editor_palette_items~ folder, change the column and row from 4, 0 to a new location. Your mod will be incompatible with anyone who picks the same location, because there can only be one part at each location. I have expanded all the pages to have two new columns (4 and 5), and they all have different numbers of rows.
- Open glasses.blend in Blender and Save As a new file. Do not save .blend files in your SporeMaster .unpacked folder! Notice that the glasses are oriented facing toward the negative Y axis, and the Z axis is “up”. That is the normal orientation of a part in Spore. The negative Y axis always faces “away” from the creature, so it will be the front for things that you think of as going on the front of the creature, or the top for things you think of as going on the top of a creature. The origin is the point where the part “touches” the creature (where the mouse cursor in the creature editor would place it on the creature). Also notice the general scale of the glasses; you don’t want to create anything too much bigger or smaller.
- Create or import a new mesh in Blender that you want to make a part out of. This part I can’t help you with much; I’m no expert on 3D modeling. Important: The exporter exports a single mesh; it doesn’t care at all about the rest of the scene, or even the mesh’s position or orientation in the scene. To position something relative to the origin and orientation of the glasses, you need to make sure that its object transform has no translation, rotation or scale (by pressing ‘N’ in object mode you can see these numbers and change them to zero (or one in the case of scale). You then reorient the mesh in “Edit Mode” by selecting all vertices and transforming them.
- UV map the mesh. Blender’s “unwrap” feature is very useful for this. It doesn’t matter what texture you assign in Blender – the exporter may complain if you don’t have one, but SporeMaster will ignore material assignments. It DOES matter that the UV mapping is correct, even if you aren’t going to texture your object! Spore tries to do all kinds of bump mapping and other calculations with your UV coordinates, and if they are all messed up you will get weird effects.
- Select your new mesh and choose File > Export > Ogre Meshes from the menu. If the option isn’t there, you didn’t install the export plugin correctly. Make sure “Fix Y up” is off and “OgreXMLConverter” is on; go to Preferences and turn “Tangent” on and set the path to the converter. Export the mesh to a known directory.
- OgreXMLConverter was run by the mesh exporter to generate tangents, which are needed by Spore and which neither SporeMaster nor the exporter itself generate. Unfortunately, it has the side effect of turning the .mesh.xml file into a binary .mesh file, which SporeMaster won’t read. So you need to invoke OgreXMLConverter again manually to turn it back. You can do this from the command line or (probably) by drag and dropping the .mesh file. When that’s done, you should have a .mesh.xml file with <tangent> elements in it.
- Now copy that .mesh.xml file into the part_models~/ce_details_yourpart.rw4 folder (you can open it easily from SporeMaster by Explore Right), and make sure it is named model.mesh.xml (overwriting the file by that name that is already there).
- Select the .rw4 folder (NOT the files inside) in SporeMaster and look at the part (or the error message, if any). It should be oriented the same way as the glasses (and the same way as in Blender).
- Pack your mod! You should have a black-textured model in Spore. There are a lot of things you can tweak and tune in the XML files, but that should be enough to get a part in the game
First of all, basic theory. Some of this could be wrong, because I haven’t experimented very much with texturing.
There are four textures, that I know of, applied to every Spore part:
- A 64×64 diffuse color map packed into the model.rw4 file itself, which is displayed in the “build” tab of the creature editor. This texture is blended with the base “skin color” of the creature based on the texture’s alpha channel. At the moment, SporeMaster always packs a completely clear texture into the model, so your part will be skin colored in the build tab. This texture is not used anywhere else.
- A diffuse color map referenced by the “skinpaintDiffuseTexture” key in your part’s .prop.xml file. This works just like the texture displayed in the build tab, except that it’s slightly higher resolution (usually 128×128), and it appears everywhere except in the build tab. The alpha channel controls how much the skin texture shows through. This texture is stored DXT5 compressed. If you set this to the “clear” texture included in my glasses mod, your part will be skin colored.
- A “tint mask” referenced by the “skinpaintTintMaskTexture” key. I have not experimented to be sure what this does, but my guess is that its color controls the application of the different paint layers (base, coat, and detail) to the part. For example, there are detail textures that affect your creature’s calves but not it’s thighs; my guess is this is controlled by the tint mask. But I’m not sure. This texture is also DXT5 compressed.
- A “gloss/bump” texture referenced by the “skinpaintSpecBumpTexture” key. This applies normal mapping to make your part look like it has more surface detail than its mesh actually has, and my guess is that the alpha channel is a “gloss map” (high values = shiny, low values = dull). This texture is NOT stored DXT5 compressed, and at the moment you can’t read the .DDS file it’s decoded to with the GIMP DDS plugin, probably because SporeMaster doesn’t generate the correct header. You can, however, read it as a RAW file in the Gimp, with an offset of 128, type of RGB Alpha, and size of 128×128. Building bump maps require special tools, which exist, but I have not tried this at all – you are on your own.
Now for basic steps to get textures into the game (at least for the diffuse channel).
To make a texture you will need:
- SporeMaster 2
- Gimp: http://www.gimp.org/
- Gimp DDS plugin: http://nifelheim.dyndns.org/~cocidius/dds/
- A working model you want to texture
- Install everything above
- Make sure you are happy with the UV mapping on your model
- Build a high-resolution ARGB texture for the model, using whatever 3D or 2D painting technique you like. Remember that the alpha channel is “skin”. If your painting tool can’t easily “paint” alpha onto the part, try making a “skin” texture with black for skin and white for everything else, and then build an alpha channel in GIMP out of that. In practice, of course, you may want to try this process with a placeholder texture before you spend a lot of time on painting. The steps are the same regardless of whether your texture is good 🙂
- Now open that texture, flatten it if it has layers and resize to 128×128 (without saving – you should always keep your high res source image!)
- Save As, navigate to your addon_yourpart.package.unpacked/part_skin_textures~/ folder, create a new folder named “yourpart_diffuse.rw4″, and save “texture.dds” there (it must have that exact name!). Since you used the .dds extension, this will bring up the “Save as DDS” dialog from the plugin. Select “Compression > BC3 / DXT5”. Select “Generate mipmaps”. Click OK.
- Now click “Revert”, uncheck “Load mipmaps”, and click OK. View your texture in its crappy compressed glory. Aren’t you glad you saved the original?
- Go to SporeMaster and edit your part’s creature_parts~/yourpart.prop.xml file to have a line something like
<key name=”skinpaintDiffuseTexture” groupid=”part_skin_textures~” instanceid=”yourpart_diffuse” typeid=”rw4″ />
- Pack and test.
Good luck! If you have any real results with this, please post them. I have really only used textures enough to make sure that UV coordinate import was working.