Is this a UE5 bug? DataTable values don't update for blueprints until engine restart

Hi everyone. I have gone through a couple debugging sessions in my project where I would fire off an animation montage node, but the wrong animation would play. After some time chasing my tail, I realized that everything was actually right and that it was a dataTable that I was using that didn’t ‘update’ while playing until I restarted the engine…

  1. I have a dataTable for weapon info
  2. On begin play, I do get table row by name using the row name and set a reference to the data in a struct variable
  3. I have an element in the table that is an array of animation montages for the weapon
  4. When its time to fire off an animation I use the table row ref → gun montage → get node with the index of the animation

This all works correctly. However, the ‘issue’ or perhaps ‘bug’ is that when I make a change to one of the animations in the array in the dataTable, the previous animation continues to play. The only way I can get it to pick up the new ‘changed’ value, is to restart the engine.

Anyone else experience this?

A ridiculous question, for sure, but you do Save the data table after applying changes, right?

All questions are valid! I can confirm that it was absolutely saved. I thought maybe this is what happened too, but after re-creating multiple times, there is just nothing I can do but restart. stand alone, multiple clients, listenserver, everything acts the same. I do a restart, and it all works as expected. Its almost like the DT change isn’t updated in the memory somehow.

I have one more thing I haven’t tried, which is to delete the entire array of montage entries from the DT and replace them from scratch. But even if that were to work, its just faster to do a quick restart :slight_smile:

Thanks for the reply!

Are you caching the results of the datatable lookup somewhere else first?

Had to sign in to thank you here. didn’t even think about this!