1. Hello Moon
Overview
Ghost in the Machine reworks UNC: Rogue VI on Luna using the Luna improvements supplied by Diversity rather than the vanilla level directly.
This tutorial recreates the first proof of that workflow in a separate DLC named Hello Moon. Do not make the exercise directly in Ghost in the Machine. A disposable DLC is easier to inspect, rebuild, install, and discard without affecting the quest project.
Diversity supplies higher-mounted versions of several Luna packages. Hello Moon must begin with Diversity's version of the package, preserve its work, add the tutorial changes, and mount above Diversity.
- Use Package Editor's Tools > Open version of file with highest mount priority command to determine which installed mod currently wins.
- Do not assume that the winner is Diversity. Ghost in the Machine or another mod may mount above it.
- Locate the copy supplied specifically by Diversity and copy that
.pccinto Hello Moon's source payload. - Preserve Diversity's exports, properties, and Kismet behavior.
- Declare Diversity as a required DLC and give Hello Moon a higher mount priority.
- Disable other mods that override the same Luna package while testing.
The highest-mounted command is diagnostic: it tells you which file the game will currently load. It does not necessarily identify the correct foundation for a compatibility override. Hello Moon is specifically built on Diversity, so its source package must come from Diversity even when another mod currently wins.
An ordinary package override replaces the lower-mounted package as a whole. It does not merge the two packages at runtime. Editing vanilla independently would therefore discard Diversity's changes.
The visible proof is deliberately small: display a new Hello Moon message after Shepard lands. It requires a new DLC, an inherited Diversity .pcc, a localized string, a BioSeqAct_ShowMessage action, landing-state Kismet logic, and an in-game test.
A completed Hello Moon sample package will be provided as a direct reference for this tutorial. Ghost in the Machine is a later application of the same general techniques, but its final implementation is not the reference for this exercise.
This exercise does not implement the Rogue VI quest changes.
Why begin with Hello Moon
Hello Moon is an end-to-end toolchain test. When its message appears, the developer has demonstrated that they can:
- identify the intended source package and distinguish it from whichever copy is currently highest mounted;
- distinguish a source-mod file from an installed copy;
- edit and save a package with Legendary Explorer;
- add resolvable, localized text;
- connect Kismet objects;
- rebuild and apply the DLC; and
- verify which installed package wins at runtime.
Failures can then be isolated to package selection, text resolution, Kismet, building, installation, mount priority, or timing. The Hello Moon DLC is disposable; the verified workflow is the result.
Before you begin
Complete 0. Mod Manager and Legendary Explorer overview first.
Use Mod Manager to create a DLC named Hello Moon. Configure it to require Diversity, mount above Diversity, and contain the Diversity version of the Luna .pcc being overridden.
Use Open version of file with highest mount priority to identify the package the game currently loads and check which DLC supplies it. If Diversity wins, copy that file into Hello Moon. If Ghost in the Machine or another mod wins, do not copy that version: locate the corresponding .pcc inside Diversity and copy Diversity's version instead.
Disable Ghost in the Machine and any other mod overriding the package while testing Hello Moon. Otherwise another mod may hide the tutorial package, or Hello Moon may unintentionally hide that mod's changes.
Make a save before landing on Luna so the sequence can be tested repeatedly.
Add the Hello Moon string
BioSeqAct_ShowMessage uses a numeric string reference; it does not contain the message text.
Add Hello Moon to the DLC's authored string catalog and run its normal build. Record the assigned ID for the Kismet variable. The same ID must appear in every localization. Until translations exist, copy the approved English text into every localized table.
Manual TLK editing can help with inspection or experiments, but project text should remain in authored source data and be regenerated during the build.
Add the Kismet flow
Open the inherited Luna package in Package Editor and then open its sequence in Sequence Editor. Add:
Level Loaded and Visible
-> Delay
-> BioSeqAct_PMCheckState (m_nIndex = 5470)
BioSeqAct_PMCheckState: False
-> return to Delay
BioSeqAct_PMCheckState: True
-> Delay
-> BioSeqAct_ShowMessage
The first delay prevents continuous polling. The second keeps the message from appearing before the visible Mako landing finishes. Loaded and Visible only starts the loop; it does not mean the Mako has landed. Beginning of Level and waiting only for texture streaming occur too early or are unsuitable here.
Configure the landing-state check
Add BioSeqAct_PMCheckState. Change its existing inherited property from m_nIndex = 0 to:
m_nIndex = 5470
Do not add a second m_nIndex property.
Vanilla sequences annotate boolean 5470 as Has the Rover Landed?, but it becomes true before the visible descent finishes. Connect True through another delay to the message. Connect False back to the polling delay.
Configure the message
Add BioSeqAct_ShowMessage. Connect a BioSeqVar_StrRefLiteral containing the assigned Hello Moon ID to Message.
Connect a second BioSeqVar_StrRefLiteral containing global string 166342 (OK in English) to AText. A one-button message needs neither BText nor DisplayTime.
Without AText, the action can run without drawing a visible panel, making the failure resemble a bad trigger or unresolved string.
Build and install the proof
Save the modified Diversity .pcc in Hello Moon's source payload and run the DLC build.
Restart Mod Manager after changing moddesc.ini, dependencies, mount priority, or source layout; it caches mod information aggressively. Apply Hello Moon, reopen the installed Luna package with the highest-mounted command, and confirm that Hello Moon now wins while Diversity is its foundation.
If Ghost in the Machine or another override still wins, disable it for the test. Do not copy its package into Hello Moon as a workaround.
Load the pre-landing save. The proof is complete when Hello Moon appears after landing and OK closes it. Once verified, retain Hello Moon as an experimental workspace or discard it.
Troubleshooting
The action runs but nothing appears
Confirm that AText is connected.
The state check behaves incorrectly
Confirm that its existing m_nIndex is 5470, with no duplicate property.
The message appears during landing
Increase the delay after the True output. Boolean 5470 becomes true before the descent finishes.
Legendary Explorer displays No Data
The editor may be unable to preview a custom TLK reference even when the game can resolve it. Confirm the ID exists in the generated and installed Hello Moon tables, then test in game.
The game uses the unmodified sequence
Confirm that the edited file is in Hello Moon's source payload, the DLC was rebuilt and reapplied, Mod Manager has refreshed its file list, Hello Moon mounts above Diversity, and its installed package is highest mounted.
Still to confirm
- Create a completed Hello Moon sample package for download from this site. The sample should contain the finished string, localized fallback entries, inherited Diversity package, and Kismet flow described by this tutorial. It is a learning reference, not an officially supported mod intended for normal gameplay.
- The exact Diversity Luna package used for the proof.
- The exact sequence path within it.
- The shortest reliable delay after boolean
5470, or a better post-descent event. - Behavior when revisiting Luna and when visiting another uncharted world.
- Whether finished behavior should run once per landing, planet, or save.
- A tested workflow for creating or importing a named nested sequence. Until confirmed, the tutorial should not require one.