Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,25 @@ on:
jobs:
build:
runs-on: ubuntu-latest

permissions:
contents: write

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v7

- name: Use Node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v7
with:
node-version: '17'
node-version: '24'
cache: npm

- run: npm install
- run: npm ci

- run: npm run build --if-present

- name: commit to GitHub Pages
uses: JamesIves/github-pages-deploy-action@3.7.1
uses: JamesIves/github-pages-deploy-action@v4
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: build/
branch: gh-pages
folder: build
9 changes: 5 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v7

- name: Use Node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v7
with:
node-version: '17'
node-version: '24'
cache: npm

- run: npm install
- run: npm ci
- run: npm run build --if-present
9 changes: 9 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Website guidance

- Keep all 12 locales (`en`, `de`, `es`, `fr`, `id`, `ja`, `ko`, `nl`, `pl`, `ru`, `zh-Hans`, `zh-Hant`) consistent with the current English source. Update every other locale when English UI or documentation changes.
- Blog post titles and content stay in English across locales. Do not add translated post copies; keep blog interface labels localized.
- Use `FAQ` consistently for the navbar label, page title, and heading. Translate the FAQ answers.
- Do not use the em dash character in translations.
- Make buttons and other controls expand to fit longer translations, with enough horizontal padding; avoid fixed widths that clip translated text.
- Preserve the homepage tagline's blue emphasis for the phrases 'all-in-one', 'efficient', and 'creative'.
- Keep locale-prefixed routes working, including documentation routes such as `/nl/docs`. When validating, investigate page crashes and npm warnings, and check the localized site for consistency.
6 changes: 2 additions & 4 deletions blog/2020-03-16-discord.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
---
slug: "0"
title: "Mapping Tools Discord"
author: "OliBomby"
author_title: "Mapping Tools Lead Developer"
author_url: "https://github.com/OliBomby"
author_image_url: "https://avatars.githubusercontent.com/u/17460441"
authors: [OliBomby]
tags: ["discord"]
---

Mapping Tools now has its own discord!
<!-- truncate -->

Permanent invite link: https://discord.gg/YfijKN2yjQV
6 changes: 2 additions & 4 deletions blog/2023-01-09-kofi.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
---
slug: "1"
title: "Ko-fi donations"
author: "OliBomby"
author_title: "Mapping Tools Lead Developer"
author_url: "https://github.com/OliBomby"
author_image_url: "https://avatars.githubusercontent.com/u/17460441"
authors: [OliBomby]
tags: ["ko-fi", "donations"]
---

You can now support Mapping Tools on Ko-fi!
<!-- truncate -->

https://ko-fi.com/olibomby
5 changes: 5 additions & 0 deletions blog/authors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
OliBomby:
name: OliBomby
title: Mapping Tools Lead Developer
url: https://github.com/OliBomby
image_url: https://avatars.githubusercontent.com/u/17460441
2 changes: 2 additions & 0 deletions docs/01-mapping-tools/01-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,5 @@ Mapping Tools is built with freedom in mind, always maximizing the utility of si
- **Tumour Generator**
- Add various shapes along the sides of your sliders
- Design complete sliders in a new way
- **Slider Picturator**
- Turn an image into a slider and place it in a beatmap
71 changes: 28 additions & 43 deletions docs/01-mapping-tools/02-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,64 +2,49 @@
title: "Installation"
author: "aehrea"
id: installation
description: How to install Mapping Tools.
description: How to install Mapping Tools on Windows, Linux, and macOS.
keywords:
- docs
- mapping tools
- install
---

Mapping Tools currently **only supports Windows**. For non-Windows users there is the option to use [Wine](#wine) or use the [web-based version of Mapping Tools](#web-based).
Mapping Tools has native desktop builds for **Windows, Linux, and macOS**. Download the build for your processor from the [downloads page](/download) or the [GitHub releases](https://github.com/OliBomby/Mapping_Tools/releases/latest).

Mapping Tools can be downloaded from the [downloads page](/download) or from the [GitHub releases](https://github.com/OliBomby/Mapping_Tools/releases).
All packages are self-contained and include the .NET 10 runtime.

### Installer {#installer}
## Choose a package

Download and run the installer. Go through all the steps and finish the installer. Mapping Tools will then be installed.
- **Windows**: use the installer or portable ZIP. Choose x64 for most systems; x86 is for 32-bit Windows.
- **Linux**: use the AppImage or portable ZIP for x64 or ARM64.
- **macOS**: download the portable ZIP for Intel (x64) or Apple silicon (ARM64), then open **Mapping Tools.app** from the extracted folder.

Mapping Tools targets .NET 10 and is packaged self-contained, so no separate .NET installation is required.
## Feature compatibility {#editor-integration-by-platform}

### Portable {#portable}
✅ Supported · ❌ Unsupported. Supported features may require the setup described below.

Download the portable version .zip file and extract all of the contents into a folder. You can then open **Mapping Tools.exe**.
<div className="feature-compatibility">

### Wine (Linux) {#wine}
| OS | osu! client | Read/write beatmaps | Get current beatmap | Read live editor state | Auto-reload | Global hotkeys | Geometry Dashboard overlay |
| --- | --- | :---: | :---: | :---: | :---: | :---: | :---: |
| Windows | stable | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Windows | lazer | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| Windows | unstable | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Linux | stable | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| Linux | lazer | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| Linux | unstable | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| macOS | stable | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| macOS | lazer | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| macOS | unstable | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |

You can successfully run Mapping Tools on different operating systems with Wine. Most features will work correctly, but memory reading and Geometry Dashboard need some extra consideration.
In order to get memory reading to work, you need to install Mapping Tools into the osu! Wine prefix and run it with the same Wine binary. You also need to open osu! before opening Mapping Tools. If you can not get it to work, I recommend disabling Editor Reader in the Preferences, so Mapping Tools will not attempt memory reading every time it does something.
</div>

#### Install script (Recommended)
- **osu! stable**: on Windows, current-beatmap detection and live editor state reading use memory integration, and auto-reload uses simulated keypresses. On Linux and macOS, run stable through Wine and start a compatible **Gosumemory/Tosu** API at `127.0.0.1:24050` to get the current beatmap. Set the **Songs folder** in Preferences.
- **osu! lazer**: use **File > Edit externally** to expose the beatmap files. Mapping Tools automatically detects the external-edit beatmap, which counts as getting the current beatmap in this matrix. Use **Finish editing and import changes** in lazer to apply your edits. See the [lazer guide](/docs/guides/use-mt-in-lazer).
- **osu! unstable**: select **MTIPC** in Preferences for current-beatmap fetching, live editor state reading, and editor reload. These features require the client's MTIPC server. Live editor state reading and editor reload are disabled by default on Linux and macOS.
- **Global hotkeys**: on Linux, support depends on X11 or a desktop with the global-shortcut portal. On macOS, allow the keyboard access permissions requested by the system.

Use [this install script](https://gist.github.com/night-mareLuna/52c21dabd35d7cd359f9c52b471f0a8f) to automatically install Mapping Tools into your osu! Wine prefix. It will install any dependencies and memory reading should work too. This has been tested with [osu-winello](https://github.com/NelloKudo/osu-winello).

1. Download `install-mappingtools.sh` from the [GitHub gist](https://gist.github.com/night-mareLuna/52c21dabd35d7cd359f9c52b471f0a8f).
2. Start your osu! client.
3. Run: `chmod +x ./install-mappingtools.sh`
4. Run: `./install-mappingtools.sh --install`

#### Manual install

1. Install [WineHQ](https://www.winehq.org/). Follow the installation instructions for your operating system.
2. If you are using an Arch Linux distro, then you need to install GDI+ using Winetricks.
3. Download and run the Mapping Tools installer using Wine.
4. Run Mapping Tools after the installation is complete.
5. Go to the Preferences and disable Editor Reader if it doesn't work.

This has been tested with:
- Ubuntu 20.04 64-bit with wine-6.0.2 and wine-7.0.
- Manjaro KDE 21.3.7 with wine-7.1.

### Web-based {#web-based}

You can find an early preview of web-based Mapping Tools [**here**](https://potoofu.github.io/mapping-tools-web/). This version works on all platforms. This version of Mapping Tools does not have all the tools available.

Start by uploading your beatmap files with the **Upload** button at the top right. Select a mapping tool on the left, select a beatmap and run. The modified beatmap will be automatically downloaded. The files on the right also update when you run a mapping tool to modify them.

:::caution Still in early stages of developement

Many of the tools are still missing and there are likely a lot of bugs. If it doesn't load, try reloading the page with Shift-F5 and clear the cache.

:::
You can always select a beatmap directly with **File > Open beatmap**.

## Setup {#setup}

Expand All @@ -73,6 +58,6 @@ The most important fields to set are the following:

:::note

Make sure these fields are correct, as Mapping Tools may not work properly otherwise.
Make sure these fields are correct if you are using osu!stable, as Mapping Tools may not work properly otherwise.

:::
20 changes: 12 additions & 8 deletions docs/01-mapping-tools/03-contribute.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,30 @@
title: "Contribute"
author: "aehrea"
id: contribute
description: How to contribute Mapping Tools.
description: How to contribute to Mapping Tools.
keywords:
- docs
- mapping tools
---

There are several ongoing projects of Mapping Tools.
The main development of Mapping Tools happens in these two GitHub repositories:

### Mapping Tools

The main desktop application of Mapping Tools.

https://github.com/OliBomby/Mapping_Tools

### Mapping Tools Website

The website you are currently on. Shares the knowledge of Mapping Tools with the world-wide-web.

https://github.com/mappingtools/mappingtools.github.io

## Deprecated projects

These projects are no longer actively being developed but might still have some use.

### Mapping Tools Core

Mapping Tools back-end package for .NET developers. Allows other programs to use Mapping Tools features.
Expand All @@ -27,9 +37,3 @@ https://github.com/OliBomby/Mapping_Tools_Core
The web version of Mapping Tools. Uses Mapping Tools Core and is completely cross-platform compatible.

https://github.com/misakura-rin/mapping-tools-web

### Mapping Tools Website

The website you are currently on. Shares the knowledge of Mapping Tools with the world-wide-web.

https://github.com/mappingtools/mappingtools.github.io
13 changes: 7 additions & 6 deletions docs/02-general/01-Navigation.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,24 @@ id: navigation

Mapping Tools by default opens to the Get Started Screen, which contains a changelog of the application, as well as a list of most recently used maps with Mapping Tools. This screen can also be reached via the navigation menu.

At the top of the screen is a blue bar which holds the navigation toggle button, menus, and display for the _Current beatmap_. This is the beatmap that will be worked on by most of the mapping tools.
At the top of the screen is a blue bar which holds the navigation toggle button, menus, and display for the _Selected beatmap_. This is the beatmap that will be worked on by most of the mapping tools.

The navigation toggle button opens a menu on the left which you use to navigate to all pages in Mapping Tools. There is a search bar in which you can type the name of the page and you can press `Enter` to navigate to the top result. At all times, you can use `Ctrl+K` to open the navigation menu.

### File {#file}

The **File** menu contains buttons for selecting, loading, and saving your beatmap files.

- **Open beatmap** opens a file explorer to select one or more beatmap to set as the current beatmap.
- **Open current beatmap** sets the current beatmap to the beatmap currently selected in the _osu!_ client.
- **Generate backup** creates a backup of the current beatmap.
- **Load backup** opens a file explorer to select a backup beatmap to load into the current beatmap.
- **Open beatmap** opens a file explorer to select one or more beatmap to set as the selected beatmap.
- **Open current beatmap** sets the selected beatmap to the beatmap currently selected in the _osu!_ client.
- **Generate backup** creates a backup of the selected beatmap.
- **Load backup** opens a file explorer to select a backup beatmap to load into the selected beatmap.
- **QuickUndo** loads the latest non-periodic backup beatmap into the selected beatmap.
- **BetterSave™ current beatmap** saves the beatmap currently open in _osu!_ editor with coordinate rounding rather than truncating.

### About {#about}

The **About** menu provides additional information pertaining to Mapping Tools.
The **About** menu provides additional information and useful links for Mapping Tools.

- **Open backups folder** opens the folder containing all backups generated by Mapping Tools.
- **Open Mapping Tools folder** opens the folder containing all files generated by Mapping Tools such as settings, backups, and exports.
Expand Down
6 changes: 4 additions & 2 deletions docs/02-general/02-QuickRun.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,11 @@ To enable QuickRun, go to **Preferences** and assign a hotkey to the **QuickRun

`Alt+M` is a good hotkey to use since it doesn't interfere with the standard osu! editor hotkeys.

If you have the option **Auto reload after QuickRun** enabled, Mapping Tools will send a key-combination `Ctrl+L, Enter` to the osu! window to reload the editor after the tool has finished its work. This saves you having to reload manually.
If you have the option **Auto reload after QuickRun** enabled, Mapping Tools will automatically send a command to your osu! client to reload the editor after the tool has finished its work. This saves you having to reload manually.

It's good to remember that when QuickRunning a tool it **always uses the beatmap currently open in the editor** and not the current map selected in Mapping Tools.
:::info
It's good to remember that when QuickRunning a tool it **always uses the beatmap currently open in the editor** and not the map selected in Mapping Tools.
:::

## SmartQuickRun {#smartquickrun}

Expand Down
20 changes: 6 additions & 14 deletions docs/02-general/03-Backups.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,25 @@
title: "Backups"
author: "OliBomby"
id: backups
description: Everything about backups.
description: Everything about Mapping Tools backups.
keywords:
- docs
- mapping tools
- backups
---

Mapping Tools makes backups of your osu! beatmaps and stores them in the backups folder. To open the backups folder use **About > Open backups folder**. The location of the backups folder and other settings can be changed in the **Preferences**.
Mapping Tools stores beatmap backups in its configured backups folder. Open the folder with **About > Open backups folder** or change its location in **Preferences**.

The creation of backups makes use of Editor Reader to backup the latest version in the editor instead of the last save.
When live editor state reading is configured, backups can include the latest unsaved state from the editor. Otherwise, Mapping Tools backs up the beatmap file it can access on disk.

## Automatic backups {#automatic-backups}

With automatic backups enabled, every time you run a mapping tool a backup will be created of the beatmap that will be changed. This backup is usefull for if you want to undo the work of a tool.

To keep the number of backups in check, there is a max number of backups for the backups folder. If the backups folder is full, the oldest backups will be deleted whenever a new backup gets created.
When enabled, Mapping Tools creates a backup before a tool changes a beatmap. This gives you a restore point if you want to undo the tool run. You can set the backup folder and retention limit in **Preferences**. When the limit is reached, the oldest backups are removed.

## Periodic backups {#periodic-backups}

With periodic backups enabled, Mapping Tools will periodically make backups of your beatmap while you are using the osu! editor. It uses Editor Reader to backup the latest version, even when you forget to save. It will skip the backup if there has been no change in the beatmap since the last backup, so if you go AFK in the editor your backups folder won't be spammed with identical backups.

Periodic backups can be recognized by the `PB` (Periodic Backup) in the filename.
When enabled, Mapping Tools periodically backs up the current beatmap while it can read live editor state. It skips a backup when the beatmap has not changed since the previous one. Periodic backups contain `PB` in their filenames.

## Manual backups {#manual-backups}

In the **File** menu you have options for manual backup management:
- **Generate backup** creates a backup of the current beatmap.
- **Load backup** opens a file explorer to select a backup beatmap to load into the current beatmap.

Manual backups can be recognized by the `UB` (User Backup) in the filename.
Use the **File** menu to create a backup of the selected beatmap or load a backup into it. Manual backups contain `UB` in their filenames. **QuickUndo** restores the newest non-periodic backup to the beatmap currently open in osu!.
6 changes: 6 additions & 0 deletions docs/03-tools/Geometry Dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ id: geometry-dashboard

Geometry Dashboard is a powerful tool that overlays geometrically relevant virtual objects on top of the osu! editor, allowing you to snap objects to these virtual points, lines, and circles. This allows for creating geometrically perfect patterns that would be much harder, or impossible, to achieve otherwise.

:::note Platform support

Geometry Dashboard currently requires Windows because its live editor overlay depends on Windows-specific integration.

:::

:::tip
You must specify your user config file in the Mapping Tools Preferences for this tool to function.
:::
Expand Down
4 changes: 2 additions & 2 deletions docs/03-tools/Map Cleaner.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ author: "OliBomby"
id: map-cleaner
---

Map Cleaner cleans the current beatmap of useless greenlines and it also lets you do some
Map Cleaner cleans the selected beatmap of useless greenlines and it also lets you do some
other usefull operations on the whole beatmap.

Map cleaner works by reconstructing all timing points. It first stores all the influences of the
Expand Down Expand Up @@ -71,7 +71,7 @@ the exact length deviates with the rounding around the timeline ticks.
All spinner ends and hold note ends are also resnapped using the second
method.

If the current beatmap is in the osu! mania gamemode, then resnapping will also resnap the X
If the selected beatmap is in the osu! mania gamemode, then resnapping will also resnap the X
position of the notes to the middle of the columns and to Y = 192.

## Timeline
Expand Down
Loading
Loading