Dune Awakening Server Guide

Hi CubeCoders team,

Prefacing everything below that I have had OpenAI Codex working on this
I have used Codex to assist me with the Self Hosted servers since the initial release

Below is the report from Codex, after we tried debugging my existing instance, then created a brand new one to compare what was missing

I found what appears to be an AMP bootstrap/update issue affecting the latest Dune: Awakening story content.

Environment:

  • AMP 2.7.2.8

  • Linux/Podman deployment

  • Dune dedicated server Steam build 25396338

  • Existing server reproduced against a completely fresh AMP Dune instance and database

Symptom:

After the latest update, entering the new Arrakeen Spaceport story location left the client indefinitely displaying:

Connecting to Arrakeen Spaceport

It never advanced to the normal loading screen. Starting Story_HeighlinerDungeon did not help because that is a separate map.

The affected story flow appears to be:

  1. Arrakeen Spaceport / Orbital Monitor

  2. Destroyed Zanovar

Root cause:

Both an upgraded server and a completely fresh installation seeded only 31 rows in dune.world_partition.

The following maps were present in director_config.ini, DefaultGame.ini, and world-template.yaml, but absent from dune.world_partition:

  • CB_Story_DestroyedZanovar

  • CB_Story_OrbitalMonitor

  • CB_Arrakis_Story_Paranoid_PrayerRoom

  • CB_Arrakis_Story_Glutton_DiningRoom

  • CB_Arrakis_Generic_Sietch_Room

The package contains:

duneawakening/server/scripts/setup/update_maps.sh

That script lists all these maps. However, its update_maps() logic checks whether a map already exists in:

.spec.serverGroup.template.spec.sets

It only calls add_map() when the server-set entry is missing.

The current world template already contains server-set definitions for the new maps, so that check returns true. Consequently, add_map() is skipped and the corresponding database world-partition entry is never added.

In other words, the database-partition check and server-set check appear to be incorrectly coupled.

Evidence from a pristine installation:

  • Fresh download and first boot completed successfully.

  • Steam build was 25396338.

  • Fresh database still contained only partitions 1–31.

  • No Zanovar, Orbital Monitor, Prayer Room, Dining Room, or generic Sietch Room partition existed.

  • The Director configuration nevertheless contained sections for Destroyed Zanovar and Orbital Monitor.

  • DefaultGame.ini allowed both command-line levels.

Validated workaround:

I added the missing maps through Funcom’s existing database helper:

SELECT dune.add_partition_unique(
  'CB_Story_DestroyedZanovar',
  '{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
  0
);

SELECT dune.add_partition_unique(
  'CB_Story_OrbitalMonitor',
  '{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
  0
);

SELECT dune.add_partition_unique(
  'CB_Arrakis_Story_Paranoid_PrayerRoom',
  '{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
  0
);

SELECT dune.add_partition_unique(
  'CB_Arrakis_Story_Glutton_DiningRoom',
  '{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
  0
);

SELECT dune.add_partition_unique(
  'CB_Arrakis_Generic_Sietch_Room',
  '{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
  0
);

On the existing database, these became partitions 32–36 and received the expected generated labels:

  • DestroyedZanovar_0

  • OrbitalMonitor_0

  • ParanoidRoom_0

  • GluttonRoom_0

  • SietchTalab_0

I then created/materialized the corresponding AMP mock-Kubernetes ServerSetScale resources.

Both critical maps now start successfully:

  • CB_Story_OrbitalMonitor: ready/alive

  • CB_Story_DestroyedZanovar: ready/alive

The original server now runs the five normal maps plus both story maps successfully.

Suggested fix:

  • Check/add .spec.database.template.spec.deployment.spec.worldPartitions independently from .spec.serverGroup.template.spec.sets.

  • Ensure update_maps.sh is invoked during both clean bootstrap and server updates.

  • Allocate partition IDs from the actual current maximum because partition 31 is already occupied by CB_SurvivalChallenge_Station_15 in the database I tested.

  • Materialize scale resources for newly added maps so on-demand travel can launch them.

I retained a pristine reproduction instance and can provide sanitized database output, AMP logs, Director configuration, or exact scale-resource payloads if useful.

2 Likes