top of page

Elevator on Spline

Here's a blueprint I've created in Unreal Engine 5 for an elevator system that utilizes spline points.

  • This system uses spline points as destinations that it the elevator can travel to.

  • Traveling past a spline point will update the floor information text within the elevator.

  • Dual sets of doors that are opened based on floor configuration.

Adding/Removing Spline Points

Details Panel


New spline points are easily added and removed in the details panel.
New spline points are added at an increment of the previous spline point + the "Distance Between Floors".

Add a Floor


The new spline points location is based on the previous spline points Z value + the Distance Between Floors float. This allows for different distances between each floor to make it more dynamic.

Remove a Floor


Removes the last Spline Point in the index.

Update distance between Spline Points


This button updates the location of all spline points to be the Distance Between Floors float value times the spline points index value in order to have them all with an equal distance between each other.


This elevator is equipped with a dual set of doors, it can open the front, back, or both doors, depending on the floor configuration.

Doors opening on each Floor


I decided to use an enumerator where it can be set which doors should open on each floor, this way the elevator can be used more dynamically and allow for entering/exiting the elevator through either the front/back doors or both.

Open doors based on Enum


When the elevator has reached its destination it checks the index of the enumerator array and compares it to the destination floor integer and then proceeds through a Switch on Enum to decide which doors that should be opened.

Timeline for opening & closing elevator doors.


Timelines are used to set the relative location of the doors when opening/closing.
Once all the doors are closed a short delay is triggered before the Elevator starts moving.

Elevator Movement

The elevator is moved using a timeline where the playrate has normalized to move the elevator at the same speed regardless of distance between floors.

Timeline for moving the Elevator


A timeline is used to move the Elevator between it's starting position to the end position.
Once the elevator has arrived at it's destination there's a short delay before the doors are opened.

Updating the Elevators Timeline's Play Rate


I created a function that updates the play rate of the elevators movement timeline.
This is done to make sure that the elevator will move at the same rate regardless of the distance it will travel between it's start and end position.

Updating floor text


Here I'm using a for loop to compare the elevator's current position and compare it to the spline points in order to update the text component that displays the current and total amount of floors.

Event Graph

Here is the blueprint's event graph, feel free to look around if you want to see how everything is set up.

How to navigate:

  • Right mouse button to move around.

  • Hold down ctrl while scrolling to zoom in/out.

bottom of page