ExtensionInfo.xml

**`ExtensionInfo.xml`** is the core file of Extensions.

The file is defined inside the `<HacknetExtension> </HacknetExtension>` tags.

Usage:

```
<Language>en-us</Language>
```

Supported languages:

* English: `en-us`
* German: `de-de`
* French: `fr-be`
* Russian: `ru-ru`
* Spanish: `es-ar`
* Korean: `ko-kr`
* Japanese: `ja-jp`
* Chinese, simplified: `zh-cn`

Usage:

```
<Name>Test Extension</Name>
```

Maximum name length is 128 characters.

### `AllowSaves`

This tag enables or disables the ability to save the game throughout the extension.

Usage:

```
<AllowSaves>true</AllowSaves>
```

Set to `false` to disable saving.

### `StartingVisibleNodes`

Appending Node IDs to this tag will make them appear on the netmap once the extension is launched.

Usage:

```
<StartingVisibleNodes>Node1,Node2</StartingVisibleNodes>
```

### `StartingMission`

The Mission file that is defined in this tag will load in the mission once the extension is launched.

Usage:

```
<StartingMission>Missions/StartingMission.xml</StartingMission>
```

### `StartingActions`

Please provide the list of actions that are not compatible with `StartingActions`

The Action file that is defined in this tag will load in the set of actions once the extension is launched.

Usage:

```
<StartingActions>Actions/StartingActions.xml</StartingActions>
```

**IMPORTANT**: the `StartingActions` have issues working with certain actions. To avoid any future problems, define the action file via the `missionStart` tag of the starting mission.

### `Description`

This tag defines the Extension description that appears within Hacknet.

Usage:

```
<Description> --- Test Extension ---
This is the extension description.</Description>
```

### `Faction`

This tag defines the faction(s) that are involved in the extension. To define multiple factions use multiple tags.

Usage:

```
<Faction>Factions/ExampleFaction.xml</Faction>
```

### `StartsWithTutorial`

This tag enables or disables the Tutorial from the base game.

Usage:

```
<StartsWithTutorial>true</StartsWithTutorial>
```

Set to `false` to disable it.

### `HasIntroStartup`

This tag enables or disables the startup boot sequence.

Usage:

```
<HasIntroStartup>true</HasIntroStartup>
```

Set to `false` to disable it.

### `StartingTheme`

This tag defines the starting theme of the extension.

Usage:

```
<StartingTheme>Themes/ExampleTheme.xml</StartingTheme>
```

The following original themes can be used:

* `TerminalOnlyBlack`
* `HacknetBlue`
* `HacknetTeal`
* `HacknetYellow`
* `HackerGreen`
* `HacknetWhite`
* `HacknetPurple`
* `HacknetMint`

e.g.:

```
<StartingTheme>HacknetTeal</StartingTheme>
```

### `IntroStartupSong`

This tag defines the starting song of the extension. Custom songs must be in `.ogg` format to work properly.

Usage:

```
<IntroStartupSong>Music/ExampleSong.ogg</IntroStartupSong>
```

Original and DLC soundtrack can be used by defining their name (without the format) from these folders:

* `Content/Music`
* `Content/DLC/Music`

Usage (for OST):

```
<IntroStartupSong>The_Quickening</IntroStartupSong>
```

## Sequencer

The following tags define the behavior of the ESequencer executable.

### `SequencerTargetID`

This tag defines the target node that the player connects to upon the ESequencer spin-up. Supports a node ID or an IP address (for dynamic targets).

Usage:

* ID

```
<SequencerTargetID>SequencerTarget</SequencerTargetID>
```

* IP address

```
<SequencerTargetID>127.0.0.1</SequencerTargetID>
```

### `SequencerSpinUpTime`

This tag defines the time it takes (in seconds) for the ESequencer to connect the player to the target node.

Usage:

```
<SequencerSpinUpTime>10.5</SequencerSpinUpTime>
```

### `SequencerFlagRequiredForStart`

This tag defines the flag that is required for the ESequencer to become available.

Usage:

```
<SequencerFlagRequiredForStart>testFlag</SequencerFlagRequiredForStart>
```

### `ActionsToRunOnSequencerStart`

This tag defines the action file that will activate upon the ESequencer startup.

Usage:

```
<ActionsToRunOnSequencerStart>Actions/SequencerActions.xml</ActionsToRunOnSequencerStart>
```

## Workshop

### `WorkshopDescription`

This tag defines the Extension description in the Steam workshop.
Usage:

```
<WorkshopDescription>Description goes here</WorkshopDescription>
```

### `WorkshopLanguage`

This tag defines the language of the Extension.

Usage:

```
<WorkshopLanguage>English</WorkshopLanguage>
```

### `WorkshopVisibility`

This tag defines the visibility of the Extension in the Steam Workshop.

Usage:

* Public

```
<WorkshopVisibility>0</WorkshopVisibility>
```

* Friends only

```
<WorkshopVisibility>1</WorkshopVisibility>
```

* Private

```
<WorkshopVisibility>2</WorkshopVisibility>
```

### `WorkshopPreviewImagePath`

This tag defines the path to the preview image.

Usage:

```
<WorkshopPreviewImagePath>WorkshopLogo.png</WorkshopPreviewImagePath>
```

### `WorkshopPublishID`

This tag defines the workshop ID. Do **NOT** change it manually - Steam will automatically set the ID once the Extension has been uploaded to the workshop.

```
<WorkshopPublishID>NONE</WorkshopPublishID>
```

Once it is puiblished, the ID will be set.