Separate their purposes#
libraries/jobs.xml describes NPC ships: selection, orders, quotas and allowed locations. The job engine maintains population; with buildatshipyard="true", replenishment after initial generation involves shipyard construction. A quota is not a promise of immediate spawning.
libraries/god.xml mainly defines station and object generation. Their subsequent development also uses MD. Version 9.00 added production entries using plans and staged construction. A station entry does not replace a patrol job.
A minimal quota patch#
Example libraries/jobs.xml in your extension:
<diff>
<replace sel="/jobs/job[@id='wiki_scout_patrol']/quota/@galaxy">2</replace>
</diff>Prerequisite: wiki_scout_patrol is a fictional ID for a valid job you have already created, with one quota, sufficient maxgalaxy and suitable location/ship definitions. Vanilla has no such entry.
Effect: after patching, that entry's galaxy attribute becomes 2. This changes the job engine's target; it does not command two additional ships to appear. A selector matching nothing does not perform the intended edit. Existing ships do not automatically receive new equipment when a template changes.
New games and loading saves#
| Scenario | Check |
|---|---|
| New game | Activation, selected dataset, quotas and location filters |
| Loading with a new extension | Its saved extension record and content/@save |
| Updating an already known extension | A new god entry does not imply automatic station generation |
| Editing a job | Job state is saved, definitions are read from files; existing ships may retain old orders |
Chem O’Dun reports that loading generates god entries for an extension first added to the save with save="true"; updating an already known extension does not do this. save="false" does not trigger that load-time generation. On a new game this flag alone does not disable generation.
A dataset for a particular gamestart or galaxy replaces the root set rather than adding to it. Also inspect matchextension: restricting selection to the extension's space can exclude the base map.
Check the result#
Compare a new game and a copy of an older save separately. Record the entry ID, actual object count/location and expected replenishment route. For stations investigate -godlog; an empty report without a generation pass proves nothing. Updating an existing world may require a separate MD migration.
This is a source-based explanation and learning patch, not our own game acceptance test. Continue with the manifest, game starts and debugging.