On this page

liveupdate

Functions and constants to access resources.

Functions

liveupdate.get_mounts(): Record<string | number, unknown>

Get an array of the current mounts This can be used to determine if a new mount is needed or not

// Output the current resource mounts
pprint("MOUNTS", liveupdate.get_mounts());

// Give an output like:
// DEBUG:SCRIPT: MOUNTS,
// {
//   1 = {
//     name = "liveupdate",
//     uri = "zip:/device/path/to/acchives/liveupdate.zip",
//     priority = 5
//   },
//   2 = {
//     name = "_base",
//     uri = "archive:build/default/game.dmanifest",
//     priority = -10
//   }
// }

Returns

  • mounts: Record<string | number, unknown> — Array of mounts

liveupdate.add_mount(name: string, uri: string, priority: number, callback: (...args: unknown[]) => unknown): number

Adds a resource mount to the resource system. The mounts are persisted between sessions. After the mount succeeded, the resources are available to load. (i.e. no reboot required)

// Add multiple mounts. Higher priority takes precedence.
liveupdate.add_mount("common", "zip:/path/to/common_stuff.zip", 10, (result) => {}); // base pack
liveupdate.add_mount("levelpack_1", "zip:/path/to/levels_1_to_20.zip", 20, (result) => {}); // level pack
liveupdate.add_mount("season_pack_1", "zip:/path/to/easter_pack_1.zip", 30, (result) => {}); // season pack, overriding content in the other packs

Parameters

  • name: string — Unique name of the mount
  • uri: string — The uri of the mount, including the scheme. Currently supported schemes are 'zip' and 'archive'.
  • priority: number — Priority of mount. Larger priority takes prescedence
  • callback: (...args: unknown[]) => unknown — Callback after the asynchronous request completed

Returns

  • result: number — The result of the request

liveupdate.remove_mount(name: string): number

Remove a mount the resource system. The remaining mounts are persisted between sessions. Removing a mount does not affect any loaded resources.

// Add multiple mounts. Higher priority takes precedence.
liveupdate.remove_mount("season_pack_1");

Parameters

  • name: string — Unique name of the mount

Returns

  • result: number — The result of the call

Constants

liveupdate.LIVEUPDATE_OK

LIVEUPDATE_OK

liveupdate.LIVEUPDATE_INVALID_HEADER

The handled resource is invalid.

liveupdate.LIVEUPDATE_MEM_ERROR

Memory wasn't allocated

liveupdate.LIVEUPDATE_INVALID_RESOURCE

The header of the resource is invalid.

liveupdate.LIVEUPDATE_VERSION_MISMATCH

Mismatch between manifest expected version and actual version.

liveupdate.LIVEUPDATE_ENGINE_VERSION_MISMATCH

Mismatch between running engine version and engine versions supported by manifest.

liveupdate.LIVEUPDATE_SIGNATURE_MISMATCH

Mismatch between expected and actual integrity data for legacy liveupdate verification.

liveupdate.LIVEUPDATE_SCHEME_MISMATCH

Mismatch between scheme used to load resources. Resources are loaded with a different scheme than from manifest, for example over HTTP or directly from file. This is typically the case when running the game directly from the editor instead of from a bundle.

liveupdate.LIVEUPDATE_BUNDLED_RESOURCE_MISMATCH

Mismatch between between expected bundled resources and actual bundled resources. The manifest expects a resource to be in the bundle, but it was not found in the bundle. This is typically the case when a non-excluded resource was modified between publishing the bundle and publishing the manifest.

liveupdate.LIVEUPDATE_FORMAT_ERROR

Failed to parse manifest data buffer. The manifest was probably produced by a different engine version.

liveupdate.LIVEUPDATE_IO_ERROR

I/O operation failed

liveupdate.LIVEUPDATE_INVAL

Argument was invalid

liveupdate.LIVEUPDATE_UNKNOWN

Unspecified error