If the collision primitive is attached to the character e.g. a collision box attached to a fist, and the collision overlaps fire unreliably when moving with a player animation.
The animation might be getting culled or partially played (no bone updates) when the client isn't in the servers view.
Try setting Optimisation > Visibility based anim tick option > Always tick pose and refresh bones
on the character skeletal mesh (in BP) or
In C++ GetMesh()->VisibilityBasedAnimTickOption = EVisibilityBasedAnimTickOption::AlwaysTickPoseAndRefreshBones;
on the skeletal mesh for the character.
Make sure you set "SetShouldUpdatePhysicsVolume(true)"
in code or in the BP to ensure the actor updates the physics volume.
Ports all forwarded but it just doesn't seem to listen on the port?
Make sure you have "Networking" and "Sockets" set in your Project.Build.cs file.PublicDependencyModuleNames.AddRange(new string[] { "GameplayAbilities", "GameplayTags", "GameplayTasks", "Core", "CoreUObject", "Engine", "InputCore", "UMG", "ApexDestruction", "PhysicsCore", "Networking", "Sockets", "Http"});
Remember to set AutoDestroyOnRemove
in the cleanup section of the cue BP!!
static ConstructorHelpers::FObjectFinder
if (ObjectBP.Object != NULL)
{
// Set the object as the blueprint at the reference above.
SetWidget(ObjectBP.Object);
}
A few important notes!!
This function should only be used in your classes constructor! Anywhere else causes a crash!
It may seem that you should set the type to the object type e.g.
The _C in the file path is a specific required tag that is appended to the actual file path only in code.
To be clear the actual file path is: (WidgetBlueprint'/Game/Blueprints/HUD/BP_IGC_TimerBarWidget.BP_IGC_TimerBarWidget'').
If you want the actual object you need to call .Object
.
When to use it, This is usually best to use when:The file name or location won't change, if the file can't be found, issues ahoy!
The object needs to be set during the construction of the object for example, you have a UWidgetComponent that needs to have a UUserWidget class set from a BP but it needs to be set as soon as the WidgetComponent is created.
Hope you guys find this useful!
You need to make sure you set it on the body instance and not at the actor level:Object->GetBodyInstance(NAME_None, false)->SetInstanceSimulatePhysics(true)
I've personally used this on a UDestructibleComponent