Creating your first FPS game in UE5 errata

er·ra·tum

/eˈrädəm/

noun

plural noun: errata

  1. an error in printing or writing.

Plain and simple: errors.

Errors that were made in print, but I am using it loosely to also refer to errors made in the tutorial. (Which you can find here)

 

You may ask: “How can there be errors if the video shows that everything is working?”

Well, because things change, and also people change. Which means that the epic team decided to change the first-person shooter template, making the tutorial a bit (maybe a lot) outdated in certain aspects that I will address in this post. Also, I just wanted to mention the error is mine because I didn’t want to create everything from scratch (Which I decided to not do because it would increase the time of the tutorial, but now the lesson is learned).

As a side note, at the moment of writing this article, the current version of Unreal Engine is 5.0.3.

But let’s continue, surely you didn’t come here to hear me rumbling.

I double-click the UseItem node, but nothing happens. (Around the 1:02:41 mark)

Instead of this…

You have this

And that’s okay, because in the old code, if we enter inside the function we get this:

This is one of the biggest changes in the template. Instead of using an interface to use the rifle, the character now calls an event dispatcher named OnUseItem. Which brings us to the next point…

There in no BPI_Interaction in my project

This was removed, so let’s create one. Just right-click on an empty space of the content drawer/browser and select the category Blueprints → Blueprint Interface. After the asset is created, call it BPI_Interaction and that’s it, you can continue with the tutorial.

But hey! My BP_Rifle doesn’t have a function called PrimaryUse, what gives? (Around the 1:04:28 mark)

Well, what can I tell you, it changed. Now instead of that function we have this event called OnFireProjectile, but you will find that the code inside it is very similar to what the videos shows.

So now, continue following the tutorial and whatever I add inside the PrimaryUse function, you just need to add it to this OnFireProjectile event (I’m talking about the line trace code we do at 1:05:30).

I cross the goal, but there is no message in the screen saying “You win” or “Game Ended”

If you follow the tutorial closely and run into this problem, it’s because the game mode that we created is not being used. I know we set it up in the project settings, but this can be overridden by the level, which is what’s happening right now.

Why is this happening? Because the template changed, and when I did the tutorial, the level didn’t have a game mode assigned to it.

To solve it, we just need to remove the override. This can be done through the World Settings panel (⚙ Settings → World Settings → GameMode Override) by changing the game mode override to None or by clicking on the blueprints button in the toolbar, then going to the last button on the drop-down menu and there selecting none.

I added the AI Guard, but when they move, their feet are sliding around and the walk/run animation is not played.

This one caught me off guard (pun intended). Why? Because they removed the complexity of the game templates, but on their characters, they upped the complexity threefold. Which is really nice because now the character has IK feet right out of the gate but makes the set-up of movement a little bit specific. And just to be clear, this only happens if you are using either the Manny or Quinn character.

How do you fix it?

Go to the Animation Blueprint called ABP_Manny and inside it go to the Event Graph and search for the part where is looking for some Current Acceleration and remove the connection. You can just skip it entirely and in the AND node disconnect the lower pin and just put a true value, or you can change the logic to ask for the current velocity like in the picture (this is a double check of the same thing).

I killed the guards, but they are still reporting me. What can I do?

This is my bad. In my hurry to get this tutorial out, I made this huge oversight and forgot to add the code to stop this from happening.

This is how you can make the guards stop reporting, and also hide the exclamation sign on top of their heads. This is done in the BP_Guard inside the HandleNewGuardState function.

Hopefully this answers most of the common problems faced in this tutorial. If you are struggling with something else not working, let me know, so I can update this blog post with new information. You can use the comment section of this blog or through our discord channel.

See you in the next (hopefully not flawed) tutorial!

— Ram

Previous
Previous

Japanese Street in Unreal Engine 5

Next
Next

Create a Rope using Blueprints in Unreal Engine 5 - UE5 Spline Component Tutorial