VZ Modules

Reference pages for src/vz/ — mission and contract scripts: per-faction story/side contracts and jobs, in-game contextual tutorials, and the core mission-flow/save-data modules that tie a level together. Distinct from Resident Modules (the engine’s reusable library/world-object code) and Shell Modules (the front-end menu system).

Status: new, first pass from static source reading only. Every page here reflects what the decompiled Lua actually says, not confirmed by playing the game yet — treat function/behavior claims as a starting point, not a guarantee, until a page’s own wording says otherwise.

There are 114 of these, split into categories:

A different module shape than Resident Modules

Nothing here uses Resident ModulesInheritable/per-uGuid object pattern. Instead, nearly every contract/job/tutorial file inherit()s from a native task-framework base classMrxTaskContract, MrxTaskContractOutpost, one of the MrxTaskJob* family, or MrxTutorial. Unlike most of the engine’s other native globals (Object/Event/Player and friends, which have no decompiled source at all), these particular base classes do have their own resident/ module and wiki page — each vz/ page’s Inheritance section links straight to its actual parent’s documentation. Lifecycle methods are self-based overrides with an explicit “super” call to the parent, not OnActivate/Awake/Create keyed by uGuid:

inherit("MrxTaskJobDestroyType")
import("MrxVoSequence")

function Activated(self)
  MrxTaskJobDestroyType.Activated(self)   -- explicit "super" call
  self:_SetLabelFilter("VZ")
  self:_SetHeroOnly(true)
  self:_Go()
end

This is also the old, native contract/mission system. Confirmed by grep across the whole directory: zero files here call Contract.Register or reference _G.Contract. It’s exactly the WifMissionData/MrxTask system Contract.Register & Lifecycle describes as corrupting saves if a mod hooks into it directly — which is why ContractFramework.lua was built as an ephemeral, save-safe alternative instead. Reading these pages is useful for understanding how the shipped game’s own missions work, but don’t build a mod contract this way — use Contract Framework instead.

A handful of files (the wif* data/utility modules, stagingact1.lua, xQ!L.lua) have no inherit() at all and are stateless utilities or singleton-state managers instead — each page’s own “Instance pattern” section says which kind it is.


Back to top

This site uses Just the Docs, a documentation theme for Jekyll.