Set custom time dilation for single object/actor

So here is the end goal: I want the player to slow down time around them so that they move at a normal speed but the rest of the world moves slowly (I have already done this). HOWEVER, I want certain objects to not be effected by the slow down of time as well (this is where I am stuck).

To accomplish this for the player, you set the global time dilation then counteract it for the player by setting a custom time dilation (example: global is set to .1 so you set a custom time dilation on the player for 10 to counteract the global setting). This works fine for the player, however if I try to do this with an actor (like the basic cube just for testing) the actor is not counteracted. The Set Custom Time Dilation does not seem to work on any actor besides the player. How do I get it to work on a single actor that isn’t the player?

I have seen a lot of info online on keeping the player at normal speeds when everything else is in slowmo, but I have not seen information on how to keep certain items in slow motion and others at normal speeds.

I don’t have time to test this but it may be a direction to look. It may be that actors are not affected by custom time dilation properly and it needs to be a pawn with a controller. Try making your objects pawns with AI controllers as a test and see if they respond differently.

Also this may depend on the type of interaction happening, the physics system may not be overridable per object.

I just tested this out and it didn’t seem to work. I’m pretty new to Unreal so maybe I didn’t set up everything correctly? I tried using an empty pawn actor with a cube component and I tried the default pawn actor.

the physics system may not be overridable per object.

I’m afraid that this is the case. It could be that only the player controller is able to set a custom time dilation as every other object is forced to be on the global time. If this is the case I might be able to cheat it with volumes? Set up a volume that has its own time dilation? I’m not even sure if that is possible.

Do you have any custom Tick in that actor? Time dilation simply reduces delta time, which make actor think game is running in higher frame rate then it really is. There for how you code Tick determences how your actor will deal with time dilation.

Also you sure custom dilation does not override world dilation?

Would I want a custom tick on my actors? I don’t think I do, I dont even know how I would do it.

Also, I thought custom dilation overrides global as well. It works on the player but wont work on any other actors.

Hmm maybe problem is somewhere else, can you paste your blueprints reponcible for setting diletion?

I just had Set Custom Time Dilation attached to the Tick event of the blueprint for the cube actor. If I do the same thing with global time dilation it works, but set custom doesn’t.

Oh? is Tick works on that actor? Did you try other event like BeginPlay

Yeah I tried begin play as well. Like I said, setting the global time dilation from these events works however doing a custom does not.

Does it work without setting word dilation?

No. I’ve tried doing it without any world dilation AND I’ve tried it by linking event to world dilation to custom. No matter what I do the set custom time dilation will only work when on the player character.

What do you use to move it?

Do you mean like what I use to make the actor move? I just have it drop using gravity. (I have a feeling thats now what you are asking). I also have a simple pick up item set that allows the player to grab an item and move it around.

This plugin may help you Advanced Time Management in Code Plugins - UE Marketplace

I’v been researching this problem for about a week now… I can’t find anything on how to specifically slow time (using time dilation) for certain actors, other than the player character. I personally want to slow down StaticMeshActors, which are simulating physics of course (cubes, spheres, doesn’t matter). In my research on the custom time dilation I’ve found that actors containing “ProjectileMovement” and “RotatingMovement” can be specifically targeted with the “Custom Time Dilation” node (and of course the player character) but that’s it. I’ve looked all over forums and Youtube and have found lots of different information that has to do with time dilation but none of it is in anyway productive or helpful for the issue of slowing down individual physics simulating actors.

I had the same problem. I connected the movement of “Actor” through “Delta Seconds” to decouple “Actor” from FPS

Hi! I was wondering if you were able to solve this problem?

I think I’m facing something similar. For example, in the third person template, in the level blueprint, I can set the character’s custom time dilation to the value I want, but if I do the same thing with the spinning coin in the ground, it doesn’t seem to have any effect…
I tried with the global time dilation and it does affect the coin as well. But if I give it a movement offset, only the default rotation is affected…

I’m kinda confused with what it affects and what it does not…

Hi, I am pretty much just a beginner in game design and development. Using Unreal Engine 4. I searched everywhere to find a way to slow down a particular character without the whole world and the Player slowing down. I animated a huge creature in a level to move across the sky but it moves way too quick for a creature of that size, so i experimented using Global Time Dilation and Custom Time Dilation. But using Global time dilation, everything moves slow, and Custom time dilation isnt working on that creature. So I was wondering if anyone figured how to do a one actor ( skeletal mesh ) move slow.

Any help with this issue would be greatly appreciated