4.27.2 Bug: Player falls through the ocean and walks on the seafloor after Sequoia update

dpllc
Sun, 29 Mar 2026 20:46:49 +0000
World Creation

The Problem In Plain Terms

My player character falls straight to the bottom of the ocean and walks around on the seafloor as if the water isn’t there at all. Swimming never triggers. The ocean looks beautiful — correct color, fog, post-process, surface rendering — but the player has no idea it exists. This was working perfectly until approximately January 2026, most likely broken by a macOS Sequoia update.

This happens in all of my projects now, including a simple ocean test project which is referenced in this bug report and this log.

Possibly related to this: in my main project (referenced below), the ocean water was clear while underwater and the player was walking on the ocean floor.

**Environment**

Unreal Engine 4.27.2 (installed via Epic Games Launcher)

macOS Sequoia 15.x

MacBook Pro 16,1 — Intel Core i7-9750H, AMD Radeon Pro 5300M 4GB + Intel UHD 630

Water plugin enabled (Experimental v0.1)

Landmass plugin enabled

Please Read Before Replying:

I want to save everyone time, so here are my constraints upfront:

1. I cannot lose my existing work. My main project has hundreds of hours of work since 2024, including a complex sculpted landscape with a detailed ocean/land boundary, a sculpted island (not a WaterBodyIsland), and several rivers. Any solution must preserve this work entirely.

2. I cannot upgrade to UE 5.x. My laptop hardware does not meet UE5 requirements comfortably, and migrating a project of this complexity from 4.27 to 5.x is not straightforward. Please do not suggest upgrading the engine.

3. I cannot use a Physics Volume workaround. My ocean has a very irregular boundary relative to the landscape — low-lying land areas sit below the ocean surface level, similar to the Netherlands or New Orleans. A manually placed Physics Volume cannot accurately represent this boundary, and the player would incorrectly enter swimming mode while walking on dry land in those areas. The Water plugin’s native swim detection handled this correctly before and needs to work correctly again.

Technical Root Cause

After extensive debugging, the underlying cause is that the WaterBodyOcean actor only spawns SplineComp as a child component. The WaterBodyCollisionComponent is never created. As a result, the character never enters Swimming mode and the Buoyancy component has nothing to query.

This is reproducible in a completely fresh project with no migrated assets:

1. Create a new project in UE 4.27.2 on macOS Sequoia

2. Enable the Water plugin and Landmass plugin, restart

3. Enable Virtual Texture Support in Project Settings → Rendering, restart

4. Create a new level with a Landscape, enable Edit Layers on the Landscape

5. Place a WaterBodyOcean actor on the Landscape

6. Observe that WaterMeshActor and Landscape_WaterBrushManager are auto-placed

7. Expand WaterBodyOcean in the World Outliner

Expected result: WaterBodyOcean should have multiple child components including WaterBodyCollisionComponent. Character can swim properly.

Actual result: WaterBodyOcean has only SplineComp as a child. No collision component is ever created. Character falls to the ocean floor and walks on it.

What the Log Shows

The engine log is completely clean — zero errors, zero warnings related to Water, Landscape, or RVT. The only Water-related log line across the entire session is:

`LogPluginManager: Mounting plugin Water`

No LogWater lines appear at any point. No LandscapeSubsystem lines appear. The Water collision profile IS correctly registered in DefaultEngine.ini (WaterBodyCollision profile and ECC_GameTraceChannel1 Water channel are both present), which indicates the plugin did partially initialize.

Full log: Log file open, 03/29/26 11:17:09LogConsoleResponse: Display: Failed to find re - Pastebin.com

What Has Been Tried

Deleting and re-placing WaterBodyOcean in a test project

Enabling Virtual Texture Support

Adding LoadingPhase: PostDefault to Water plugin in .uproject

Adding bRenderBrushesAsync=False under [/Script/Landscape.LandscapeSubsystem] in DefaultEngine.ini

Verified Landscape has Edit Layers enabled before placing ocean

Verified WaterMeshActor and Landscape_WaterBrushManager are present

Verified Landmass is listed before Water in .uproject Plugins array

Fresh reinstall of UE 4.27.2

Fresh test project with no migrated content

and previously:

ran the “show collision” console command (the collision wireframe was absent)

- Noted that the WaterBodyOcean instance lacks a WaterBodyComponent in the component hierarchy

- Attempted to manually override the WaterMeshActor scale (up to 1000.0) and transform to force a bounds update (collision mesh did not generate)

- Created and assigned a custom WaterBodyCollision profile (set to Collision Enabled: Query and Physics and Object Type: Water) with explicit Overlap responses for Pawns; confirmed the actor remains “invisible” to the character’s capsule.

- Verified that the same Character Blueprint successfully transitions to the Swimming state when entering a standard PhysicsVolume set to Water Volume. This isolates the failure specifically to the Water Plugin’s auto-generation of collision geometry.

- Integrated a BuoyancyComponent with Pontoons (Z = -90); confirmed the character remains in Walking mode on the ocean floor, indicating the movement component is never receiving the OnComponentBeginOverlap signal from the water surface.

- Various kinds of player starts (default, manually added, and Play from Here)

None of the above produced a WaterBodyCollisionComponent as a child of WaterBodyOcean.

Question

Is there a known incompatibility between UE 4.27.2’s Water plugin and macOS Sequoia that prevents WaterBodyCollisionComponent from being constructed? Is there a config, console variable, or workaround that forces the collision component to spawn on macOS with Metal?

Any help appreciated — this project has hundreds of hours of work in it (dating back to 2024), and the ocean swimming was fully functional before the Sequoia update.

1 post - 1 participant