Ballex 2: The Hanging Gardens cover
Ballex 2: The Hanging Gardens screenshot
Genre: Racing, Adventure, Indie

Ballex 2: The Hanging Gardens

Version 1.0 Official Release! Thank You for Your Support!

After a long journey of development, we are thrilled to announce that our game has officially launched as Version 1.0 on May 1st, 2025, marking the end of Early Access and the beginning of the full release!

Since the project began in 2020, we have been dedicated to bringing you a fun, unique, and challenging gaming experience. During Early Access since 2022, it was your valuable feedback, enthusiastic participation, and continuous support that pushed us forward and helped us refine the game. Every suggestion, every test, and every bit of passion from you has made the game better. We sincerely thank everyone who supported and accompanied us during Early Access—it is your enthusiasm that made this possible!

All Levels Now Available, More Content Than Ever


With this official release, all levels are now complete! The game features 20 main levels and 20 side levels, each carefully crafted to challenge and entertain you. If you have already conquered both main and side levels, don’t forget to check out the Workshop, where you can find amazing maps created by our community—there’s always something new to discover!

Leaderboard Reset


As many levels have undergone significant changes since the initial release, we have reset all leaderboards to ensure fairness and accuracy. Now is your chance to climb the ranks and set new records in the official version!

New Achievement System Added


We have also introduced a brand-new achievement system, adding more fun and honor to your adventure!

Join Our Community and Grow Together


We warmly invite every player to join our official communities, where you can share your experiences, discuss strategies, and provide feedback directly to the development team. Your voice is incredibly important to us and helps the game continue to improve!

Official QQ Group: 797934847
Discord: 5NygdBmksE

Once again, thank you for your support and companionship! We will continue to listen to your feedback and bring more optimizations and content updates in the future. Now, let’s embark on a brand-new adventure together in the full release!

Enjoy the game!

——Mushreb Games

Remastered Beta13 Update: Side Level 2-d,3-a,3-b,3-c,3-d,4-a

In this update, we have added side levels 2-d,3-a,3-b,3-c,3-d,4-a.


Warning: High-difficulty side levels added! Ready to push your limits?

[Other Changes]

Significantly reduced the file size of replay recordings.
Unlock all main levels by holding the "M" key + Enter key on the main menu.
Optimized logic for rain-avoidance function.
Fixed an issue where the game process remained active after exiting.
Fixed incorrect shadow rendering.
Temporarily removed the FSR2 super-resolution model.

Beta 12.1 Feature Additions and Bug Fix Patch

Added the ability to watch replays of other users on the leaderboard.
Fixed an issue where the unlock conditions for 2-c were incorrect.
Fixed an issue where the wooden ball in 2-a, second section, might not be able to push the 'DoublePushBoard'. Adjusted the caustics effect on the water surface.
Attempted to fix an issue where background music may be missing upon restart game during the result ui in certain situations.

Remastered Beta12 Update

In this update, we have added side levels 2-a, 2-b, 2-c.

Main Game



Added support for the supersampling model FSR2.
Fixed an issue where the 'levelManager.setCameraTarget' method was not working properly.
Resolved an issue where the Renderer component was unable to access and modify data via the 'Opacity' and 'ShadowCastingMode' paths.
Increased the sound range of TNT explosions.
Fixed an issue with the path road generator failing to generate road correctly.
Resolved align issues in level 1-e section 3.
Significantly optimized the speed of level reloads.
Fixed crashes occurring when exiting the game.
Resolved an issue where 'cast' class functions were unable to detect all physical layers.
Fixed problems with certain areas in 1-c lacking death areas.

Map Editor



Added the ability to customize the player ball.
Added landscaping tools.
Added tools for placing pillars and lights, accessible via 'Tools/Add Pillar' and 'Tools/Add Light' in the menu bar.
Renderer component now supports a near-distance dissolve feature.
Introduced a new function for auto-saving window layouts, with an option to reset to the default layout via 'Tools/Reset Layout' in the menu bar.
The Trigger component now includes physical layer options: 'Static' 'Stopper' 'NotPlayer' 'OnlyPlayer' and 'None'
New or adjusted methods for Executors in gameplay:
-levelManager.getCameraOffsetSmooth() => float
-levelManager.setCameraOffsetSmooth(value: float)
-levelManager.setCameraTarget(guid: string, displayName: string)
-scene.sphereCastAll(center: Float3, radius: float) => object
-scene.boxCastAll(center: Float3, size: Float3, rotation: Quaternion) => object
-scene.mouseRaycast(maxDistance: float) => RaycastHit
-scene.mouseRaycastAll(maxDistance: float) => RaycastHit[]

SR Time Adjustments


1-c 3:35 4:10
1-d 5:30 6:50
1-e 4:20 5:05
1-f 5:20​ 6:15

Unlock Condition Adjustments


1-a 25
1-d 28
1-f 30
2-a 32
2-d 35

Remastered Beta11 Update

In this update, we have added side levels 1-c, 1-d, 1-e, 1-f.


Main Game


Fixed an issue caused by checkpoint collider.
Added line break function to the collection ui.
Reduced the difficulty of the second section in level 4-4.
Fixed an issue that occurred when manually adjusting the camera direction after modifying 'cameraDirection' in code.
Fixed an issue where triggers did not follow position changes.
Fixed an issue where using 'levelManager.setCameraTarget' caused a smooth movement starting from the zero point.
Changed level scores to the decimal type.

Map Editor


Added global UV versions of several common materials.
Added a feature to automatically set the UV offset for new roads when clone road generators.
Fixed an issue where the road generator could only generate waypoints for rails.
Added doors and keys in yellow, cyan, and magenta that do not reset upon death.
Added an option for the renderer to fetch global UV materials when 'Auto Get Materials' is on.
All scripts will now automatically refresh before executing editor scripts, eliminating the need for manual cache refresh.
Added 'Without Player' and 'Only Player' collision layers.
Fixed an issue that prevented map testing due to a materials problem.
Added a brightness parameter for volumetric dust for light item.
Added a new camera component.
Added an opacity setting to the renderer.
Fixed an issue with the editor methods 'item.addComponent' and 'item.setSelection' not working.
Fixed an issue with the editor method 'sceneObject.getComponent' not working on scene settings.
Added wind settings in the environment settings that affect environmental particles.

Game API Added


-levelManager.setCustomCamera(camera: Component)
-levelManager.invoke(function, delayFrame: int)
-levelManager.startTimer()
-levelManager.stopTimer() => float
-levelManager.getDefaultCameraPosition() => Float3
-levelManager.getDefaultCameraRotation() => Quaternion
-levelManager.getDefaultCameraFov() => float
-wayPath.getPointInfo(point: float) => object
-wayPath.getPointsInfo(points: float[]) => object[]

Editor API Added


-math series
-editor.startTimer()
-editor.stopTimer() => float
-editor.invoke(function, delayTime: float)
-editor.getSelectedAssetFolder() => string
-editor.getSelectedAsset() => string
-scene.getCameraPosition() => Float3
-scene.getCameraPivot() => Float3
-scene.setCameraPositionAndPivot(position: Float3, pivot: Float3)
-sceneObject.setParent(parent: SceneObject)
-sceneObject.getChildren()
-itemComponent.copyData()
-itemComponent.pasteData()
-dialogWindowManager.openInputDialog(windowTitle: string, contentText: string, defaultInputText: string,
closeButtonName: string, checkButtonName: string, onCloseButtonClick: function,
onCheckButtonClick: function)
-dialogWindowManager.openInputsDialog(windowTitle: string, contentTexts: string[], defaultInputTexts: string[],
closeButtonName: string, checkButtonName: string, onCloseButtonClick: function,
onCheckButtonClick: function)
-dialogWindowManager.openAssetPickerDialog(onCancel: function, onPickAsset: function, assetsType: string)

SR Time Adjustments


1-1 ~ 4-4 (except 4-2): + 5 seconds
4-2: + 10 seconds
1-a: 3:45 & 4:20
1-b: 4:30 & 5:10

Remastered 0.10.6 Update

Main Game


Modified the camera behavior when following during death and respawn.
Added intensity settings for post-processing effects.

Map Editor


Added a new "Empty" icon option for hierarchy item, and increased the priority of the "PhysicsObject" icon in auto mode.
Most built-in items now support switching physical body types (Static/Kinematic/Rigid/Decoration).
Added a Convex option in MeshCollider.
Fixed an issue where the radius of circular area lights was not functioning correctly.
Added new transform shortcuts: Ctrl + 1~7/Numpad 1~9, corresponding to the transform shortcut region buttons.
Added new editor functions:
-roadGenerator.clone()
-roadGenerator.generate()
-roadGenerator.createWayPoint()
-physicsObject.autoDetectBoxCollider()
-trigger.autoDetectBoxTrigger()
-particleEmitter.refresh()
-particleEmitter.play()
-particleEmitter.pause()
-particleEmitter.stop()
-itemLink.replace(path: string)
-itemLink.saveMesh()
Added new in-game functions:
-itemLink.getInternalItems() => Item[]
-spawnVfx(type: string, position: Float3)

Remastered Beta10 Update

Main Game

  • The unlock condition for side level 1-a has been lowered to 35.
  • Fixed an issue where only the short description was retrieved for Workshop custom maps.
  • Fixed an issue where the game could not be entered under certain conditions.
  • Fixed some untranslated text.
  • Added a UI for executor script execution time in Map Testing mode.
  • Adjusted the ambient temperature for every levels.


Map Editor

  • Added some usable materials and fixed some material & model issues.
  • Added trigger layer option for triggers and shadow intensity option for ambient lighting settings.
  • Adjusted the emission intensity limit for materials to 30.
  • Redesigned the hierarchy panel.
  • Added a tool to export tex files to Png.
  • Added a replace link function for item link.
  • Added several adjustable parameters for light and broken light item.


SR Time Adjustments

  • 5-1 4:15 4:55
  • 5-2 4:50 5:35

Remastered Beta9 Update: Side Level 1-a and 1-b

In this update, we have added side levels 1-a and 1-b. You can unlock level 1-a after completing 50 main quests.

Main Game




  • Added a progress bar in replay mode.
  • Fixed the issue where players would jitter in replay mode.
  • Fixed the issue where the player ball was not hidden in first-person replay mode.
  • Fixed the issue with the SeesawBoard appearing in a specific direction.
  • Fixed the issue where ripples would still appear even without touching the water surface in certain situations.
  • Fixed the issue where the sponge ball did not correctly reduce wetness when get the blue orb (recover).
  • Adjusted the collision trigger range for the SuspensionBridge breaking and removed the collider for the wooden pier.
  • Adjusted the freezing mechanism: When the ball is frozen, wetness will remain unchanged, and wetness will not cause damage to the ball.
  • Added UI indicators for sponge ball wetness and ice ball size for SuspensionBridge broken thresholds, as well as indicators for freezing and burning temperatures.
  • Added a feature to sync hs and sr scores from the leaderboard.
  • Added map description display in the custom map loading interface.
  • Fixed the issue where custom maps would not automatically increase rain wetness when the automatic rain-avoidance detection option was unchecked.


Map Editor




  • Fixed the issue where the volumetric light range was not effective.
  • Added new items: DoublePushBoard A/B, TriPrism, FragileBoard, SteelDoor, FloatUpBoard (Yellow Board), Zero Gravity Green Board, Stopper, and Half-Length ConnectRail.
  • Added an option for physical objects to automatically detect physical material.
  • Fixed some issues that occurred when ApplyData operation in the editor script.
  • Fixed the issue where updating maps in the Workshop would not synchronize updates to the title/description/preview image/tags.
  • Adjusted the display style for WayPath.

Remastered Version Update Notes: Beta7 -> Beta8

Important Note: After this update, the game will default to launching the remastered version. If you wish to play the previous old version, please click "Start Game" in the Steam library UI and select "Ballex² (Legacy)."



Main Game



  • Added automatic rain-avoidance detection; when enabled, the player's ball will not be affected by rain when under any physics object.
  • Added corresponding lighting effects to all supply orbs.
  • Adjusted the color of the key and door in the first section of Level 3-2 to green.
  • Adjusted some level structures in Level 5-1.
  • Fixed the issue where kinematic body would not automatically reset position or zero out speed after death or restart.
  • Fixed the issue where UI and tips would not automatically switch languages when changing the language.
  • Fixed the issue where the game could not be quit when switching the ball.
  • Fixed issues with tag translations not being effective.


Map Editor



  • Added Item: PushBoard_ns, SeesawBoard_ns, TBoard_ns.
  • Added positioning blocks for SpikedFlail and SwingChest.
  • Added the ability to specify the top texture for global coordinates of custom materials.
  • Fixed the issue where the emission color parameter in materials was ineffective.
  • Added a emission flicker effect for Unlit materials.
  • Added some Executor functions.
  • Added an auto rain-avoidance option in environment settings, defaulted to off.
  • Changed the segment limit for the RoadGenerator to 256 and fixed UV issues in WayPath mode.


SR Time Adjustments



  • 4-1 3:00 3:30
  • 4-2 2:30 3:05
  • 4-3 3:45 4:20
  • 4-4 3:45 4:20

Remastered Version Update Notes: Beta6 -> Beta7

In this update, Level 5-1 and 5-2 have been added. They can be accessed after completing level 4-4.

Map Editor

  • Implemented custom code functionality for the road generator, as well as the cloning feature, and added a follow-path feature.
  • Added the ability to create waypoints through the road generator.
  • Added automatic waypoint collection for WayPath in children.
  • Added the ability to save mesh for ItemLink.
  • Fixed a memory leak issue when frequently reading textures.
  • Added a Volcano item pack, located in the Items/Volcano folder.
  • Added cloud item, located in the Items/Misc folder.
  • Added 6 general cliff materials, located in the Materials/Cliff folder.
  • Checkpoint and Destination events now include Message content for triggered checkpoints and destination.
  • Fixed an issue where the "OnPreCheckpointReached" event could not be reactivated after being canceled.


Main Game

  • Added the functionality to enter a level by clicking on the selected level again in the level selection interface.
  • Added a map version verification feature for the Workshop. Maps will be hidden if the game version is lower than the editor version of the map.
  • Fixed an issue where decals and component settings were not loading correctly.
  • Removed the jump function with the W key in map testing mode.
  • Improved memory leak issues in certain scenarios.
  • Adjusted the effect of snow and rain coverage material.
  • Adjusted the trigger range of checkpoints.
  • Added Spanish and Traditional Chinese languages.
  • Fixed an issue where rocks under the tree in the section2 of Level2-4 were incorrectly set to instant death upon contact.
  • Removed two tree branches at the uphill staircase in the third section of Level4-2.
  • Modified the convex corner at the end of the second section in Level4-4 to a flat corner.


SR Time Adjustments

  • 2-1 2:00 2:20
  • 2-2 1:35 1:50
  • 2-3 1:55 2:10
  • 2-4 2:45 3:10
  • 3-1 2:05 2:25
  • 3-2 2:20 2:40
  • 3-3 2:00 2:20
  • 3-4 2:40 3:05