Difference between revisions of "Developer EXE"

From Sins of a Solar Empire - Official Wiki
Jump to navigation Jump to search
Line 18: Line 18:
== '''Show Errors and Logging''' ==
== '''Show Errors and Logging''' ==
On starting the Developer.exe for the first time, the game will rewrite your settings file. Your achievements will be okay but most other information, including hot keys, player name, resolution settings etc. all return to default, so make a back up of your user/diplomacyuser files so you paste them back into your App Data Settings folder when you are done. While this is a pain, this will allow the Dev.exe to display any errors it encounter in game right when it encounters them, which is crucial for debugging mods. Also the Dev generates a log of these error messages and tons of other useful info in your AppData debug folder (the log name is displayed on the Dev menu bar). These two features are really the only way to get useful data about crashes, so learn to use them.
When using the developer.exe, two helpful setting changes are enabled by default. First, any major errors or alerts the game runs into will be displayed in a little error box in game, which is a huge help for debugging mods. Second, these errors along with tons of other bits of extra background information, is logged into files in your AppData debug file (the log name is displayed on the Dev menu bar). These two features are really the only way to get useful data about crashes, so learn to use them.
== '''File Reloading''' ==
== '''File Reloading''' ==

Latest revision as of 00:18, 10 October 2016

The Developer.exe is a modding tool that can be found in your main Sins of a Solar Empire folder <Sins Path>, along with the regular game.exe. There is one for each version of Sins you have, and are named Sins of a Solar Empire [Version] Dev.exe. They are updated automatically with the base game via Steam.

Most features of the Developer are accessed through a special menu that is brought up by pressing [ctrl+shift+.]. All the commands should work the same on all versions of Sins, though some features may not be present in all versions.

The dev.exe has its own mod folder in Rebellion, so for testing mods you must start the dev.exe once to create the mod folder, then move any mods you're working with to the newly created dev mod folder.


Update: As of Rebellion version 1.84, the dev.exe has its own set of setting, camera and UI mapping files. It will no longer override your standard settings file. Earlier versions and expansions will have the dev.exe replace these files.


Special Features

In addition to the commands that are defined below, the Developer.exe has several built in special features that are always active and a big help with testing mods. These include.


Show Errors and Logging

When using the developer.exe, two helpful setting changes are enabled by default. First, any major errors or alerts the game runs into will be displayed in a little error box in game, which is a huge help for debugging mods. Second, these errors along with tons of other bits of extra background information, is logged into files in your AppData debug file (the log name is displayed on the Dev menu bar). These two features are really the only way to get useful data about crashes, so learn to use them.

File Reloading

The Dev.exe supports the reloading of several file types in game. This means if you change one of these supported file types in a mod, the game will immediately reload the file with any changes on the spot. For things like entity weapon visual settings, textures and other files where you really have to see the effects in the game engine, this saves you a ton of time that would have been wasting by exiting and relaunching Sins every time you had to make a change. Supported file types include (though there may be others) all entities, textures (though some visuals like tech trees and most UI are only generated at the beginning of the game and thus this doesn't help you), meshes, and string files. Note .manifest files do not reload, so if you need to add an entirely new file you still need to exit the game.


Change Galaxy Menu [a]

Note: Most if not all commands in this menu will result in a desync if used in a multiplayer game. You can still play the game but spawned units and the like will not be visible to the other player. Things like Setup Quick Play and Overrides may work better, but try to have you and your friends apply them at the same time to try and avoid problems.


[a] - Setup Quick Play

Triggers a variety of factors for faster gameplay. All build times are set to zero, planet slots are ignored, all research is given (including artifacts), 1000000 of each resource is given, and game speeds are increased. Essentially a one click trainer mode.


[b] - Overrides Menu 

Contains several useful toggle options.

  • [a] - All Entities Detected: Toggles the ability to detect all entities regardless of whether you have a unit in the gravity well or not. It also reveals unexplored planets. Good for map testing/analysis.
  • [b] - Damage disabled: Prevents any entity from taking damage. Unlike the invulnerability buff units will still attack and use abilities as normal. Good for testing weapon effects or watching long battles.
  • [c] - Hyperspace Disabled: Prevents all units from phase jumping to a different planet. Note since it doesn't apply the phase jump disabled buff the AI will still attempt to retreat, but will just sit at the edge of the gravity well instead of jumping. To fix this, just switch active player, disable the AI and give those units a new order.
  • [d] - Instant Build times: All ships, structures, upgrades, strikecraft etc. build times are built near instantly.
  • [e] - Instant Ability Cooldowns: All ability cooldowns set to zero.   
  • [f] - No slot Restriction: Structures can be built regardless of planet slot restrictions.
  • [g] - Infinite Antimatter: Slightly misleading, it sets all antimatter costs to zero.   
  • [h] - Max Planet Population: Instantly gives each planet the maximum available population. Note this is not the maximum for that planet overall, but the maximum for that planet population upgrade. For that, use the give all planet upgrades command.       
  • [i] - Weapons Disabled: This is misleading because it only prevents each ship from firing at any new targets it acquires. Old attack orders will still be carried out and weapons will still fire at other ships that aren't being target. Thus its most useless. Better to just set auto attack off for all ships involved.


[c] - Change Entity Menu

Contains several useful commands that will be applied to a selected entity or entities.

  • [a] - Damage: Damages the selected entity. Seems to a certain percent of total hull and/or shields, perhaps 20%. Can be used on planets as well. If the entity's hit points would be set to 0, it is destroyed.
  • [b] - Kill: Instantly destroys the selected entity. Cannot be used on planets.
  • [c] - Kill All Pirates: Instantly destroyers all pirate ships and defeats the pirate player (thus no more pirate raids). Pirate bases become colonizeable but any pirate structures (like turrets) remain.
  • [d] - Spawn Pirate Raid: Instantly triggers a pirate raid if pirates are still active. Useful for testing pirate mods.
  • [e] - Colonize Planet: Immediately colonizes the selected planet for your current player.
  • [f] - Give Experience: Raises the targeted capitalship's level by one point.
  • [g] - Give all planet upgrades: Gives the selected planet all available upgrades. Won't change your capital unless you don't have one.
  • [h] - Remove all buffs: Removes all buff effects from the targeted entity. Note passive abilities will just immediately be reapplied.
  • [i] - physics drifting testbed: Needs to be used on a fleet, it takes all the ships and sends them back to previous fleet point, where the AI then attempts to rebuild the formation. Good for working out clipping or fleet positioning issues.
  • [j] - Change Asteroids: Allows you to change the type of aesthetic asteroids in the particular gravity. You can even set things not possible for that entity type, like an asteroid field within a terran gravity well. Good for cinematic shots.
  • [k] - Change Dustclouds: Like change asteroids, allows you to change the aesthetic dust clouds in a gravity well. Not as noticeable however, and sadly rings are not included.
  • [l] - RotateEntity: Rotates the selected entity clockwise while you hold the button down. Useful for immobile entities like structures, and can even be used to speed up planet rotation.


[d] - Change Player Menu

Contains several options to manipulate player settings.

  • [a] - Change Active Player: Changes which player you are in control of. Rather than selecting a particular player, player 0 will become player 1 etc. and then wrap around each.
  • [b] - Change active player isAI: Toggles AI on or off for whatever player you are controlling. Can be used to disable a player momentarily, observe the AI's commands or play with an assistant AI.
  • [c] - Change Race: Changes the current player's race in alphabetical order of the player.entity files. While existing units won't be changed, shipyards, research lab etc. seem to carry over. Note this may cause minidumps (especially since you can select the pirates this way) and should be avoided.
  • [d] - Change Color: Switches between the various player colors, even if they are already used.
  • [e] - Change theme: Switches between the various player symbols, even if they are already used.
  • [f] - Change Picture: Switches between the various player pictures for that faction.
  • [g] - Give Resources: Gives all players 1000 metal and crystal.
  • [h] - Give Credits: Gives all players 1000 credits.
  • [i] - Give All research: Give all players all research, except for artifacts.


[e] - Change AI Menu

Options to adjust the AI. Some options and perhaps this whole menu is for Diplomacy only

  • [a] AI Disabled - Allows you to disable or enable all AI players.*
  • [b] Auto Cast Disabled - Allows you to enable or disable autocast on all entities.*
  • [c] Auto Attack Disabled - Enables or Disables auto attack on most units. Units that have manually had this setting changed or have auto attack disabled by default seem unaffected.*
  • [d] AI Always Accepts Alliances - Toggle that forces the AI to accept your alliances, regardless of diplomatic status. May not work on locked teams.*
  • [e] Give Relationship - Increases your relationship status with all players by 0.1.*
  • [f] Take Relationship - Decreases your relationship status with all players by 0.1.*
  • [g] Give Envoy Bonus - Increases the envoy bonus relations modifier with all players by 0.5.*
  • [h] Give Quest - Not sure what this is, selecting it had no visible effect.
  • [i] Send Taunt - Not sure what this is, selecting it had no visible effect.


[f] - Spawn Entity

Allows you to spawn capitalships, frigates, planet bonuses, cannon shells, or debris for a selected player. Options are populated from the player.entity file. Very useful for spawning specific units or fleets to test.


[g] - Single Step

Allows you to move the game by one frame while paused.*


[h] - AutoSingleStepRate

Sets the game to automatically do x amount of single steps while the game is paused. Essentially puts the game in slow motion for low values, begins to look like lag for higher ones.*


[i] - Take Screenshot on singlestep

Toggles whether you want the game to take a screenshot with a manual single step.*


[j] - Change Build Speed

Switches the build speed setting in game.


[k] - Change Culture Speed

Switches the culture rate setting in game.


[l] - Change income rate speed

Switches the income rate setting in game.


[m] - Change Research Speed

Switches the research speed setting in game.


[n] - Change physics Speed

Switches the physics speed option in game.


[o] - Change Fleet Supply Scalar

Switches the fleet supply setting in game.


[p] - Spawn Random Event

Lets you spawn most of the random events if you have the Stellar Phenomenon DLC. Only the Partisans and Open Rebellion events are unavailable, but the new culture flip option in change entity allows you to test that one.


Overlays Menu [b]

Note: All commands in the Overlays section are toggles for windows that show various statistics. Some do overlap and can be difficult to use all at once. I assume it is safe to use these in a multiplayer game.

[a] - Show FPS: Brings up a one line window in the upper left behind the Dev commands window. Displays your frames per second, good for performance testing.

[b] - Show Profiler: Not entirely sure what this is for. Brings up a window in the upper left (behind Show FPS) that says something about nodes, worst time and call count. Since I had zero nodes while testing I was unable to see what it does.

[c] - Show Memory: This gave me a one line window where Show FPS was with a red error message saying "No Memory Info Available". Thus I was unable to figure out what this displays. If this function works on someones machine please leave a post detailing the statistics it displays.

[d] - Show Entity Type Counts: A very useful large window on the middle right that displays the number of each type of entity (stars, frigates, research, abilities, buffs etc.) currently in the game. Can be used for map testing, AI analysis, ability testing, anything where the number of an entity type is important.

[e] - Show Times: A small window in the upper left below show FPS and in front of Show Profiler. It seems to display the number of real and game (non-paused) seconds that have elapsed, as well as something about "Queued Ticks"(?).

[f] - Show Network State: Creates a large menu in the upper left below show FPS and in front of Show Profiler and Show Times. Gives ICO and LAN status, server status, and some statistics about each player like latency, Sim Updates etc. Must have for network/lag troubleshooting.

[g] - Show Commands: Toggles a very large window on the right over the Show Entity Type Counts menu. Seems to count the number of times a large list of commands (Ping, purchase capitalship level etc.) have occurred in the current game.

[h] - Show Client Update Status: No window appeared after enabling this. I suspect it may only work in network/ICO games.*

[i] - Show Effect Status: Brings up a window in the central upper part of the screen that counts the number of all categories of various effects, the number of those effects that have been terminated, and most importantly the memory usage of each category. Useful for identifying which effects types are slowing your mod down.

[j] - Show Particles Status: Brings up a large window in the upper left below FPS and in front of all the previous commands. Shows a lot of statistics about individual particle effects, including which ones are actively being rendered, a count of the current particle and simulation pool, which particles are using the most memory, and the total number of each specific particles both on screen and generated gamewide. Somewhat overlaps show effects status but since the window background is partly transparent they should be useable together.

[k] - Show Bloom Composition Steps: Brings up four red boxes in the upper left screen in front of everything. It seems to be a mini-rendering window that shows just the bloom on your current screen at different resolutions (if you have it enabled). I'm sure its uses are obvious to someone who knows what exactly bloom is and wants to mod it.

[l] - Show Shaders: Brings up a window in the middle right above Entity Type Counts and Commands. It shows all the shaders being used by the game and the "technique" they are being used with.

[m] - Show Direct3D setup: Toggles a menu in the very upper right in front of everything except show shaders. Gives your resolution, device type, and other statistics that would presumably be useful for Direct3D troubleshooting.

[n] - Show Textures: Brings up a large menu starting from the upper left that shows the total amount of loaded textures and the amount of memory they are using. It also shows the "worst textures" that take up the most memory (the Advent Starbase seems to win by a large margin) and some statistics about them. Extremely useful for optimizing textures.

[o] - Show Sounds: Toggles a menu in the upper left hand corner that oddly displays CPU usage as well as sound channel information, the number of sounds currently playing, and the channel and volume of each sound.

[p] - Show Music: Brings up a menu in the upper right behind everything but show entity types and commands. Show the currently playing track, the current action and emotion levels, some statistics that determine these, and the track playing at each location you have visited and how many seconds of each track that have already played. A must have for configuring custom music, or just trying to understand how the music system works.

[q] - Show Entity Create Counts: Brings up a window across the entire left screen that shows the number of each individual entity created so far in the game, starting with the ones that have the most. Note that this can cause an extreme performance decrease (I went from 60 fps to 10) while this is shown, so you should only use it while paused. Very useful for tracking a specific entity in the game.

[r] - Reset Entity Create Count: Okay, this the one thing in this menu that is not a toggleable window. This resets the data shown in Entity Create Counts, so if you are only interested in tracking entities after a certain point in game (or you want to use that tool with a decent fps) this could come in handy.

[s] - Show Market Status: Toggles a menu in the upper right that displays most of the market variables, such as the state, crash and boom threshold of each resource, when the game will check again for a crash/boom etc. If your mod changes the market settings or you are curious to how this system works, you probably want to use this quite a bit.