Quick question as I am trying to see if this plugin will work for my case. I want to share data between 2 instances of unreal engine. This is so I can pass data easily.
think in the main game I have a leaderboard struct and want to also have that on other game instance.
Also how can I create the CSV on first run, in the build directory, then update the CSV when I update my array.
This plugin can be used for this purpose. You would have to write the CSV to an agnostic directory that both instances can access, or use a Google Sheet.
Save and Update are the same command in RDT, so whether youâre creating a CSV for the first time or it already exists and it will overwrite the existing CSV, the process is the same. The entire CSV will be replaced. Just keep that in mind.
In your application, you should first try to load the CSV if it exists, which will update your applicationâs understanding of the CSV. When data is updated in the game, first read the existing CSV and update the new array with your new data, then also make a call to update the CSV from the array you just updated. This is something you would manually set up one time. This would keep both instances in sync. Pull data => make additions => push data, just like version control.
Finally, this plugin is supported on Linux (I develop it in Arch) but because the marketplace does not distribute Linux binaries you will be required to build the development and shipping binaries for it yourself.
the packaged project works so fine with your Plugin but when i have internet on the pc
but when it is offline (without internet) i got this crash :(Assertion failed: IsValid() [File:D:\RocketSync\5.3.0-27405482+++UE5+Release-5.3\Working\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h] [Line: 1139])
Great plugin you created, I purchased it and it works just as expected!
One thing to add. Can you please cleanup the warnings in the 5.4 (and any other) version? It prevents us from finishing a project because we canât have warnings in our code by standard.
Specifically deprecation warnings.
Hey mkderin, you shouldnât see deprecation warnings unless youâre using deprecated code. Or are they engine deprecations for code the plugin itself is using?
[107/157] Compile [arm64] RuntimeDataTable.cpp
D:/MyProject/Plugins/RuntimeDataTable/Source/RuntimeDataTable/Private/RuntimeDataTable.cpp(83,19): warning: âTryGetStringFieldâ is deprecated: Passing an ANSI string to TryGetStringField has been deprecated outside of UTF-8 mode. Please use the overload that takes a TCHAR string. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
if (JsonObject->TryGetStringField(âclient_emailâ, TokenInfo.ServiceAccountEmail) &&
^
D:/UE/UE_5.4/Engine/Source/Runtime/Json/Public/Dom/JsonObject.h(382,2): note: âTryGetStringFieldâ has been explicitly marked deprecated here
UE_DEPRECATED(5.4, âPassing an ANSI string to TryGetStringField has been deprecated outside of UTF-8 mode. Please use the overload that takes a TCHAR string.â)
^
D:/UE/UE_5.4/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h(274,43): note: expanded from macro âUE_DEPRECATEDâ #define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
^
We get this warning for some other TryGetStringField, TryGetArrayField, TryGetObjectField, TryGetNumberField, GetStringField usages too.
Nah, I mean if your organization can disable warnings as errors in the build settings youâll be fine, but I can update these calls on my end, itâs just a matter of getting it approved on Fab.
Can your organization build plugins or is it policy to only use binaries? If needed, I can send you the updated source to unblock you, but youâll need to build it yourself until Fab updates.
Very kind of you to fix this, looking forward to it, thank you.
Time is not a pressure now for us so we can wait for the update on FAB.
Let me know when itâs up.
Btw we do build the plugins thatâs why we got the warnings. If itâs a simple enough solution to post it here, Iâm interested but we can wait for your official update no problem.
Hello, nice plugin, Iâve been using for awhile now⊠It works great when on single player.
But I cannot replicate the structure array⊠When setting values to a replicated variable using a âdummyâ structure array, all changes replicates, but if I use the array updated by the âUpdate Array from CSV infoâ, the changes wonât replicateâŠ
EDIT:
Actually, if my array is small enough(<400) it replicates properly, but if I want to replicate my full array of structs(way over 1k), nothing gets replicated⊠So, I am now thinking this is a UE problem. Could someone point me a direction?
Hello, I must apologize as I do not speak Portuguese. It sounds like you want to update data in realtime - are you asking about sending or receiving data? From where, and to where?
Portuguese (Portugal) machine translation:
âOlĂĄ, peço desculpa pois nĂŁo falo portuguĂȘs. Parece que pretende atualizar os dados em tempo real. De onde e para onde?â
Truly, Unreal Engine does not like to replicate large arrays. I think the limit is somewhere around 100 elements in practice. For anything larger, you would need to break up the array into chunks of several arrays.
You could also send the raw (or obfuscated) CSV to each client and have them update the array on their end. This does of course make it easier to cheat, but itâs an option worth exploring especially if itâs not competitiion-sensitive data being sent.