Introduction to Spore modding - emd4600/SporeModder-FX GitHub Wiki

Do you want to create mods for Spore but don't know how? Then this tutorial is for you. Mods are modifications to the game, such as adding new creature parts, changing gameplay, etc. The most famous one is Dark Injection. This tutorial is a beginner's guide to introduce you to the world of modding. This is for creating mods; if you only want to install them, this isn't for you.

In their most basic form, mods just modify a few files. For example, a mod that makes the creature stage longer just modifies the file that configures the parameters of the creature stage. Game files are packed into .package files: you can think of them as a .zip file, but adapted to Spore's needs. To create mods, you first modify the files you need, and then you pack them into a .package, which other players can install with the ModAPI Launcher Kit.

There is one essential program to create mods: SporeModder FX, which you can download here. There are other programs, which we will comment later, but SporeModder FX is the main one. With it, you can unpack and explore game files, and pack mods of your own. We will see how in the next tutorial. Installing SporeModder FX is very simple:

  1. Download the program from https://emd4600.github.io/SporeModder-FX/, clicking the Download button.
  2. Unzip the downloaded file (Right click -> Extract if you are on Windows).
  3. Move the unzipped folder somewhere you will remember. To open the program, just double-click the SporeModderFX.exe file in the folder.

Main concepts

Spore is a very vast game, and therefore Spore mods can cover a great variety of topics. Here are the main ones; all of them can be edited and changed with SporeModder FX:

  • Properties: The most common type of file in the game. Property lists are very simple files that assign values to certain properties; most of the game is configured with them. For example, there is a property file for each creature part, describing things like its size, abilities, etc. In the picture, you can see some of the properties that define the laser tool in Space stage: it sets things like its range, energy cost, …

  • Models: Spore is a 3D game, and so it is full of 3D models. Every object you see in the game (creature parts, rocks, trees, cities, etc.) is a 3D model.

  • Textures: Textures are the images that define how everything looks in the game. All models come with one or more textures. The picture is the texture of a gas planet:

  • Effects: Visual effects, such as particles or skinpaints (how creature skins are painted).

  • Animations: Every movement creatures do. The picture is a Fortnite dance that has been modded into Spore.

  • User interface: Elements the player can interact with, but that don't belong to the game world itself: buttons, text on the screen, etc.

Blender

Another program that is frequently used in Spore modding is Blender. Blender is the most famous 3D modelling program, and we can use it to create models and animations. In this wiki we won't teach you how to use it; Blender has a huge community with hundreds of good tutorials for that.

In order to connect Blender with Spore you need some extra functionality, which you can get installing the SporeModder Blender Addons.

Advanced mods: programming code

SporeModderFX and the Blender add-ons allow you to modify a huge portion of the game. However, there are some limitations when it comes to functionality. Let me explain: we can modify how a tribe hut looks (its model) and how much it costs (its properties), but we cannot change what it does (its behavior, functionality).

To overcome that limitation, we created the Spore ModAPI SDK, which give you (partial) access to Spore's code. With it, the possibilities become endless.

To be precise, the SDK is a C++ library that gives you access to some of Spore's functions and structures. Then, with Visual Studio, you can write C++ code to modify Spore, and compile it into a .dll file. To run these modifications, players need the ModAPI Launcher Kit (which requires Galactic Adventures).

For example, this small code snippet gives the player 99 units of the planet buster bomb:

cSpaceToolDataPtr tool;
ToolManager.LoadTool({id("PlanetBusterBomb"), 0, 0}, tool);

tool->mCurrentAmmoCount = 99;
            
auto inventory = SimulatorSpaceGame.GetPlayerInventory();
inventory->AddItem(tool.get());

This is a more advanced topic, however, so if you are a beginner you don't need to worry about it for now; just know that it exists. In fact, if you are interested in the SDK, we still recommend you follow these tutorials and have a good understanding of basic Spore modding first.

Next tutorial

This tutorial was just a first contact with Spore modding, so that you know what you can expect. In the next tutorial, we will actually use SporeModder FX to create a real mod. Check it out and keep learning!