Cut the Rope: DX
Cut the Rope: DX brings Cut the Rope to PC.
- Type: PC port
- Game: Cut the Rope
- Runs on macOS, Windows and Linux
- By yell0wsuit
- Latest release v2.45.2, 2026-09-19
- Source: https://github.com/yell0wsuit/cuttherope-dx
- Website: https://yell0wsuit.github.io/cuttherope-dx/
README
Cut the Rope DX
About
Cut the Rope DX (Decompiled Extra) is a fan-made enhancement of the PC version of Cut the Rope, originally developed by ZeptoLab. This project aims to improve the original game's codebase, add new features, and enhance the overall gaming experience.
The game's source code is decompiled from the PC version, which serves as the foundation for development and feature expansion.
This project is a part of the Cut the Rope Home fan project, and is currently led by yell0wsuit, with help from contributors.
The logo is designed by Bingies24 and darealmrcatz.
[!NOTE] This project is not, and will never be affiliated with or endorsed by ZeptoLab. All rights to the original game and its assets belong to ZeptoLab.
Related projects
- Cut the Rope DX: Level Editor: a standalone app for creating and editing levels for Cut the Rope DX.
- Cut the Rope: H5DX: a web edition of Cut The Rope, originated from the FirefoxOS version. Deprecated, superseded by this project's browser edition.
Download
Download the latest release from the Releases page.
Features
- More boxes beyond DJ Box, from Spooky Box to Mechanical Box.
- Seasonal Christmas theme and decorations, available during December and January.
- Dynamic level UI, supports variable numbers of levels. Currently, the code only supports fewer than 25 levels.
- Support loading custom sprites and animations from TexturePacker in JSON array format. This allows easier modding and adding new assets.
- Improved experience and bug fixes over the original PC version.
- Runs in the browser: a WebAssembly build renders through Skia and installs as a PWA, so it plays offline once loaded. Saves live in
localStoragerather than a file. - Better save file format. The save file (
ctr_preferences.json) is stored in aCutTheRopeDX_SaveDatafolder, with the following fallback priority:- Next to the game executable (preferred for portability)
Documents/CutTheRopeDX_SaveData-- if the above is not writable. Usually on macOS with.appbundle installation, or some Linux setups.%LOCALAPPDATA%/CutTheRopeDX_SaveData(Windows) or equivalent on other platforms
Goals
Short-term goals
Please see issue #68 for the current short-term goals.
Long-term goals
- Bug fixing and polish: Fix bugs, and ensure everything works smoothly.
- Code optimization and modernization: Optimize performance-critical code, and modernize codebase.
Development & contributing
The development of Cut the Rope DX is an ongoing process, and contributions are welcome! If you'd like to help out, please consider the following:
- Reporting issues: If you encounter any bugs or issues, please report them on the GitHub Issues page.
- Feature requests: If you have ideas for new features or improvements, feel free to submit a feature request through Issues.
- Contributing code: If you're a developer and want to contribute code, please fork the repository and submit a pull request. Make sure to read the contribution guidelines in
CONTRIBUTING.md.
Testing the code
Do these steps to test the game while you develop it.
- Install .NET 10 or higher.
[!NOTE]
Theglobal.jsonfile sets the minimum SDK version. It usesrollForward: latestFeature. Thus a newer 10.0.x SDK also works. If your SDK is older than the minimum, eachdotnetcommand stops with a version-mismatch error. Install a newer SDK to correct this.
-
Clone the repository to your computer:
git clone https://github.com/yell0wsuit/cuttherope-dx.git cd cuttherope-dxYou can also use GitHub Desktop to clone the repository.
-
Build the game with one of these commands.
[!NOTE]
ThePublishAotoption has prerequisites. Obey the AOT prerequisites for your operating system.
a. Windows
dotnet publish src\CutTheRopeDX.Desktop\CutTheRopeDX.Desktop.csproj -c Release -f net10.0 -p:PublishAot=true -o .\src\CutTheRopeDX.Desktop\bin\Publish\win-x64
b. macOS
Use this command if you do not use AVFoundation. The game then plays the video with FFmpeg. Install FFmpeg from Homebrew first.
dotnet publish src/CutTheRopeDX.Desktop/CutTheRopeDX.Desktop.csproj -c Release -f net10.0 -r osx-arm64 -o ./src/CutTheRopeDX.Desktop/bin/Publish/osx-arm64
Use this command if you use AVFoundation. AVFoundation needs macOS 26.0 or later, and Xcode.
dotnet publish src/CutTheRopeDX.Desktop/CutTheRopeDX.Desktop.csproj -c Release -f net10.0-macos -r osx-arm64 -p:PublishAot=true -o ./src/CutTheRopeDX.Desktop/bin/Publish/osx-arm64
[!NOTE]
Changeosx-arm64toosx-x64to build the game for an Intel Mac. We do not know if the game operates correctly on an Intel Mac.
c. Linux
dotnet publish src/CutTheRopeDX.Desktop/CutTheRopeDX.Desktop.csproj -c Release -f net10.0 -p:PublishAot=true -o ./src/CutTheRopeDX.Desktop/bin/Publish/linux-x64
[!WARNING]
A native AOT binary from Linux operates only on the same Linux version, or on a newer Linux version.
If native AOT causes a problem, remove the -p:PublishAot=true option. Then build the game again.
d. Browser (WebAssembly)
The browser build needs the WebAssembly workload. It also needs its own content. A Python script converts the desktop assets to WebP files, Ogg Vorbis files, WebM videos and subset fonts. Do this conversion before you build the game. The script needs Python 3.11 or a newer version.
dotnet workload install wasm-tools
python3 -m pip install pillow fonttools
dotnet restore content/Builder/CutTheRopeDX.Content.csproj
python3 scripts/build_web_content.py
[!NOTE]
Thedotnet restorecommand puts the correct FFmpeg in your NuGet cache. The script does not use the FFmpeg from thePATH. Many FFmpeg builds do not have thelibvorbisencoder and thelibwebpencoder. Such a build fails at a later time.
The conversion is incremental. Do the conversion again only after you change an asset. The script reports each file as it converts it: a terminal gets one line that updates in place, and a log file or a CI job gets a line every few seconds. Add --no-progress for the stage totals alone.
Start the game in your browser:
dotnet run --project src/CutTheRopeDX.Browser/CutTheRopeDX.Browser.csproj
Or publish the static site:
dotnet publish src/CutTheRopeDX.Browser/CutTheRopeDX.Browser.csproj -c Release -o dist
The build writes the site to the dist/wwwroot directory. The Deploy Browser to GitHub Pages workflow sends this site to GitHub Pages. You must start this workflow manually.
-
Run the unit tests:
dotnet test --solution CutTheRopeDX.slnx -p:ExcludeMacOSTarget=true
Running a custom level
Cut the Rope DX can launch straight into a level XML file instead of the normal game, which is intended for level editors and other external tools.
CutTheRopeDX --level <path-to-level.xml>
The path may be absolute or relative, and the file does not need to live under the content directory.
You can also drag an .xml level file onto the executable — a bare .xml argument is treated the same as --level <path>. If both are given, --level wins.
Behavior
- The splash screen and menu are skipped; the level loads and plays immediately.
- No scores, stars, or unlocks are written. A custom run never touches saved progress.
- The pause menu offers Continue, Quit, and the sound and music toggles.
- The result screen offers Replay only.
Exit codes
0on normal exit.- Nonzero when the level file is missing, unreadable, or malformed. The reason is printed to stderr and no window is created.
Hot reloading
Rewriting the level file while the game is running reloads it automatically. If the edited level needs only resources that are already loaded, it restarts in place; otherwise it reloads through the loading screen.
A malformed file is reported on stderr and leaves the running level untouched, so a partial write will not crash the game. Even so, writers should write atomically—write to a temp file, then move it over the target—so the game never reads a half-written file.