Skip to main content

Troubleshooting

Start with ED.Mounting.Dump, ED.Mounting.DrawSeats 1 and log LogEDMounting Verbose. Between them they answer most of this list before you get here — Dump in particular prints, per seat, how many of its doors a rider currently fits through, which is the single most common answer on this page.

Nothing happens when I press the key

The request returned a failure and nobody looked at it. Bind On Mount Failed and print Get Failure Text. The usual answers:

FailureCause
NoMountableNothing within the query's Max Distance, or the target has no mountable component.
TooFarIn the query's range, but outside the mount's own Mount Distance.
NoEntryPointEvery door is blocked. Turn on DrawSeats and look for red.
SeatOccupiedEvery seat is taken or reserved.
SeatLockedThe seat's Required Rider Tags refused this rider.
BusyAlready mid-transition. Two key presses in one animation.

It puts me in the far door

The near one is not usable. ED.Mounting.DrawSeats 1 — a red capsule means the clearance sweep hit something:

  • The clearance channel is Visibility and there is foliage, a decal actor or a trigger volume in the way. Give characters their own channel and point Clearance Channel at it.
  • The entry point is inside the vehicle's own collision. Entry points are relative to the seat, so a seat moved after its doors were authored drags them along.
  • The capsule is bigger than your character. The defaults match the engine's 34 × 88.

The rider ends up half inside the seat

The seat transform is where the rider's root goes, not their feet. For a Character the root is the capsule centre, so the seat wants to be about a capsule half-height above the cushion.

The rider is thrown into the sky when the car hits a ramp

The rider's collision is still on. Check the seat's rider policy — Collision should be Disabled, or Query Only if you need traces to see them.

A passenger jitters half a metre behind their seat on clients

Suppress Movement Replication is off. The seat's transform already comes from the mount, so replicating the rider's location as well is the same information twice, and the two disagree during correction.

The passenger freezes mid-pose when I look away

Always Tick Pose While Seated is off. A passenger is inside the mount's bounds, so they are culled by the mount's visibility, not their own.

The get-in animation plays but the rider never sits down

The montage has no Mount.Event.Attach notify and something is wrong with the fallback:

  • log LogEDMounting Verbose — the watchdog logs when it completes a transition late.
  • The montage must play into the slot named by the animation set's Montage Slot, and that slot must exist in the rider's anim graph. A montage playing into a slot the graph does not have is invisible and has no effect.

The animation plays a metre away from the car

Motion warping. Either the rider has no Motion Warping component, or the montage has no Motion Warping notify state pointing at EDMountSeat / EDMountEntry.

Without warping the framework still snaps the rider to the seat at the attach moment — so a large visible correction at that instant is the same diagnosis.

The car drives off on its own after I get out

Stop When Driverless is off, or your vehicle does not derive from AEDMountableVehicle and does not zero its own inputs. Chaos holds the last input it was given.

Also check that you forward zero on input release and not only while held — bind Completed as well as Triggered.

A passenger can steer the car

They cannot: Apply Drive Input is a no-op unless the caller's seat is tagged Mount.Role.Driver. If the car is moving, something else is calling the movement component directly — a leftover input binding on the vehicle pawn itself, most likely.

Two players got into the same seat

They cannot, on the server. What you are seeing is a client that predicted and has not been corrected yet — check ED.Mounting.DrawState 1 and compare the sequence numbers. If it never corrects, the reject RPC is not arriving; Prediction Timeout should still recover it within a second.

If it genuinely persists past that, ED.Mounting.DisablePrediction 1 on both clients tells you whether prediction is involved at all.

Seat handles are different on the client and the server

They reconcile themselves: the replicated seat array carries both the handle and the component it belongs to, and a client adopts the server's answer when it arrives.

Before that first replication a client uses provisional handles, which is why you should look seats up by name once at setup and hold the handle, rather than assuming a number.

It builds in the editor but fails to package

Almost always a missing include, hidden in the editor by unity builds. Run the same check the store does:

RunUAT.bat BuildPlugin -Plugin=<path>/EDMountingSystem.uplugin -Package=<out> -TargetPlatforms=Win64 -Rocket

It builds without unity and with warnings as errors, and it is the only check that catches them. The other recurring cause is editor-only data used outside WITH_EDITORONLY_DATA.

Still stuck

Discord. Bring the LogEDMounting Verbose output and a screenshot with ED.Mounting.DrawSeats 1 on — between them they usually contain the answer.