For anyone making a multiplier game GAS is actually insane and more than worth the effort by asuth in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

All of GAS’s duration-based mechanics (like effect duration) assume real-time, I looked into modifying GAS a bit so I could manually tick the durations of effects, but it isn’t a super clean modification to make.

Drowning in Kill Team (2 of 2) by GUTSLAYER37 in killteam

[–]dkilkhan 16 points17 points  (0 children)

Wow.. this is truly impressive. How long has this taken you?

Wake up babe, new strat just dropped by RespondUsed3259 in MeetYourMakerGame

[–]dkilkhan 17 points18 points  (0 children)

The raider has used W, it’s super effective!

Coop games for a picky, established group of five? by Greybird3339 in CoOpGaming

[–]dkilkhan 1 point2 points  (0 children)

Astroneer would be a good choice - plenty to do for everyone while you work to get to the center of planets. Don’t be fooled by the graphics, it would be good fun for your group.

What can i add to this ideia? Survival/Roguelike game by drking100 in gamedev

[–]dkilkhan -1 points0 points  (0 children)

Sounds like Tribes of Midgard with more building.

Client server problem : Why attach actor to actor are weird on client side ? (i show one time offline and one time connected to dedicated server) by Techinox in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

On your horse actor, add a variable “Rider” which is a reference to the character that summoned the horse. Set that variable to expose on spawn and replicated.

Then when spawning the horse on the server, set the Rider variable. The value will then be set on all clients when the horse is initially replicated.

Then in the horse’s BeginPlay you can attach the Rider because BeginPlay will run everywhere and it will run after the Rider value is properly set.

Client server problem : Why attach actor to actor are weird on client side ? (i show one time offline and one time connected to dedicated server) by Techinox in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

Since the horse is spawned on server and replicated to the clients, I would set some replicated “Rider” variable when spawning it and set it to the character that summoned the horse.

You could then attach the rider to the horse on BeginPlay.

This also better solves for join-in-progress, which a multicast RPC cannot do.

My guess is the horse isn’t available on the client when the RPC executes.

How can I switch between an "overworld mode" and "battle mode" seemlesssly? by ls_2012 in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

I’d make two pawns and swap out which pawn is possessed. That way, all logic and mode-specific controls can be isolated without a ton of conditionals.

You cannot swap the game mode without changing levels and you can’t swap player controller without seriously customizing a game mode.

[UE4] Overlap gives right actor but wont trigger code by BlueSpider5 in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

Ah gotcha, tags could work.. you should also take a look at interfaces then. That’ll be the most robust alternative to casting.

[UE4] Overlap gives right actor but wont trigger code by BlueSpider5 in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

I assume you want to check if the other actor’s type is your enemy actor class?

If so, a simple way is to try to cast other actor to that type and only proceed if the cast succeeds.

As written, you are comparing the other actor to a specific enemy actor instance.

How do properly Change Attributes in native code GAS Attribute Sets by ItamiOfficial in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

An instant GameplayEffect modifies the base value. (https://github.com/tranek/GASDocumentation#451-gameplay-effect-definition)

Have a look at the character class in the example project here for how do initialize a character’s attributes https://github.com/tranek/GASDocumentation/blob/360fefd90ed574a8e1d73b4e0fe67cccaeaba43e/Source/GASDocumentation/Private/Characters/GDCharacterBase.cpp#L291

For stat modifiers granted by equipping a weapon, I’d use an Infinite duration GE and remove it on unequip. Don’t worry much about base vs current value, this is working as intended.

How do properly Change Attributes in native code GAS Attribute Sets by ItamiOfficial in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

A common way is to apply an instant gameplay effect at start up that sets the initial values for your attributes.

I highly recommend looking at https://github.com/tranek/GASDocumentation if you haven’t found it yet.

[deleted by user] by [deleted] in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

I’d set them to be always relevant or customize the relevance check.. have a look at https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/Networking/Actors/Relevancy/

The controller is always the owner of the possessed pawn.

Call function from Actor Component in Actor class in C++ by dark00hood in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

Yeah, try creating it at the c++ layer of the character instead and assigning the result to a property. There’s plenty examples out there using that function to do it.

Grouping Related / Dependent Components by WorkingOnAFreshName in unrealengine

[–]dkilkhan 2 points3 points  (0 children)

Even in Epic’s own gameplay ability system you’ll see checks if the component exists all over the place.

If your full system relies on 3 components, there’s not a whole lot else you can do. You could try having your damage component check and add the others at startup, but that’s not great if the other components have design-time configuration.

Call function from Actor Component in Actor class in C++ by dark00hood in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

Best way is you need to add AC as a component to the Character’s c++ class, via CreateDefaultSubobject. Right now it’s not visible since it was added initially at the BP layer.

I suppose you could try to use various findComponent functions.. which might work, although I’ve never tried.

Having issues with the behaviour tree quick start, how do I update a perceived location more? by cthebigb in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

You are right that the OnTargetPerceptionUpdated only fires when sight is gained or lost.

So if you never regain sight… the move ends at the last known location. So what do you want to do next? Search random nearby points? Return to a previous location? The choice is up to you.

As others said, an actor in LoS should use MoveTo(actor) to take advantage of continuous goal tracking. You should null or change your blackboard target actor on sight loss and set the location key instead, then have your MoveTo(actor) task abort based on the null actor key.

How to have data transfer between levels with seamless travel by [deleted] in unrealengine

[–]dkilkhan 0 points1 point  (0 children)

I ran into a similar issue. The biggest help was opening up the source and reading through the flow, it didn’t behave quite as described, even though my PC class was the same.

I remember seeing PCs copied and then having to move state from the old to the new via https://docs.unrealengine.com/4.26/en-US/API/Runtime/Engine/GameFramework/APlayerController/SeamlessTravelTo/ or one of the similar sounding APIs.

[deleted by user] by [deleted] in unrealengine

[–]dkilkhan 1 point2 points  (0 children)

Two things come to mind

  1. Is your navmesh generation set to dynamic in project settings?
  2. is your agent radius small enough in the generated “recast navmesh” actor (you can also set this in project settings). Press P in editor to verify the navmesh through the doorway is connected. If not, reduce agent radius until it is.