Character turn speed different when character bp open in editor?

Problem: If I have my character blueprint open in ue4 the rotation speed of my character (when I press play) is slow and working as intended. When I don’t have my character blueprint open then the character turns much faster? What is going on??? How can it be different depending on that?

Some info: I have my character set up to use tank controls and mouse controls the camera.

Here is a pic of my tank controls: https://i.imgur.com/LQbDkkO.png

To explain the bp: on the topleft are my inputs for my tank controls (forward/backwards and rotate left/right). The stuff after the delay is used to reverse my turning inputs when going backwards and cahnge my top speed and acceleration. Kinda like in a car if you go backwards the car turns to the opposite direction and so forth.

So in the bp I check when my backwards/forwards axis is less than 0 and then I set MovingBackwards bool to 1. After that value changes there is 1 second delay after which the gate is opened in Event Tick allowing that to run once to change my acceleration and max walk speed parameters for bacwards/backwards motion depending which direction the change is going.

So I’m thinking either this is wrong way to do this (connecting tick and character input nodes).

Or other possibility is that I have lots of character movement variables defined in my begin play node (36 nodes which are used to set variables or create arrays or turn on physics etc…).

What’s causing my problem?

You have to be aware that input events tick (meaning they are executed) at frame rate. If your frame rate is 30, they fire 30 times per second. If it is 60, they fire 60 times per second.

If you add a degree of rotation at each input tick, you will get 30 degrees per second of rotation in the first case, but 60 degrees per second in the second case.

It is likely that when the editor is open on your BP the frame rate drops because of its overhead and you get a lower frame rate, hence a lower rotation rate (aka speed).

The way to solve this is to multiply the rotation rate for the output of Get World Delta Seconds. This node returns the duration of the last frame and is used to ensure you can adapt your movements to the frame rate. In fact when you use Event Tick this is what the Delta Time pin is for.

In principle if you use a movement component this should be taken care of automatically, but if you apply rotations or alter the location of your character directly it is up to you to take frame rate properly into account.

Thanks. I did not know the axis inputs were tied to fps.

I still have problem with this. Now my speed is slower when I have the character blueprint open. Below is the screenshots of my node setup. Why does fps still effect my character speed? Even mouse movement is affected despite all of it is x times world time delta???

I’ve added some text to make it easier to understand at glance because there is some other stuff there as well.


and
that function (only reason it is there because I wanted to make sure that function is not causing the issue)

World Delta Seconds can be a small number. If you run at 90 FPS it is about 1/90 = 0.011. Your axis input is between -1 and 1, so it will not alter its order of magnitude. Solution: beside multiplying the input by World Delta Seconds you also need to multiply it by another float variable, call it SpeedMultipler, which you can set to values of 90 or higher. Play with its value until you are happy about how responsive your player is to the input.

The issue is just like you said. The input goes above 1. I’ve fixed it. What made me to do this mistake was that my walking speed does not need to be multiplied by world delta but my rotation does (also what you said earlier). Thanks once again!