Character Spawns Not At Player Start & Falls Through Map

Problem:

Hi folks, first time poster, long time lurker and reader; Unreal Engine trouble, does anyone know how to fix the player character falling through the map at the same time as not spawning in the correct location? I’ve tried everything from collision, to blueprints, to event graphs. And for the life of me, for some reason, the character won’t spawn at the player start, falls through the map, and no matter how high I place the player start, I get zapped to 0,0,0 (I assume) and fall through the map. If anyone can help me out that would be great.

Question Criteria:

I know you may have some questions, I want to address them here first. I may use “level” & “Maps” interchangeably.

  • My Gamemode is set to the third person gamemode, the same one associated with my third person character.
  • The default pawn class is in fact correct, both the game mode and the third person blueprint line up correctly.
  • I’m told it’s a settings issue; “There aren’t too many settings that change the position of the player. Much of the time if it’s a settings issue, it’s the player being spawned as the wrong pawn so no camera so the game makes one at 0,0,0 or something similar.” This is exactly what’s happening.
  • World settings for the map also match the gamemode blueprint settings and third person character settings
  • Every time I boot up UE5, it used to be that my camera (in editor) would be spawned in or above the map, and the player would match. (as in they would spawn in the map) but now, when I load/boot up the engine, I spawn as the camera in editor, under the map, not at player spawn like normal.
  • Other maps work fine, it’s this ONE map, that for some reason, the character collision isn’t compatible.
  • Lastly, something I want to summarize; It’s possible I have overidden an override and did something I wasn’t aware of, but more to the point,; I have the ability to enter and exit buildings, you exit where you enter from, and enter where you would exit. At one point before I packaged the game, (for playtesting) I was able to freely move between the levels but now when I look back, It appears that somewhere a long the line, the links (code) was broken? I am unsure if that has something to do with it, or, if the fact I have multiple “player starts” in the level has something to do with this issue? I don’t know.

Anything helps at this point.

1 Like

Hey there @ImagineBlue! Welcome to the community! You’ve went through much of the standard troubleshooting questions I would ask for this issue, which is great for narrowing things down.

The “player” being at 0,0,0 sounds more like the default “no pawn” camera spawning. Can you confirm your player is being possessed successfully and still exists when you’re at 0,0,0?

How is your PIE settings setup? Does changing it to Current Camera Location work correctly?

Another information check, let’s check your primary player start and set it to ignore collisions when spawning. If this makes your character spawn in the correct location, then you may have some collisions blocking spawns and should view your map collisions in collision view to check:

1 Like

From the dropdown you give me try other ones specifically the two middle ones.

@SupportiveEntity!! Thanks for the warm welcome! It feels great to actually talk to people on the forums that I often scroll and find solutions for, never thought I’d get a response!

Yes, it does appear that for some reason the camera and the player spawning at 0.0.0 seems like a default no pawn issue. In the three dots, I do have the option for Default Player Start selected. Camera location does not work. both player starts (as I have two in the map) are set to Always Spawn, Ignore Collisions.

I’ve been told by AI what could also be happening; that in my Third Person Gamemode BP the logic is overriding the player start by using a custom logic filtering process:

" Your BP_ThirdPersonGameMode → ChoosePlayerStart() is overriding the default spawn selection logic by implementing a custom filtering system using Teleportation_TAG. Here’s what it’s doing:


:brain: What This Code Does:

  1. Gets all PlayerStart actors in the level.
  2. Loops through them, checking if their PlayerStartTag matches a Teleportation_TAG value stored in the custom GameInstance (Enter_Exit_GI).
  3. If one matches, it returns that as the spawn point.

If none match, then it returns nothing → which causes fallback spawn at (0, 0, 0) → you fall through the map.


:fire: That’s why you always spawn in one broken spot and fall.


:white_check_mark: Solutions:

Option A – QUICK FIX (Disable Custom Logic Temporarily)

To confirm this logic is the issue:

  1. Open BP_ThirdPersonGameMode
  2. Disconnect or remove all logic in ChoosePlayerStart
  3. Right-click in the graph, add:
  • Call Parent FunctionParent: ChoosePlayerStart
  1. Return that result:
  • Connect to ReturnNode → ReturnValue

:white_check_mark: This forces it to use default PlayerStart logic — should fix your fall issue instantly.


Option B – PERMANENT FIX (Fallback if no tag match)

Update the logic to return the first PlayerStart as a fallback:

In your ForEach loop:

  1. Add a Set Variable (like BestMatch)
  2. If tag matches → set BestMatch
  3. After loop (on Completed pin), add:
  • If BestMatch is valid → return it
  • Else → return the first element in the array (OutActors[0])

That way, you avoid returning null. "

I am unsure if this is correct, hallucinating AI, or if this is actually the problem? I don’t know. Is there a way I can force the engine to recognize that a certain player start is the default spawn? At the end of it all, I should be able to spawn into the map, at the correct location, not fall through, enter buildings, and exit where I entered from, and be able to run about.

Lastly, I will say, this was only an issue AFTER I packaged my game for playtesting. I wonder if that had anything to do with it …

A little hallucination and a little truth is my guess, but I’d have to see the code to be sure. One thing is certain, is if you are overriding the player spawn in the GameMode, disable that for now. Or even easier you can just swap in a fresh GameMode and if that corrects the issue we can ascertain that was the core of your issue. That said, the “Spawn at camera” setting in PIE should override that regardless. If your player is still spawning but below terrain and falling, it will hit the kill plane (as defined in your world settings) and your camera would then respawn as the default pawn at 0,0,0.

I can help you setup an override later for choosing the default player start, but we have to clear all the symptoms first.

1 Like

How do I disable the player spawn via gamemode? I will try swapping to a fresh gamemode and if that works then I know the other is bugged for some reason. I’ll let you know with updates. Give me a bit for documentation of my findings; you’ve been a huge help so far!!

So the bot was correct that is either of these two functions are overridden, it could interfere with spawning:

However I mentioned just changing the GameMode out as a test first to verify if that was the cause before you start digging into to if you’re using a GM from a plugin or template (hence the teleportation tag referenced by the bot?), I could give more targeted info if I could see the code or BP but if it’s confidential I can still mostly walk you through some changes once we have an idea of where the issue is.

1 Like

Woah! AI is getting super scary! It’s actually really cool!! I think that’s pretty awesome that we can ask AI a really in depth technical question and it knows how to fix the issue! That’s cool!

As for your suggestion of swapping to a new gamemode …

IT WORKED!

So for some reason my current gamemode was bugged, and was in fact, overridden. Or something or other:

  • The gamemode was bugged or overridden

  • The Gamemode for some reason was not reading a player start correctly

Now the question becomes, how to I make sure I can exit interiors and spawn where the player would’ve entered from and make sure the engine or gamemode doesn’t get confused. I wanna make sure this works and I don’t botch anything.

I’m glad that worked out. This means the GM that was provided to you was messing with one of the two spawning functions in the chain. If this is a paid plugin you’re using, I’d check the documentation for the GM and see if there’s some form of setup you need to do, like adding the Teleportation tag it was looking for. If the plugin needs it’s specific GM to function, this is probably a good route, but knowing what’s causing the issue helps for sure.

Now the question becomes, how to I make sure I can exit interiors and spawn where the player would’ve entered from and make sure the engine or gamemode doesn’t get confused. I wanna make sure this works and I don’t botch anything.

The answer to this changes drastically depending how your scenes are set up. If you are using a plugin that requires the GM and handles this for you, I’d recommend trying to get that working. If not, then there’s three main paths depending on how you’re doing your cells.

If you’re using level streaming and the scenes are laid out as a contiguous scene just split up, you’d just load the external zone whenever you exit a building.

If you’re in an open world, and it’s just outside and needs to be loaded, you’ll need to load the area (which would be done automatically in World Partition based on distance) or if you are using Data Layers, you’d have to do it there.

If you’re using entirely separate levels or spatially separated streamed levels, just saving your player’s entry point to a cell to the Game Instance and teleporting them to the correct location while waiting for the scene to load would suffice.

Since I know next to nothing about the project or the plugin you’re using these are extremely generalized and I can expand with resources depending on what you need!

1 Like

What’s funny is that it’s the standard Third Person Gamemode Blueprint. It’s the Standard Gamemode that comes with the template!

No level streaming, just loading map to map, (level to level) which requires more than one player start that I assume are tied to triggers and in the event graph; you program the “On overlap” to tell the box/sphere trigger when the player overlaps the boundary, send them to a certain player start in the level of your choosing.

Ahhh so the bot was hallucinating a ton then. Good news is that the default template’s GM is basically empty, so using a fresh one is fine for you.

So there’s lots of options to go with here, but the biggest hurdle you have is that you need to keep data between levels. There aren’t many transient components in Unreal, but one used frequently is the Game Instance. This is created when you launch the game and stays until the process is ended. This is where many users tend to place a system for saving and loading the game or in your case, just retaining data between levels. Would you prefer a beginner friendly but less “best practices” way or a more complicated but closer to “best practices” and better scaling?

It appears that when I package my game, the problem happens again. I am unsure why … We know how to solve the issue, but for some reason when the game is packaged, it creates the issue again. Do you need to see the output log? Go line by line? I can filter out just the warnings. That may help us. Is this a packaging issue?

So play in editor works fine but when packaged it changes? Sure I’d take the logs, can’t hurt to give them a glance.

This could be a packaging problem, are all the maps you’re meaning to use selected for packaging?

1 Like

Play editor works, I haven’t checked since packaging just now but I bet the problem will restart itself.

Let me go and see if I can find that in the project settings. “List of Maps”

Okay, I have the entire output log, filtered to only the warnings, there’s a lot, like, a LOT LOT

I won’t go and copy and paste the whole log, unless you want that? I was going to send screen shots, but it’s up to you …

Update:: Editor works, not packaged game.

Update 2: Apparently my maps were NOT included in the list of maps to include during packaging.

Believe it or not, text is quite small data wise. You could upload the text to a hosting platform, or you could even upload the text here contained in this syntax, it’ll create a scrollable bar so it’s not massive.

It does this:

Code or logs go here

It’s still too big. Let me try adding every map to packaging, see what happens. give me a moment …

Pastebin or some such site is also acceptable.

I’m going to see if it works after adding the maps to the packaging list and hopefully, dear god, it works lol.

All good, let me know any new information! In the meantime I’ll remove the solution tag for the thread.

1 Like

Hey there, sorry for disappearing, don’t think I forgot about the thread!

So I found that one of the solutions we did worked, it was a gamemode issue, and we created a new one and it worked just fine. The solution tag was perfect for your answer.

That being said, could you help me with something not related to the now solved issue? My arms are squiggly and I can’t figure out how to make them not.

Honestly should be it’s own thread but I figured out of convince.