Packages

General information

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

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.

DirectoryDescription

global

Resources in the 'global' section are applied once upon application launch and when enabling/disabling packages in the game settings.

The following resources are located in this section:

  • front-end interface files

  • sounds

  • music

  • videos

  • maps

scene

Resources in the 'scene' section are applied before scene loading, when creating a new session or when connecting to a session.

Localization

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

Package property settings

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

ParameterDescription

id

Unique Package Identifier. This identifier is essential for distinguishing packages. If the package is related to Steam DLC or Steam Workshop, Steam automatically assigns the identifier. 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, http://www.guidgen.com/).

legacy_id

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'. This substitution ensures that older references, such as save game links, continue to correctly identify the package.

name

Package Name. This is an optional parameter. If the package name is not specified, the system will use the name of the folder containing the package as the default. In the case of Steam downloadable content (DLC), this parameter is ignored.

author

Package author. Optional parameter. Displayed in the package properties.

order

Order in the list of packages. The value can be either positive or negative and influences the sequence in which packages are displayed in the settings. By default, the order is set to 0, positioning the package at the top of the list.

default_disabled

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.

hidden

This parameter determines whether the package is visible in the game settings window. If it is not specified, the package will be visible by default.

dependency <package id>

Dependency on another package. The dependency parameter block can be repeated to establish multiple dependencies. Packages are processed in the order that the dependency blocks are specified.

incompatible <package id>

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.

min_core_version

The minimum game version with which the package is compatible. If this parameter is not specified, the corresponding check is absent.

max_core_version

The maximum game version with which the package is compatible. If this parameter is not specified, the corresponding check is absent.

delete_global

List of virtually deleted resources when the 'global' section is activated.

delete_scene

List of virtually deleted resources when the 'scene' section is activated.

always_activate_scene

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.

always_activate_global

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.

client_only

The package content is available only on the client, it is not loaded on the server and does not affect gameplay.

obsolete

Allows hiding package resources (objects and textures) in the lists of available resources in the editor.

hash

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. The hash parameter value is automatically updated when the package is published in the Workshop.

sign

Digital signature. Only for packages released by Best Way. Packages with such a signature do not allow any modification.

If the signature is not verified, the package is considered corrupted and not loaded.

token_count

The number of tokens that this package provides. Tokens can only be assigned to packages released by Best Way.

token_sign

Digital signature for tokens. If authenticity is not verified, the tokens are ignored.

Example of .info file content
{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"}

Conflicts and their resolution

Conflict arises when the same resource is modified by more than one package.

Conflict resolution occurs by specifying the necessary sequence of package activation using blocks with the dependency parameter.

The result of resource modification depends on the order in which the packages are applied.

Specifying incompatible package IDs and the minimum/maximum game version compatible with the package ensures that any potential conflicts are resolved before they affect gameplay.

Example of advanced .info file content
{id "cc507783-2143-4598-99de-237a5ea5e621"}
{name "Fun games"}
{order 0}
{dependency "02f8e8f9-91d9-45e0-8ee6-dc56adae4763"}; main package
{default_disabled}
{min_core_version 1.302}
{incompatible "1b5f568d-552a-48ca-9ab9-41f1043145f5"}; Realism mod
{dependency “c32d8b45-92fe-44f6-8b61-42c2107dfe87”}; Id [A]
{dependency “ab5f568d-552a-42f9-9983-70f02cda4c5b”}; Id [D]
{dependency “2e4cac11-d58b-48ca-9ab9-aee01de80ec4”}; Id [C]
{dependency “516cf25f-f659-4d7a-bddc-41f1043145f5”}; Id [B]
{author "Created by username, at Mon Apr 17 16:39:49 2024"}

The package "Fun games" is compatible with the game version not less than 1.302 Not compatible with the Realism mod. The package "Fun games" uses the Main Package as its base resources and requires the activation of packages A, D, C, and B. The sequence of dependency blocks sets the order which these packages must be loaded. This ensures that each package functions correctly.

Examples of package property parameters

Example blockExplanationsAdditional

{order -100}

Lower the package in the package list by 100 points

{order +4000}

Raise the package higher in the package list by 4000 points

{default_disabled}

Default state is disabled

the same as {default_disabled 1}

{hidden 0}

The package is displayed in the package list

{hidden}

The package is not visible in the package list

the same as {hidden 1}

{dependency "b86c6020-9b25-4659-bcdf-53b12715a0a1"}

The package depends on the package with ID "b86c6020-9b25-4659-bcdf-53b12715a0a1"

{delete_global "/map/single/2-fra" "/video/menu.avi"}

When loading the global section the folder /map/single/2-fra and file /video/menu.avi are ignored

{delete_scene "/entity/service/flag"}

When loading the scene section the entity "flag" from the folder /entity/service/ is ignored.

Last updated