diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 11fd03b1f303b4c12a3995de9e6b84297310557c..8e4ddd35a1f3d0cbfa5318849c0ebd8381bce2f1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,30 @@
 # Virtual Reality & Immersive Visualisation Group.
 #-------------------------------------------------------------------------------
 
+spec:
+  inputs:
+    unreal_version:
+      description: The Unreal Engine version in the form of "major.minor"
+      type: string
+      regex: \d+\.\d+
+      default: "5.5"
+    build_type:
+      description: The game build type.
+      type: string
+      options: ["DebugGame", "Shipping"]
+      default: "DebugGame"
+    number_of_old_versions:
+      description: How many successful pipeline builds of this branch should be stored on the cluster.
+      type: number
+      default: 3
+    custom_ndisplay_config:
+      description: Custom nDisplay config stored on the cluster filesystem.
+      type: string
+      default: ""
+
+
+---
+
 #The include file can be change to either be removed or reference a specific commit.
 #Reference the Gitlab CI website for this
 
@@ -26,7 +50,9 @@ include:
 
 
 variables:
-    UNREAL_VERSION: "5.5"
+    UNREAL_VERSION: $[[ inputs.unreal_version ]]
+    NUMBER_OF_OLD_VERSIONS: $[[ inputs.number_of_old_versions ]]
+    CUSTOM_NDISPLAY_CONFIG: $[[ inputs.custom_ndisplay_config ]]
 
 
 stages:
@@ -43,7 +69,8 @@ Build_Windows:
         - unreal
     variables:
         # CLIENT_CONFIG: "Shipping"
-        CLIENT_CONFIG: "DebugGame"
+        # CLIENT_CONFIG: "DebugGame"
+        CLIENT_CONFIG: $[[ inputs.build_type ]]
     
 Build_Linux:
     rules: 
@@ -56,7 +83,8 @@ Build_Linux:
         - docker-executor
     variables:
         # CLIENT_CONFIG: "Shipping"
-        CLIENT_CONFIG: "DebugGame"
+        # CLIENT_CONFIG: "DebugGame"
+        CLIENT_CONFIG: $[[ inputs.build_type ]]
 
 .Deploy_Windows:
     rules: