- Camera Lib : Collection of helper functions concerning in-game cameras.
- Coordinates : Within a star system, DSO always uses the same coordinate system:
- The tradestation is at position (0,0,0) and the hypergate is at position (0,0,10000). Most of the action will happen along this path.
- Alignment is following:
- Assume you are the tradestation and looking at the hypergate.
- - X is right
- - Y is upwards
- - Z is towards the hypergate
- DSO : A short for Darkstar One. Another popular one is "DS1".
- File Extensions
- .lua file : LUA is the scripting language we use in DSO. All missions are scripted using LUA. See Lua.org for lua basic tutorials and here for a reference of available commands.
- .bin file : Binary file. This file has been processed so that it is not human-readable anymore. DSO reads them during startup. If it cannot find a .bin file then the associated .ini files are opened and coverted into .bin format. Lua files also get converted into .bin format. The resulting file is the missions.bin.
- .ini file : Initialization files. They are human-readable. Use a text editor to edit them. They are usually kept within .cpr files
- .cpr file : A compressed (archive) file. Can be opened using various decompression utilities.
- .dds file : Direct Draw Surface format. An image format used in DSO for textures and in screens. To make use of them, use either the DirectX Texture tool coming with the DirectX SDK or a plugin for the graphics program of your taste.
- .dss file : Our savegame format. Each modification will contain an own set of savegames to avoid confusion. Savegames can be hacked but not modded. We do not provide support for hacked savegames .
- Have a look at those sites:
- MSDN: DXTech - Microsofts DirectX Texture Tool (included in the DirectX SDK)
- MSDN: DDS FileFormat (technical article)
- MSDN: Using Compressed Textures (technical article)
- devil - OpenSource image library, supporting .dds
- NVidia Texture Tools
- NVidia .dds - Photoshop PlugIn for .dds
- 3DSMax Plugins
- ATI Compressonator
- global.res : A resource file. Contains the strings used by DSO.
- Upgrades.ini : Contains information about upgrades for the ship.
- StarSystem.ini : Contains information about every star system in the game.
Quote[System000 ;Display More
Artefakt = 0 ; > 0, if there is an artifact inside the system
Bedroht = 0 ; > 0, if occupied by pirates
Bürger = 3.600000 ; population, counted in billions
Cluster = 0 ; index of the cluster this system belongs to
EnergyLevel = 0 ; determines the type of energy particles floating around
Faction = 1 ; pirate system
Function_X1 = 0 ; X1 value
Function_X2 = 3 ; X2 value
Function_X3 = 5 ; X3 value
Function_Y = 0 ; minimal level
NachbarRegel = 10 - 10 ; system becomes visible as soon as one of these systems is entered
Piratengang = 65535 ; index of pirate gang
Planeten = 2 ; number of planets in system
PosX = 4.500000 ; x position on map
PosY = 17.799999 ; y position on map
Produktion1 = 0 ; coal hydrates
Produktion2 = 1 ; proteins
Produktion3 = 3 ; plants
Produktion4 = 12 ; pharma
Produktion5 = 23 ; drugs
Produktionsfaktor = 0.920000 ; production factor
Regierung = 3 ; government
Sichtbarkeitstyp = 2 ; visibility type (2=made visible by neighbor)
StarLightId = 3 ; star light index (3=anarchy)
UniqueItem = 0 ; > 0, if an unique item is present
- planets.ini : Contains info about all fixed space objects (called "planets" here) in ALL star system.
Planetenanzahl = 5969 ; Number of planets in the whole ini file. May be greater but NOT smaller than the actual count!
Sternenanzahl = 403 ; Number of star systems that this ini file has stored planets for. Again, must be at least the actual count!
[Planet000_000 ; First index: star system index, second index: planet index within star system
Model = 3 ; Id of the 3D model to show for this orbiter
Orbitart = Sonne ; orbiter type ("Sonne" = "Sun")
Position = 464831.531250 / 1936431.875000 / 499874.875000 ; X, Y and Z Position in meters.
Radius = 20000.000000 ; Radius in meters
RotationSteps = 0 ; Timesteps needed for a complete rotation about its axis
SystemId = 0 ; Index of star system this belongs to
UmlaufSteps = 0 ; Timesteps for one complete circulation around the central orbiter
(This planet is the central orbiter, so the timesteps are 0 each)
- darkstarmod.ini : Contains info about the particular DSO mod. One file is needed inside every mod's subdirectory inside the "Customization" directory. Contains two parameters:
mod_name = Modding Tutorial ; name of the modification
mod_desc = Simple modding example ; a brief(!) descriptionJ
- Model : 3D objects created by a 3D program.
- Mission : Missions are scripted, not programmed. Thus they can be altered or created without having to recompile the game executable. This makes modding possible. Missions appear at different places in the game. There are terminal missions, missions started by the storyline, missions starting in free space and missions that are always active. More details will follow.
- Mission Lib : Collection of helper functions not contained in any of the other scripting namespaces.
- Script : Missions are scripted using the scripting language LUA. The original retail scripts are converted into the file missions.bin. Sources to them are not public.
- script event : Also know as trigger. Scripts can react to certain events like destroyed ships, the player entering a system or a timer running down.
- script function : Scripts can call various functions to interact with the world. Examples are creating wings of ships, giving wings new orders or starting voice messages or cameras.
- scripting namespaces : Hard-wired code collections available for scripting use. Each does contain a number of useful scripting functions. The namespaces are: math, lua, NStarSystem, NPlayer, NWing, NShip, NGroupAi, NCamera, NComm, NMission, NScript, NWaypoint, NObject, NContainer, NTerminal, NNPC, NGUI, NSound, NVector, NDebug. "math" and "lua" are original lua code collections. More details to follow.
- stringId : A name for a string that is used by the program instead of the text itself. StringId's are placeholders.
- Texture : Textures are images applied to a polygon or complete 3D Model. in DSO they are in .dds format.
- user_strings.xml : Contains additional strings used by a DSO modification. This is human-readable and can be edited by worksheet programs like MS Excel. Needs to be converted into .res format before it can be used. Use the Ascaron delivered tool XML2ResConverter.exe to do so.
- user_strings.res : A resource file. Contains additional strings used by a DSO modification. Is already converted and ready for use.
- Wing : A logical group of ships. Contains a wingleader and wingmen. You can only assign orders to the whole group. In DSO all ships are also in a wing, even if there is just one ship inside.
- Wingleader : Part of a wing. Each wing will have exactly one wingleader. If the wingleader is destroyed, you can rely on the wing having been eliminated.
- Waypoints : Wings may be ordered to fly to certain positions in space. These are called waypoints. Waypoints are space objects that will trigger a script event if the player or a certain ship comes close enough. They have a position and a given radius. See also coordinates.
- XML2ResConverter.exe: A tool to convert a user_string.xml to a user_strings.res. It needs to check the global.res to avoid overriding stringId's from the original game content.