Level editor

To create your own planetary missions, start the game and click on "Level editor". You can either create a new level by selecting the type of planet you want to create, e.g. a grass planet, or you select one of your own planets to edit them. If you are sure you want to delete one of your levels, delete the file or move the mouse cursor over the corresponding button and click on the "X" symbol.

Next, place any number of objects you like to your scene. Select one of the five categories (see yellow area below) to select buildings, nature, props, NPCs or beasts. Below is a list of all models or creatures available in this list (see blue area). Simply click on any item to add it to your scene. The new model is automatically placed in the center of your screen. If you added a creature this way, it is animated with its default Idle animation.

Select a model by clicking on it with your left mouse cursor. De-select it by pressing the ESC key or by clicking with the right mouse key. Move an object around using the arrow keys on your keyboard. With the "+" and "-" you can change the scaling of an object. To rotate an object around the Y axis, use your mouse wheel when the object is selected. Press the Strg or Shift key while using the mouse scroll wheel to rotate the model around the X or Z axes. You can undo your last model operations by pressing Strg+Z.

Use the buttons next to the prop selection (see red border) to paint roads on the planet surface. You can place objects anywhere on the map, but your crew members will only be able to walk on these paths! You can repaint your roads with the default texture using the other button. Below these buttons are two buttons to create the paths and to show them (see yellow border). Click on the upper button to create paths. They are build on all road tiles you painted so far. When clicking on the button below, you can see a green grid. This is the grid your crew will use for navigation. They won't be able to walk outside this grid! You can click the button a second time to hide it.

The last thing you need to do is to set the start position of your crew! Use the button highlighted in the image below to set your start position. This position will be indicated by a crew member dummy that can't be selected. It just serves as a visualization of the start position.

After you created your scene, placed roads, built a graph and set the start position, you will see that both check boxes on the left side are checked. This indicates that the level is valid to be used in the game. All other things are automatically generated when the level is used, e.g. merchant inventories, mini map or behaviour of enemies.

In order to use the created levels in the game, you need to write a quest for it. Please see section Writing space quests below how to write quests.

You can find your levels on your hard drive like this: Open your Windows Explorer, enter %appdata%\Galactic Crew\Levels and press Enter. This folder contains all your level creations. If you want to share your levels with friends, send them your levels and the corresponding XML file with your quests and ask them to copy them into their folders. The game will soon support Steam Workshop. Until then, you have to share it manually.

Modding numerical values

You can change most numerical values of Galactic Crew like weapon turret damage, loot chances, firearm properties or enemy's hit points by editing a single XML file. Before you start changing this file, please read an online article about the structure of XML files, if you are not familiar with this file format. You can use any text editor to change it. However, I recommend using a text editor with highlighting. It makes work much easier.

Before you can start changing the values, you must have launched Galactic Crew at least once after Update 36 was published. Then, open your Windows Explorer and type %appdata%\Galactic Crew into the Explorer's address bar and press Enter. There are two folders that are important: Templates and Mods. Open the Templates folder and edit the file Mods.xml with any text editor.

As you can see, the file has four child nodes under its Root: one for each section. First, we will discuss SpaceCombat. This nodes has several child nodes, one for each weapon turret available in Galactic Crew. The values listed here are the base values for these weapon turrets. They might be altered at run-time, e.g. a weapon turret with Epic rareness has an increased rate of fire. This modifier is applied to the base values. Each weapon turret has three properties that can be changed: MinimumDamage, MaximumDamage and RateOfFire. Each time a weapon turret fires, it inflicts a random damage value in the range between MinimumDamage and MaximumDamage. The RateOfFire is the time (in ms) between two shots. Having a RateOfFire of 1000 means that 1 second is in between two shots. Please note that these values apply for all ships, e.g. they are change your enemies' ships! MinimumDamage must be at least 1, MaximumDamage must be a value larger than MinimumDamage and RateOfFire must be at least 500.

Next, I will explain GroundCombat. It lists all firearms available as child nodes. Unlike weapon turrets, firearms always inflict the same amount of damage. As a result, there are two properties that can be changed: Damage and RateOfFire. The firearm inflichts Damage points of damage every RateOfFire ms. The value of Damage must be at least 1 and RateOfFire must be 500 or larger.

Now, we come to the Creatures section. It lists all close-combat enemies. You can change two of their properties: HitPoints and MeleeDamage. HitPoints is the life a creature has. For comparison: crew members start with 200 when you create a new game. Increasing the value to 400 means that this creature has two times the life one of your crew member has by default. The MeleeDamage is a factor that is multiplied to a base value whenever a creature attacks. Unlike the damage of firearms and space weapon turrets, this value is not absolute, but a modifier. You should increase the MeleeDamage carefully. Otherwise, your enemies might become too tough to fight. The HitPoints value must be at least 50 and MeleeDamage must be at least 0.1.

Finally, we come to the Loot section. Each of these items can be looted from enemy spaceships after they have been defeated. The two values are chances in % to loot this item with the "Luck" bonus card (DefaultLootChance) and without it (LuckLootChance). These value are in %. That means having a value of 25 results in a 25% chance to loot this item after space combat. The valid values are between 1 and 100.

After you are done, save the file in the Mods folder. Do not change the file's name! When you start Galactic Crew the next time, it will load this file and use your values.

Writing space quests

You can write your own space quests by creating one or more XML files. Each file can have as many space quests as you want and you can have as many files as you want. If you want to share your work with other people, simply send the files and ask them to copy them into the Mods folder.

As a first step, create a new XML file in the Mods folder. The name of the file must start with the text Quest, so the file name could be Quest.xml, Quest_123.xml, QuestMyStuff.xml, etc. But if can't be something like MyQuest.xml.

The root node of the XML file must be called Quests. It has an attribute called removeBaseQuests. If the attribute's value is True, it means that all (!) space quests from the base game are discarded and only modded quests are used. This is perfect to either test your work or to ignore the original quests, because you don't like them. To keep all original quests in-game, set the value to False. The base file will look like this:

For each quest you want to write, you need to add a child node to Quests. The child node must have the name Quest and two attributes: encounter and text. In case of a space combat, the encounter attributes defines the type of enemy you fight. Possible values for this attribute are Miner, Merchant, Pirate and Scientist. If this quest does not have any space combat, set this attribute to any of these four values. The attribute text contains the text that is shown as text description. I will show an example after the next paragraph.

Each quest must have at least one option the player can select. The two most common options are Okay and Cancel. Every option must be added as a child to the Quest node. The Okay and Cancel options both have just a single attribute text that defines the text that is shown on the buttons. When the user clicks on an Okay button, he gets rewarded. This is normally used for situations in which the player helps someone or he loots from debris. By pressing the Cancel option, the quest is aborted and the player does not get any reward. Have a look at this very simple quest below and how it looks in Galactic Crew.

The Okay and Cancel options are the most common ones. However, there are more options available. Next, I want to show you how to travel to planets and dungeons. In order to travel to a planet, add a child node called Planet. This node also needs an attribute text that contains the text that will be displayed on the in-game button. This button alone is not enough, because the quest also needs to know which planet you want to visit. Therefore, you need to add an additional attribute planet to your Quest node. The text of this attribute specifies the type of planet you want to visit. If there are different versions of the same planet type (like medieval villages or ancient temples), the game will pick a random planet using the specified theme, when the button is clicked. Possible values for the planet attribute are: AncientTemple, CrashSite, FieldLab, MedievalVillage, MiningOutpost, PirateHideout, Scrapyard and WeaponSmuggler. If you want to use your own levels that were created in the level editor, use the file name of the level here. If the file name is Test 123, enter this text as planet name. The planet is then loaded from your Levels folder. The example below shows a quest that enables travelling to one of the crash site planets.

Dungeons work like planets, butt the XML node is called Dungeon and the Quest node must have an attribute called dungeon. The value of this attribute defines which dungeon type is used, if the player wants to visit the dungeon. Possible values are DrugLab, Mine, Prison, ScienceLab and Temple. Example:

You can also build a decision tree by having sub-quests. You can use the node SubQuest to define a multiple-choice option. This node needs a text attribute like the other options, but it also needs one or more Quest node children. When the user clicks on the SubQuest option, one of the child quests is randomly selected as new quest. This way, you can build decision trees and you can create quests with multiple outcomes. Take a look at the following example:

When the quest is shown, the player has three options: Getting more options, getting rewards or not getting anything. The Cancel and Okay were already discussed. When the player selects the first option, SubQuest, one of its sub-quests are randomly selected as new quest. That means, when the player selects the first option, he or she either gets the quest to visit a dungeon or a quest to visit a planet. Each of the sub-quests follow exactly the same rules as noral quests. This means you can create new sub-quests in these sub-quests creating a large tree of quests and creating all sorts of different outcomes. You can use it to create complex dialogs, if you want.

Galactic Crew