Information on the game saves for Sword of the Stars 2. For more information on modding the game, please see the Modding page.
You can find the game saves at "C:\Users\<USERNAME HERE>\Saved Games\Sword of the Stars II\Saved Games" on your hard disk.
Where you see "<USERNAME HERE>" you should replace with the system login name that you play the game under.
What to edit
You can change everything actually. But some things are easier then others, and you need to understand sql somewhat.
If you use SQLite Admin, you must remember that all changes you make are saved immediately, this is a database after all.
This houses basic player information, such as name, id, and savings (and many other things!)
Contains very useful game modifiers, you must keep in mind your player_id (from players table) before making any edits however. For a full list and descriptions of what these are, please see the Strat Modifiers page.
Everything you can do with a planet is here almost. You will want the orbital_object_id from colonies table.
|normal||Your run of the mill garden world.||Yes|
|gaseous||Normally larger than 10||No|
|barren||Usually smaller than 1||No|
A lot of colony information obviously, but in the long run far less useful then the planets table.
Get only a certain players colonies.
SELECT * FROM colonies WHERE player_id=1
Get only planets whose colonies belong to a certain player. (subquery, change the id)
SELECT * FROM planets WHERE orbital_object_id IN (SELECT orbital_object_id FROM colonies WHERE player_id=1)
The name and id's of provinces, including who owns them.
You can edit a star systems province_id, name, and other information here. Useful if you want to get around the province creation bug. Keep in mind however it does not check distance/location or who has a colony in that system. (might break things if you mess up)
This table is actually pretty complex, but the basics are obvious.
The id of the technology, the name which you can find in the techs table.
You can run the following query to get better idea of what does what. Change the last number to your player_id.
SELECT id_from_file, tech_id, state, progress, research_cost, feasibility, player_feasibility FROM player_techs INNER JOIN techs ON techs.id=player_techs.tech_id WHERE player_id=1
The state of the research on the technology.
If you intend to make a technology feasible but not researched, you have to both change the player_feasibility to something reasonable and the state to 3, not 2 or 4.
|0||Researchable (chance of failure not shown!)|
|5||Currently being researched?|
You may use the following Query to set these untested to very researchable (99%). Change the last number to your player_id.
UPDATE player_techs SET state=3,player_feasibility=0.99 WHERE state=1 AND player_id=1
This will change ones with low feasibility to high feasibility. Change the last number to your player_id.
UPDATE player_techs SET state=3,player_feasibility=0.99 WHERE state=2 AND player_id=1
The amount of research that has been done on it. Not entirely important as the state can mark it as done. Progress will usually be close to research_cost for finished techs. Except for ones you got free at the start of game (which will be 100).
The amount in research it costs to research it.
The base feasibility of the technology
The feasibility of you researching it. Keep in mind this can be higher then the base feasibility.
CombatTurnLength Combat turn length in seconds.
Sample. UPDATE name_value_pairs SET CombatTurnLength=600 --set turn length to 10 minutes.
GSGrandMenaceCount Allowed number of grand menaces, increase to force the game to generate new menaces.
GMCount Number of generated grand menaces. Fiddling with the number can cause crashes to the desktop, it's safer to increase GSGrandMenaceCount instead.
Some of these will be useful if you want to define a map for a custom game of some kind (that is not already supported)
- Find planets that are not colonized nor a moon nor have a orbital object.
Useful if you think one of your systems could use a new planet and don't want to make one.
WHERE parent_id IS NULL
AND id IN (SELECT orbital_object_id FROM planets)
AND id NOT IN (SELECT parent_id FROM orbital_objects)
AND id NOT IN (SELECT orbital_object_id FROM colonies)