Problema: Las variables del objeto se quedan en 0 aunque la estructura dentro de la función está bien

Hola a todos,
Estoy trabajando en un pequeño proyecto en el que genero gatos (TokenCat) usando una función que recibe estos parámetros:

  • in_rol (texto) → el nombre del rol (por ejemplo "tank")
  • out_obj (objeto) → la instancia del gato que quiero completar
  • roles (estructura) → una variable con todos los datos de los roles
  • nextId (número) → contador de identificadores
  • txt_debug (objeto) → un texto para depuración

Todo funciona excepto una cosa:
Dentro de la función puedo leer perfectamente la estructura (por ejemplo rolesRef.tank.color devuelve "naranja"),
pero cuando escribo los valores en el objeto todos aparecen como 0 en el texto de debug.

Ejemplo del texto de depuración después de crear el gato:
id=c1 | rol=0 | color=0 | V:0 A:0 S:0 | hab=0

Sin embargo, dentro de la misma función, si hago
VariableString(rolesRef.tank.color)
sí me muestra "naranja" correctamente.

Este es un resumen del bloque dentro de la función:

CopyArgumentToVariable2("roles", rolesRef)
CopyArgumentToVariable2("nextId", tmpNextId)

tmpRole = VariableString(in_rol)
vmin = Variable(rolesRef[VariableString(tmpRole)].vida[0])
vmax = Variable(rolesRef[VariableString(tmpRole)].vida[1])
tmpColor = VariableString(rolesRef[VariableString(tmpRole)].color)
tmpHab   = VariableString(rolesRef[VariableString(tmpRole)].hab)

vida = floor(RandomInRange(Variable(vmin), Variable(vmax)))

out_obj id    = "c" + ToString(Variable(tmpNextId))
out_obj rol   = tmpRole
out_obj color = tmpColor
out_obj vida  = vida
out_obj hab   = tmpHab


No da errores, pero todos los valores (excepto el id que aparece como c1 y es correcto) aparecen como 0.

He comprobado lo siguiente:

* La estructura rolesRef es correcta (puedo imprimir cualquier campo y sale bien).
* La función se llama dentro de un For each TokenCat.
* Los parámetros se pasan en el orden correcto.

¿Podría ser un problema de tipo o de alcance al asignar las variables dentro de la función?


Cualquier aclaración o idea sobre cómo GDevelop maneja las variables de objeto dentro de funciones sería muy agradecido 🙏

![Captura|690x442](upload://lHTQjBpRsgGbrNJjHjWmyx8X1Hd.jpeg)

![image|690x85](upload://9qq8BoaWU9mBtD26i7LuwruV4nG.png)