# Packages

### Directory Structure Overview

All packages are located in the packages/ folder in the main game folder.

<figure><img src="/files/v5cSzHiZvMHQez2SJuk9" alt=""><figcaption><p>Root folder of the game</p></figcaption></figure>

Each package is in its own folder. \
The package ID is written in the **.info** file.\
Package resources are divided into two main sections based on usage principles.

<figure><img src="/files/ScIQNPDM58oX9xS9EKcr" alt=""><figcaption><p>Main package folder</p></figcaption></figure>

<table><thead><tr><th width="209">Directory</th><th>Description</th></tr></thead><tbody><tr><td>global</td><td>Resources in the 'global' section are applied once upon application launch and when enabling/disabling packages in the game settings.</td></tr><tr><td>scene</td><td>Resources in the 'scene' section are applied before scene loading, when creating a new session or when connecting to a session.</td></tr></tbody></table>

### Localization <a href="#lokalizaciya" id="lokalizaciya"></a>

Packages support localization. \
Localizable resources are placed in the .lang/ folders ("lang" is the language code, usually two characters).

<figure><img src="/files/pcdKVNNv3J6QR1I5vYRR" alt=""><figcaption><p>Localization archives</p></figcaption></figure>

{% hint style="info" %}
**See also:** [Package file structure ](/documentation/foundational-knowledge/game-resource-architecture/package-file-structure.md)\
\&#xNAN;*(detailed description of `global/`, `scene/`, and their subdirectories and localization archives.)*
{% endhint %}

## Package property settings

Package properties are defined by parameters in the `.info` file, located at the root of the package folder.

<table><thead><tr><th width="252">Parameter</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>Unique Package Identifier.<br>This identifier is essential for distinguishing packages. <br>If the package is related to Steam DLC or Steam Workshop, Steam automatically assigns the identifier. <br>For packages created via the Settings interface, a unique identifier is automatically assigned. In all other scenarios, it is advisable to use a suitable GUID generator to create the identifier (for example, <a href="http://www.guidgen.com/">http://www.guidgen.com/</a>).</td></tr><tr><td><code>legacy_id</code></td><td>During the assignment of a Steam DLC ID or Workshop ID to a package, the 'id' parameter is substituted with 'legacy_id'. The value for 'legacy_id' is sourced from the original 'id'. <br>This substitution ensures that older references, such as save game links, continue to correctly identify the package.</td></tr><tr><td><code>name</code></td><td>Package Name.<br>This is an optional parameter. <br>If the package name is not specified, the system will use the name of the folder containing the package as the default. <br>In the case of Steam downloadable content (DLC), this parameter is ignored.</td></tr><tr><td><code>author</code></td><td>Package author. <br>Optional parameter. <br>Displayed in the package properties.</td></tr><tr><td><code>order</code></td><td>Order in the list of packages. <br>The value can be either positive or negative and influences the sequence in which packages are displayed in the settings. <br>By default, the order is set to 0, positioning the package at the top of the list.</td></tr><tr><td><code>default_disabled</code></td><td>This option indicates that the package is disabled by default and remains so until the player enables it in Game Settings. If this option is not set, the package is considered enabled upon installation.</td></tr><tr><td><code>hidden</code></td><td>This parameter determines whether the package is visible in the game settings window. <br>If it is not specified, the package will be visible by default.</td></tr><tr><td><code>dependency &#x3C;package id></code></td><td>Dependency on another package. <br>The dependency parameter block can be repeated to establish multiple dependencies. Packages are processed in the order that the dependency blocks are specified.</td></tr><tr><td><code>incompatible &#x3C;package id></code></td><td>Used to specify the IDs of packages that are incompatible with this package. The game will disable any package with the specified ID when this package is activated.</td></tr><tr><td><code>min_core_version</code></td><td>The minimum game version with which the package is compatible. <br>If this parameter is not specified, the corresponding check is absent.</td></tr><tr><td><code>max_core_version</code></td><td>The maximum game version with which the package is compatible. <br>If this parameter is not specified, the corresponding check is absent.</td></tr><tr><td><code>delete_global</code></td><td>List of virtually deleted resources when the 'global' section is activated.</td></tr><tr><td><code>delete_scene</code></td><td>List of virtually deleted resources when the 'scene' section is activated.</td></tr><tr><td><code>activate_always</code></td><td>Forcibly loads the package in every session, regardless of scene requirements; may cause instability or desync in multiplayer.</td></tr><tr><td><strong><code>activate_implicit</code></strong></td><td>Marks the package for global loading when it modifies core gameplay systems or global rules (e.g., balance, UI, entity behavior).<br>Recommended for use in the mod’s info file when the package introduces global changes that must be available across all scenes</td></tr><tr><td><code>always_activate_scene</code></td><td>Always activate the 'scene' section of this package if the 'global' section is active. By default, the 'scene' section is activated if a map from the 'global' section of this package is loaded.</td></tr><tr><td><code>always_activate_global</code></td><td>This parameter indicates that the package modifies global game settings. When this package is enabled, it is consistently marked in the list for creating a host, in game saves, and other relevant areas.</td></tr><tr><td><code>client_only</code></td><td>The package content is available only on the client, it is not loaded on the server and does not affect gameplay.</td></tr><tr><td><code>obsolete</code></td><td>Allows hiding package resources (objects and textures) in the lists of available resources in the editor.</td></tr><tr><td><code>hash</code></td><td>The hash parameter value allows for pre-determining that the package content is the same among different users and on the server when playing together. <br>The hash parameter value is automatically updated when the package is published in the Workshop.</td></tr><tr><td><code>sign</code></td><td><p>Digital signature. <br>Only for packages released by Best Way. <br>Packages with such a signature do not allow any modification. </p><p>If the signature is not verified, the package is considered corrupted and not loaded.</p></td></tr><tr><td><code>token_count</code></td><td>The number of tokens that this package provides. <br>Tokens can only be assigned to packages released by Best Way.</td></tr><tr><td><code>token_sign</code></td><td>Digital signature for tokens. If authenticity is not verified, the tokens are ignored.</td></tr></tbody></table>

<details>

<summary>Example of .info file content</summary>

```
{id "cc507d63-2143-4598-99de-237a5ea5e621"}
{name "Example Package"}
{order 1}
{dependency "02f8e8f9-91d9-45e0-8ee6-dc56adae4763"}; main package
{incompatible "01f8e8f9-91d9-45e0-8ae6-dc56afae46dd"}; Realism mod
{default_disabled}
{max_core_version 1.302}
{author "Created by Best Way, at Mon Apr 15 16:39:49 2024"}
```

</details>

### **Examples of package property parameters**

<table><thead><tr><th width="299.1640625">Example block</th><th>Explanations</th></tr></thead><tbody><tr><td><code>{order -100}</code></td><td>Lower the package in the package list by 100 points</td></tr><tr><td><code>{order +4000}</code></td><td>Raise the package higher in the package list by 4000 points</td></tr><tr><td><code>{default_disabled}</code></td><td>Default state is disabled (the same as <code>{default_disabled 1}</code></td></tr><tr><td><code>{hidden 0}</code></td><td>The package is displayed in the package list</td></tr><tr><td><code>{hidden}</code></td><td>The package is not visible  in the package list (the same as <code>{hidden 1}</code></td></tr><tr><td><code>{dependency "b86c6020-9b25-4659-bcdf-53b12715a0a1"}</code></td><td>The package depends on the package with ID "b86c6020-9b25-4659-bcdf-53b12715a0a1"</td></tr><tr><td><code>{delete_global "/map/single/2-fra" "/video/menu.avi"}</code></td><td>When loading the global section the folder /map/single/2-fra and file /video/menu.avi are ignored</td></tr><tr><td><code>{delete_scene "/entity/service/flag"}</code></td><td>When loading the scene section the entity "flag" from the folder /entity/service/ is ignored.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bestway-1.gitbook.io/documentation/foundational-knowledge/game-resource-architecture/packages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
