godotengine / godotengine/godot

Nodes in typed dictionaries do not do not show changes in game made by code (4.4 dev 3 / C#)

Open
#97,850 4 comments 2 reactions 0 assignees View on GitHub
bug topic:dotnet
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Godot 4.4 dev 3

### System information

Godot v4.4.dev3.mono - Windows 10.0.22631 - Multi-window, 2 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4070 Ti (NVIDIA; 32.0.15.6590) - 13th Gen Intel(R) Core(TM) i9-13900KF (32 threads)

### Issue description

I have multiple Nodes (in my case Controls) in a typed dictionary. The key is a string and value is the control.

When I want to access the Control Node in the typed dictionary and change its visibility for example, it does not reflect the made changes in game.

It works fine when the node is just a exported property. But all changes (even changing text of labels) are not showen. When debugging the changes seem to be adopted but in the game window nothing has changed.

Example:

I made two tests.

Pressing Right MouseButton makes changes to the exported Label "SameLabel". This is working fine.

Pressing Left MouseButton wants to make changes to the same Label but it is just in a dictionary. But this is not working. The changes will reflect in code but not in game

**Pressing RMB**
image

Changes are done correctly
image

**Pressing LMB**
image

Changes are not done in game
image

### Steps to reproduce

1. Export a Godot.Collections.Dictionary and add a Node as value
2. Get the Node via Code
3. Change ANYTHING via code from the Node (This should not work)

### Minimal reproduction project (MRP)

[Issues.zip](https://github.com/user-attachments/files/17267189/Issues.zip)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.