First of , absolutely love plug-in, has made my life sooo much easier!
Just wanted to mention something with the Real World nodes. The Get Current OSTime node return string doesn’t include milliseconds, yet if I append the return string to include .<milliseconds> the Get Passed Since Previous node accepts it and works as intended, outputting the passed in milliseconds. Was it intentional to not include milliseconds in the Get Current OSTime? If so, might be worth mentioning how to include it manually in the description since it took me longer than I’d like to admit to figure out that was the problem.
Hi, just to let you know the plugin you made for me has now seen action on TV! So thanks for that. A small question - does your ip node get the ip on the local network or the internet? (I need to get the local one)
Thanks again!
Hi there!
Welcome to the forums!
The UE4 function itself declares that it does not return milliseconds:
/**
* Returns the string representation of date using a default format.
*
* The returned string has the following format:
* yyyy.mm.dd-hh.mm.ss
*
* @return String representation.
* @see Parse, ToIso8601
*/
CORE_API FString ToString() const;
Yet, as you say, the parsing function which takes the string accepts it if milliseconds are added onto the end.
For the sake of the node itself it makes more sense if the string includes the milliseconds
BP node Update
So I’ve updated my BP node!
FString UVictoryBPFunctionLibrary::RealWorldTime__GetCurrentOSTime(
int32& MilliSeconds,
int32& Seconds,
int32& Minutes,
int32& Hours12,
int32& Hours24,
int32& Day,
int32& Month,
int32& Year
){
const FDateTime Now = FDateTime::Now();
MilliSeconds = Now.GetMillisecond( );
Seconds = Now.GetSecond( );
Minutes = Now.GetMinute( );
Hours12 = Now.GetHour12( );
Hours24 = Now.GetHour( ); //24
Day = Now.GetDay( );
Month = Now.GetMonth( );
Year = Now.GetYear( );
//MS are not included in FDateTime::ToString(), so adding it
//The Parse function accepts if MS are present.
FString NowWithMS = Now.ToString();
NowWithMS += "." + FString::FromInt(MilliSeconds);
return NowWithMS;
}
It will be in my next release
Wohoo! Congratulations ! Victory BP Library and your project on TV!!
The IP node is for actual internet IP, because it relays to http://api.ipify.org to find out your ip address
When you say you want to get your local ip address, isn’t that going to be 127.0.0.1 ?
Config Suite of BP Nodes
’ Suite of Custom Config Section BP Nodes!
Using my suite of Config BP nodes, you can create as many of your own custom config file sections as you want!
You can both create and retrieve ini variables with any name and fundamental type that you want!
**Supported Types:**
Bool
Int
Float
Rotator
Vector
Color
String
Why Use a Config Var?
Config vars have several benefits
- Persistent data storage without using a SaveGame struct or GameInstance, store simple quantities of data and player customization way! Data is stored between level loads and even after the current instance of the game is shut down.
So in way config vars have greater persistence than the GameInstance class!
-
Player-Driven Customization, Players of your game can tweak the config vars that you make available for them on their hard disk, by editing the .ini file directly, just like AAA games! is the most significant advantage of using config files, and their real core purpose.
-
Simplicity, simpler to use than the BP SaveSystem (which is quite wonderful by the way), but not quite as powerful in that you can only store basic data types, not UObjects and Actors.
-
**Organization, **you can create as many config header sections as you want using my nodes, organizing your custom settings way!
**Game.ini**
of your custom created config vars and sections are stored in:
**Saved/Config/Windows/Game.ini**
Players can navigate to location on their harddrive to edit your ini files just like any AAA game would allow!
Here's what my **Game.ini** file looks like after running some tests!
```
[DebugWindows]
ConsoleWidth=160
ConsoleHeight=4000
ConsoleX=-32000
ConsoleY=-32000
[/Script/UnrealEd.ProjectPackagingSettings]
BuildConfiguration=PPBC_Development
StagingDirectory=(Path="E:/MYPROJECT_DELETE")
FullRebuild=True
ForDistribution=False
UsePakFile=True
UseOBB_InAPK=False
CulturesToStage=en
[Victory]
BoolVar=True
VectorVar=X=1.000 Y=2.000 Z=9000.123
StrVar=Yay For Custom Config Vars!!!
FloatVar=234.000000
```
**Now you have fully featured ability to use config variables entirely in BP!**
PS: Here's example usage!

**Latest plugin download on the UE4 Wiki: (7.16 mb) **
Plugin Release Dates and UE4 Engine Versions
**Victory Plugin Binaries for Packaged Games**
https://wiki.unrealengine.com/File:VictoryPluginPackaged.zip
Victory Plugin on Media Fire
Please note the mediafire version includes both the editor and packaged game binaries in the same file
**Donations**
Donations can be sent to me via:
http://lightningfitness.org/donate/
Enjoy!
:)
No, I mean like a 192.168.0.10 - the address the router gives on the LAN. I’m running some software using the brilliant TouchOSC app on my phone or iPad to drive commands in unreal. The downside is I need to configure the app with the right target address and port in order to talk to the engine and vice versa. Getting the ip would be good to save the operator from having to run ipconfig to get the details.
, I love your work but I have a request – if you really want to win the Internet, you’ll make these for everyone:
=0lp3HD3RQOY
Thanks for your hard work!
I’m not sure why you asked in thread, effect has nothing to do with what provides here. What you are asking him for is to make a graphical effect and the framework to use it.
is something you make yourself or hire someone to do it for you, since it’s a fairly specific . It’s not something which would fit into 's BP plugin.
Create your own topic and ask nicely, someone might do it for you. The UE4 community is generally very helpful, so it’s worth a try.
Objectively, it’s not so much an effect request than a request for the ability to modify triangles or texels via a BP node. Sounds pretty good to me.
I see now, watching the video suggested for me you were asking for the whole effect rather than a specific utility used to create that. Now that you formulated it it does make sense asking for it here, sorry for my confusion ^^
How do you correctly unload? I am trying to do “Unload Stream Level”. If I do <LEVELNAME>VictoryInstance<INSTANCENUMBER> Unreal crashes. If I do UED_PIE_0_<LEVELNAME>VictoryInstance<INSTANCENUMBER> it does not unload. Not sure if there is an equivalent Victory Unload I should be using instead.
I have an actor that I use to create my map instance and I store the string there so I can retrieve it later on “Event Destroyed”
How to Unload Level Instances
Thanks for helping out !
Welcome to the forums tundra_cooo!
So you mean the ability to paint on triangles of a mesh, for the blood effect, not the ability to warp them real-, right?
[FONT=Comic Sans MS]Welcome to the forums Scott Brown!
You dont have to store a string
You should store a reference to the Level instance that is created, which I pass out of my Load Level Instance node.
Then when you are ready to unload that level, simply set the variable ShouldBeLoaded to false by dragging off of your saved reference to that level instance.
LevelStreaming.h
/** Whether the level should be loaded */
UPROPERTY(Category=LevelStreaming, BlueprintReadWrite)
uint32 **bShouldBeLoaded**:1;
/** Whether the level should be visible if it is loaded */
UPROPERTY(Category=LevelStreaming, BlueprintReadWrite)
uint32 **bShouldBeVisible**:1;
**
It’s an uncommon design structure in UE4 to have it work way but it works great!**
And it wont ever crash, and will find the exact level instance that you want
If returning and storing ‘FName(*UniqueLevelPackageName)’ from the streaming code,
he can as well use the ‘Get Streaming Level’ node with that map name attached to Package Name input and set Should be Loaded to false from there.
Hi! First of : MANY MANY MANY THANKS FOR YOUR AWESOME WORK!
Now… to my problem: When i try to pack my project using File -> Package Project -> Windows -> Windows (64-bit) i got the following message:
-
My “Build Configuration” is set to “Development”.
-
I Downloaded “VictoryPlugin.zip” dated October 14th, 2015 from here A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums and i’ve started using your AWESOME plugin with ZERO PROBLEMS in the editor version of my project (even if a run the project as “Standalone Game” trough the Editor Play Button).
-
I’ve tried to pack my project and i got the above message, so… i’ve found that i need the “VictoryPluginPackaged.zip” and i downloaded it (dated October 14th, 2015) from the same link as above.
-
I’ve copied the "VictoryPluginPackaged\Binaries" folder of the zip to merge with the "MyProject\Plugins\VictoryPlugin\Binaries" folder.
-
When i try to pack my project i got always the same problem as above.
i’m working only with Blueprints and i don’t know how to write in C++, compile, recompile, etc.
I’ve seen you say “Because is a plugin, you dont have to do any code compiling and can use my BP nodes in a content-only project!” in the opening post… so… i guess i’m doing something wrong…
Any help?
You just need to have VS installed, you don’t need to use any C++ in your project. So just install it and then it will work
, any advice on how you would suggest us (users of plugin) to test our project in previews like 4.11 to find bugs in 4.11 before the stable version is released, since your plugin does not yet work with 4.11? And if I remove your plugin from my project, it crashes in startup, so that also won#t work… So at the moment I would have to manually remove nodes I use from your plugin first and then remove your plugin, then create a copy of project in 4.11 preview and then test it, but that would take ages since I use so many different nodes from your plugin everywhere and its probably impossible for me to find them …
Or do you know an easy way to find nodes from your plugin? I wish they would be named VictoryXYZ, but only some are.
So… i have to install VS in any case… ok, thanks… i’ll try
Hello !
I am having some troubles with victory plugin and the consoles. I get some serious crashes with VP enabled.
Is there a “special” way for me to compile it in order to work? Have you ever heard something like before? My other plugin works just fine.
Because of the NDA’s i cant post here any more details. For any specific questions please pm me
Thank you!!
Hi ,
I have been using your plugin with BPs successfully. However, I cannot create a C++ class that extends your BP Library. When I tried to do , I got error:
“CompilerResultsLog:Error: Error D:\program files\Epic Games\4.10\Engine\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Public\VictoryISM.h(9) : fatal error C1083: Cannot open include file: ‘VictoryISM.generated.h’: No such file or directory”
I am using Unreal 4.10.2 at the moment. I cannot progress with my project unless I can access your plugin’s functions using C++.
I hope we can solve .
Thanks,
Dear John,
Sounds like I need to provide a 4.11 build, though that makes my process of adding new nodes take even longer because then I have to upload an extra version on top of 1. editor 2. packaged and 3. media fire But Then I’d have to provide 3 of those for 4.11 as well!
Supporting 2 engine versions by myself for free is so much work for me, I then have to do 6 updates every I add any new nodes, as described above.
Unless I adopted 4.11 early… then anyone wanting to test my new nodes would also have to adopt 4.11 early…
Thinking about it…
Also I think 4.11 is coming out soon
Yes do send me a PM with your with consoles
's Victory Subtitle System, BP Access for Subtitles of SoundWaves in SoundCues
Dear Community,
It has come to my attention that there is no way to easily access the subtitles that are inside of SoundWaves which are played in SoundCues via WavePlayer.
For any AAA or indie project that wants to use UE4’s Subtitle system is actually a rather essential missing element of UE4 Blueprints!
I have developed a simple system to intercept the C++ delegate for subtitles played by UE4’s C++ sound system.
I have exposed for you in Blueprints!
Now you can use the subtitle data stored in Dialogue or SoundWaves easily in BP, at the the sound is being played!
I had to use my VictoryPC class to do , because the C++ Delegate must be binded to a UObject, which prevents me from using just a static BP node.
**Usage**
**So to use my Victory Subtitle System:**
1. In a C++ project you are best suited to extract my code form VictoryPC and add to your appropriate UObject or Actor class
2. In a BP project you should have your Player Controller extend my VictoryPC class which comes with my Victory Plugin.
3. See pictures for the rest!
FAQ
When is Speech Finished?
Please note there is an easy way to know when the sound is finished by binding an event to the return value of my BP ndoe!
Sound Duration?
The total sound duration is called Cue Duration off of my Subtitle Event node.
Multiple Subtitles With Stamps for 1 Sound?
My system supports as many subtitles as you entered, and via my BP setup you can display the stamp of each subtitle, accessing that info in order to visually display the subtitle at the right .
You also get the total length of the speech sound being played.
Any Kind of sound?
You can play any sound you want with my node and if it has UE4 subtitles set via the appropriate asset (SoundWave or Dialogue) my OnVictorySubtitlesQueued Event will be called!
**C++ Code**
Here is the C++ code if you wish to extract it easily into your own project.
is my own code for you, at no cost!
```
//Exposing the UE4 Subtitle system for Solus
// <3
USTRUCT(BlueprintType)
struct **FVictorySubtitleCue**
{
GENERATED_USTRUCT_BODY()
/** The text to appear in the subtitle. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SubtitleCue)
FText SubtitleText;
/** The at which the subtitle is to be displayed, in seconds relative to the beginning of the line. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SubtitleCue)
float ;
FVictorySubtitleCue()
: (0)
{ }
FVictorySubtitleCue(const FText& InText, float InTime)
: SubtitleText(InText)
, (InTime)
{}
};
UCLASS()
class VICTORYBPLIBRARY_API AVictoryPC : public APlayerController
{
GENERATED_BODY()
public:
AVictoryPC(const FObjectInitializer& ObjectInitializer);
/**
* When the sound is played OnVictorySubtitlesQueued will be called with the subtitles!
* You can bind an event off of the audio component for OnAudioFinished to know hwen the sound is !
*/
UFUNCTION(Category="Victory Subtitles", BlueprintCallable, BlueprintCosmetic, meta=( UnsafeDuringActorConstruction = "true", Keywords = "play" ))
UAudioComponent* **VictoryPlaySpeechSound**(class USoundBase* Sound, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f);
UFUNCTION(Category="Victory Subtitles", BlueprintImplementableEvent)
void **OnVictorySubtitlesQueued**(const TArray<struct FVictorySubtitleCue>& VictorySubtitles, float CueDuration);
UFUNCTION()
void **Subtitles_CPPDelegate**(const TArray<struct FSubtitleCue>& VictorySubtitles, float CueDuration);
};
```
```
/*
By
*/
#include "VictoryBPLibraryPrivatePCH.h"
#include "VictoryPC.h"
#include "Runtime/Engine/Classes/Kismet/GameplayStatics.h"
UAudioComponent* AVictoryPC::**VictoryPlaySpeechSound**(
USoundBase* Sound
,float VolumeMultiplier
,float PitchMultiplier
, float StartTime)
{
UAudioComponent* Audio = UGameplayStatics::SpawnSound2D(,Sound,VolumeMultiplier,PitchMultiplier,StartTime);
if(Audio)
{
//Subtitle Delegate for You!
// <3
Audio->OnQueueSubtitles.BindDynamic(, &AVictoryPC::Subtitles_CPPDelegate);
}
/*
Note that the OnAudioFinished is BP assignable off of return of node!
//called when we finish playing audio, either because it played to completion or because a Stop() call turned it off early
UPROPERTY(BlueprintAssignable)
FOnAudioFinished OnAudioFinished;
*/
return Audio;
}
void AVictoryPC::**Subtitles_CPPDelegate**(const TArray<struct FSubtitleCue>& Subtitles, float CueDuration)
{
TArray<FVictorySubtitleCue> VictorySubtitles;
for(const FSubtitleCue& Each : Subtitles)
{
VictorySubtitles.Add(FVictorySubtitleCue(Each.Text,Each.));
}
**OnVictorySubtitlesQueued**(VictorySubtitles,CueDuration);
}
```
**Latest plugin download on the UE4 Wiki: (7.16 mb) **
Plugin Release Dates and UE4 Engine Versions
**Donations**
Donations can be sent to me via:
http://lightningfitness.org/donate/
Enjoy!
:)