[Modding] Non-public blocks causing crashes and other undesirable behaviour in RadialMenu.

gruzzob shared this bug 6 months ago
Reported

Firstly: create two BlockVariantGroups. one containing Cockpit\PassengerSeatSmall and another containing CubeBlock\LargeDeadAstronaut. These are both vanilla blocks with <Public>false</Public>false in their block definition. Either for backwards compatibility with older blueprints or used in encounters/cargo ships. PassengerSeatSmall is Small Grid, and LargeDeadAstronaut is LargeGrid. These two entries can be used to demonstrate 3 different bugs all related to them being non-public

  1. The groups are shown at all. This is in contrast to the g-menu and its BlockCategory entries where the BlockVariantGroups stop showing at all when no public blocks are present.
  2. Selecting the group containing the PassengerSeatSmall causes and immediate crash. More specifically, selecting a small grid block with <Public>false</Public> in its block definition causes a crash. This also occurs if the non-public small grid block is the second entry in the BlockVariantGroup.
    This is also a regression from .205/Contact, where a crash would only occur if the selected blocksize had been changed to before selecting the group (for groups where the first block was non-public), or when navigating past a public block in the BlockVariantGroup to a non-public one.
  3. Selecting the LargeDeadAstronaut shows the component list of the last inspected block, or nothing if no block had been inspected during this opening of the RadialMenu. More specifically, selecting a large grid block <Public>false</Public> in the block definition.
    This is essentially the same behaviour as in .205/Contact, except there it happened for non-public small grid blocks as well, which instead now cause a game crash.


The core of the issue stems from the Radial Menu not respecting the publicness of blocks in the same manner as the G-Menu and BlockCategories

Replies (1)

photo
1

Hello Engineer,

Thank you for reaching out to us on the forum and we sincerely apologize for the delayed response to this thread.

To help us investigate this issue further, could you please share the MOD or definition files that add the BlockVariantGroups you are using?

  • If it's a local MOD, you can find it in your AppData\Roaming\SpaceEngineers\Mods folder. Please zip your MOD folder and attach it here.
  • If it’s published on Steam or Mod-io Workshop, please share the link instead.

Additionally, please include the steps you use to reproduce the issue in-game. And if possible, a screen recording/video showing the issue as well. This will help us reproduce the issue accurately.

Kind regards,

Keen Software House: QA Department

photo
1

The minimum reproduction mod (as described in the original post) attached. As stated in the original post it contains a pair of Block Variant Groups, one consisting only of the small grid Cockpit\PassengerSeatSmall and the other consisting only of the large grid CubeBlock\LargeDeadAstronaut. Both blocks have been flagged non-public in the game files so do not show up in the G menu either via scrolling or using the search.

As for the three stated bugs, for all three you will need a controller connected.


Bug 1. The entries show at all

To reproduce:

  1. Create a new world, loading the attached mod. Settings shouldn't matter, but my testing one had progression disabled
  2. Load said world
  3. Go in to the radial menu
  4. Tab left to get to [Modded #1]

From there you will see two entries. One for each of the two modded Block Variant Groups described above. Only one can actually be selected without causing a crash. see Bug 2 about that.


ea4e63112d7a6ab528633f048ffa00d3

5d4c4f1661e1f8d569e57ca1024292f9


Bug 2. Selecting a small grid entry crashes the game.

To reproduce.

  1. Create a new world, loading the attached mod. Settings shouldn't matter, but my testing one had progression disabled
  2. Load said world
  3. Go in to the radial menu
  4. Tab left to get to [Modded #1]
  5. Move the stick up to select the first entry. This one contains the small grid Cockpit\PassengerSeatSmall block.

From there the game should crash. See log attached below.

For comparison you can tab move the stick right and up to select the second entry (containing the large grid CubeBlock\LargeDeadAstronaut), this will not crash like with the small grid block but what is shown is the subject of the third bug.

Bug 3. Selecting a large grid entry shows cached block information.

To reproduce:

  1. Create a new world, loading the attached mod. Settings shouldn't matter, but my testing one had progression disabled
  2. Load said world
  3. Go in to the radial menu.
  4. Move the stick to view a block.
  5. Tab to get to [Modded #1]
  6. Move the stick up to select the second entry. This one contains the large grid CubeBlock\LargeDeadAstronaut

You will see a block that is "Unavailable in the selected size", but has the correct block name, and the components list of the last selected block. If no prior block had been selected then a blank components list will be shown instead.


0014f0d62fa950f04a37eec044780be8


I think that was everything. It's been a while, and I largely just worked off what I wrote in my original post (and the mod I found I had made to write it up).

photo
1

Hello Engineer,

thank you for the provided information on this issue.

Issue was successfully reproduce on our side and put into our internal system.

Kind Regards

Keen Software House: QA Department

photo
Leave a Comment
 
Attach a file
You can't vote. Please authorize!