Can someone upload 4.15 version please? link is broken.
I just want to make a suggestion: I have added Append to the to the Save String Text to File functions. I am by no means a programmer but these do work and I make sure to add them every  I use Victory. You just need to replace the functions in 2 files and recompile. Its just a slightly easier way instead of appending an array and overwriting.
VictoryBPFunctionLibrary.cpp:
bool UVictoryBPFunctionLibrary::FileIO__SaveStringTextToFile(
    FString SaveDirectory,
    FString JoyfulFileName,
    FString SaveText,
    bool AllowOverWriting,
    bool Append
) {
    if (!FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*SaveDirectory))
    {
        //Could not make the specified directory
        return false;
        //~~~~~~~~~~~~~~~~~~~~~~
    }
    //get complete file path
    SaveDirectory += "\\";
    SaveDirectory += JoyfulFileName;
    //No over-writing?
    if (!AllowOverWriting)
    {
        //Check if file exists already
        if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*SaveDirectory))
        {
            //no overwriting
            return false;
        }
    }
    if (!Append)
    {
        return FFileHelper::SaveStringToFile(SaveText, *SaveDirectory);
    }
    return FFileHelper::SaveStringToFile(SaveText, *SaveDirectory, FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), EFileWrite::FILEWRITE_Append);
}
bool UVictoryBPFunctionLibrary::FileIO__SaveStringArrayToFile(FString SaveDirectory, FString JoyfulFileName, TArray<FString> SaveText, bool AllowOverWriting, bool Append)
{
    //Dir Exists?
    if (!VCreateDirectory(SaveDirectory))
    {
        //Could not make the specified directory
        return false;
        //~~~~~~~~~~~~~~~~~~~~~~
    }
    //get complete file path
    SaveDirectory += "\\";
    SaveDirectory += JoyfulFileName;
    //No over-writing?
    if (!AllowOverWriting)
    {
        //Check if file exists already
        if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*SaveDirectory))
        {
            //no overwriting
            return false;
        }
    }
    FString FinalStr = "";
    for (FString& Each : SaveText)
    {
        FinalStr += Each;
        FinalStr += LINE_TERMINATOR;
    }
    if (!Append)
    {
        return FFileHelper::SaveStringToFile(FinalStr, *SaveDirectory);
    }
    return FFileHelper::SaveStringToFile(FinalStr, *SaveDirectory, FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), EFileWrite::FILEWRITE_Append);
}
VictoryBPFunctionLibrary.h:
    /** Saves text to filename of your choosing, make sure include whichever file extension you want in the filename, ex: SelfNotes.txt . Make sure to include the entire file path in the save directory, ex: C:\MyGameDir\BPSavedTextFiles */
    UFUNCTION(BlueprintCallable, Category = "Victory BP Library|File IO")
        static bool FileIO__SaveStringTextToFile(FString SaveDirectory, FString JoyfulFileName, FString SaveText, bool AllowOverWriting = false, bool Append = false);
    /** Saves multiple Strings to filename of your choosing, with each string on its own line! Make sure include whichever file extension you want in the filename, ex: SelfNotes.txt . Make sure to include the entire file path in the save directory, ex: C:\MyGameDir\BPSavedTextFiles */
    UFUNCTION(BlueprintCallable, Category = "Victory BP Library|File IO")
        static bool FileIO__SaveStringArrayToFile(FString SaveDirectory, FString JoyfulFileName, TArray<FString> SaveText, bool AllowOverWriting = false, bool Append = false);
            Not , but I can answer . Yes. The node Joy File IO Get Files will get files in a given directory with optional ext filter. That will give you an array of strings that you could ForLoop through and load them into a Texture2D array. I set our Load location through the Game.ini and used Get Custom Config Var String to set the given directory for the Get Files
is there a way to uninstall plugin? when i disable it , i cant open editor cause crashes
If you installed it in your project simply remove the directory from your plugin folder. Check your .uproject file too and make sure its not listed there… I think that’s it…!
teak
I did it , when editor restarts it crashes )=
Does it crash on ANY project that you load? Or, just the project that had the plugin?
Thanks, I shall be doing so!
Yes thank you!
Just want to write a thanks, . Reading through thread, you got a billion people pulling at you and asking you questions- but you got under control, and always up to date in such a professional manner. Kudos,
Happy Thanksgiving Everyone!!
![]()
You’re welcome! ![]()
Hee hee, thanks!
![]()
Quick comment on version for 4.21 as it applies to Android. I get errors during compile, but was able to correct.
I did  by commenting out include “DestructibleComponent.h” in VictoryBPFUnctionLibrary.cpp as well as the ENTIRE function (same file): bool UVictoryBPFunctionLibrary::VictoryDestructible_DestroyChunk(UDestructibleComponent* DestructibleComp, int32 HitItem)
Begin the comment out before the Bool UVictoryBPFunctionLibrary and after the last fence after the return false.
As most everyone knows doesn’t do Apex destruct, it builds. ![]()
I do note did best to try to #if / #endif these out to not conflict with Android, but it needed a bit more snipping. Perhaps moving those around instead of commenting would work as well. I just got it to compile, haven’t actually tested the Blueprints, but it looks like a boon to me - I’m getting for the first to load runtime textures; wish me luck on figuring it out! I do note too that the code is well commented, but wonder (no, I haven’t read of these comments, perhaps I missed it) if there is any readme or documentation?
Thanks for the functions!
Rob Milliken
Sorry for delay and thanks for answer , it only happends on project .
Hey have you thought of making exposed variables and functions for your Victory plugin? That would be awesome
Is there some missing headers ? Cause i alway have errors like : VictoryPC.cpp(36) : error C2027: use of undefined type ‘UAudioComponent’
When i compile the engine
Hello, I just want to say thanks you for your hard work. It help us a lot for our username system we actually use.
It also work on Linux.
Hi, had a quick question. Does plugin have a node using which one could stream a level from a packaged file.
For example - I have two projects. Project 1 is a packaged file (example1.pak) with map - “Test1”. I would like to stream map by loading the package file (example1.pak) from Project 2. Is possible using any of the current nodes?
UATHelper: Packaging (Windows (64-bit)):   E:\Unreal Games\Projects\UPlatformGame\Plugins\VictoryPlugin\Source\VictoryBPLibrary\VictoryBPLibrary.Build.cs: warning: Referenced directory 'D:\Programs\Epic Games\UE_4.21\Engine\Source\VictoryBPLibrary\Public' does not exist.
PackagingResults: Warning: Referenced directory 'D:\Programs\Epic Games\UE_4.21\Engine\Source\VictoryBPLibrary\Public' does not exist.
UATHelper: Packaging (Windows (64-bit)):   LogGameplayTags: Display: UGameplayTagsManager::DoneAddingNativeTags. DelegateIsBound: 0
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogClass: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogAutomationTest: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly
PackagingResults: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
PackagingResults: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
PackagingResults: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
PackagingResults: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
PackagingResults: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
PackagingResults: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly
PackagingResults: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
PackagingResults: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
PackagingResults: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
PackagingResults: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
PackagingResults: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
PackagingResults: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
PackagingResults: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogClass: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
UATHelper: Packaging (Windows (64-bit)):   LogInit: Display: LogAutomationTest: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly
Hey, are these warnings normal? (UE 4.21.1)
Hey.
Would you add ClientTravel node like you did for ServerTravel?
I want to use OnSwapPlayerControllers event in GameMode for various reasons and ServerTravel node doesn’t work for what I need.
I need to move players to another map without losing connection.
Best Regards.
Edit:
I created a function for ClientTravel in VictoryBPFunctionLibrary and a pull request on GitHub.
I successfuly rid off the warning about “VictoryBPLibrary\Public’ does not exist” by commenting out PublicIncludePaths in Build.cs file.

But i don’t have any idea what about these “not initialized properly” warnings, it builds fine, but with these warnings. They show up also on editor startup. Any advise, how to get rid off them?