{"id":17566663,"url":"https://github.com/spair/strongdmm","last_synced_at":"2025-04-13T05:01:44.808Z","repository":{"id":34968171,"uuid":"175143044","full_name":"SpaiR/StrongDMM","owner":"SpaiR","description":"Robust map editor for BYOND","archived":false,"fork":false,"pushed_at":"2025-03-24T17:19:05.000Z","size":232419,"stargazers_count":133,"open_issues_count":64,"forks_count":78,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-04T05:05:39.588Z","etag":null,"topics":["byond","desktop","dm","dmm","dreammaker","editor","go","golang","golang-application","map","mapeditor","sdmm","ss13","strongdmm","tgm"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SpaiR.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"spair","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2019-03-12T05:41:59.000Z","updated_at":"2025-03-31T23:36:25.000Z","dependencies_parsed_at":"2023-12-12T09:40:51.618Z","dependency_job_id":"fbfb4341-e6f8-4564-8afc-6f6bf6f62ec5","html_url":"https://github.com/SpaiR/StrongDMM","commit_stats":{"total_commits":1359,"total_committers":19,"mean_commits":71.52631578947368,"dds":0.05739514348785868,"last_synced_commit":"b2a84e565778cd64bffc48a2589e5f495009cbaf"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpaiR%2FStrongDMM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpaiR%2FStrongDMM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpaiR%2FStrongDMM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpaiR%2FStrongDMM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpaiR","download_url":"https://codeload.github.com/SpaiR/StrongDMM/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665754,"owners_count":21142123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["byond","desktop","dm","dmm","dreammaker","editor","go","golang","golang-application","map","mapeditor","sdmm","ss13","strongdmm","tgm"],"created_at":"2024-10-21T15:07:50.869Z","updated_at":"2025-04-13T05:01:44.744Z","avatar_url":"https://github.com/SpaiR.png","language":"Go","funding_links":["https://ko-fi.com/spair","https://ko-fi.com/P5P5BF17Q"],"categories":[],"sub_categories":[],"readme":"# Strong Dream Map Maker \u0026middot; [![GitHub release](https://img.shields.io/github/release/SpaiR/StrongDMM.svg?label=StrongDMM)](https://github.com/SpaiR/StrongDMM/releases/latest) [![Github All Releases](https://img.shields.io/github/downloads/SpaiR/StrongDMM/total.svg?logo=github)](https://github.com/SpaiR/StrongDMM/releases) ![CI](https://github.com/SpaiR/StrongDMM/workflows/CI/badge.svg)\n\n\u003cp align=\"center\"\u003e\u003cb\u003eDownload StrongDMM\u003c/b\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://bit.ly/sdmm-windows\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white\" alt=\"Windows download link\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://bit.ly/sdmm-linux\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\" alt=\"Linux download link\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://bit.ly/sdmm-macos\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white\" alt=\"macOS download ink\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cimg align=\"right\" width=\"150\" src=\"https://raw.githubusercontent.com/SpaiR/StrongDMM/master/docs/sdmm-logo.png\" alt=\"StrongDMM Logo\"\u003e\n\nStrongDMM is an alternative yet robust map editor for BYOND.\n\nIt was built with the idea of creating a more flexible, fast, and extensible tool than the BYOND built-in map editor.\nThe editor has the same features as DM, but provides much more and improves the general map editing experience.\n\n## Features\n\nThe editor offers a range of new features:\n\n* TGM support with built-in map merger (no need to use external scripts and pre-commit hooks);\n* Almost instant environment open;\n* Custom layers filter;\n* Built-in screenshot tool;\n* Smooth zoom-in/zoom-out;\n* Robust \"Search\";\n* Improved shortcuts;\n* Robust variables editor and variables preview;\n* Optional sanitization of variables;\n* Open with CLI.\n\n...and a lot more...\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"450\" src=\"https://raw.githubusercontent.com/SpaiR/StrongDMM/master/docs/sdmm-example.png\" alt=\"StrongDMM Example\"\u003e\n\u003c/p\u003e\n\n## How to Use\n\nStrongDMM is a single executable, which doesn't require any installation.\nYou can download it from any of the provided links and start it right away.\n\n**Download Links:**\n\n* [Windows](https://bit.ly/sdmm-windows)\n* [Linux](https://bit.ly/sdmm-linux)\n* [macOS](https://bit.ly/sdmm-macos)\n\n[Release](https://github.com/SpaiR/StrongDMM/releases/latest) page contains all distributed files. It also has `sha256` hashes info for every executable for validation purposes.\n\n### CLI Usage\n\nStrongDMM do support CLI to quickly open maps. Provide `.dme` or `.dmm` files as program arguments:\n\n###### With DME\n```\nstrongdmm.exe path/to/environment.dme ./map1.dmm ../path/map2.dmm\n```\n\n###### Without DME\n```\nstrongdmm.exe ./map1.dmm ../path/map2.dmm\n```\n\nWhen providing `.dmm` files without `.dme`, a proper environment file will be found automatically.\n\n## Support\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/P5P5BF17Q)\n\nStrongDMM was developed without any monetization in mind. The main motivation is the enthusiasm for creating cool stuff.\\\nYour support can demonstrate your appreciation and will motivate further development of the project.\n\nAdditionally, if you have specific features in mind that you'd like implemented in the editor, we can focus on your needs.\\\nFeel free to reach out to me through my public contact to discuss details: [E-Mail](mailto:despsolver@gmail.com)\n\n## FAQ\n\n**Q.** My antivirus software detects something suspicious in the editor binaries. Is it ok?\\\n**A.** Yes, it's a false positive reaction to the way Golang, the development language, creates binaries. Read more: [Golang FAQ](https://go.dev/doc/faq#virus)\n\n**Q.** How do I verify my executables?\\\n**A.** Verify them using `sha256` hashes, available on the [releases page](https://github.com/SpaiR/StrongDMM/releases/latest).\n\n**Q.** But how can I trust executables on the release page?\\\n**A.** Executables are built with the [CI pipeline](https://github.com/SpaiR/StrongDMM/actions/workflows/ci.yml). You can verify the process yourself or build the executables manually from the source code.\n\n**Q.** How to uninstall the editor?\\\n**A.** StrongDMM doesn't require installation, so no specific uninstallation process is needed. Simply delete the executable and, if desired, its directory on your OS to remove editor data.\n\n**Q.** Where do I find editor data?\\\n**A.** For Windows: `C:\\Users\\USER\\AppData\\Roaming\\StrongDMM`, for Linux/macOS: `~/.strongdmm`.\n\n**Q.** How to move the map?\\\n**A.** Drag the map using the **middle mouse button**, or by holding the **space key**. Alternatively, you can use the **arrow keys**.\n\n**Q.** How to zoom?\\\n**A.** Zoom using your mouse scroll wheel or the **+/- keys** on the keyboard.\n\n**Q.** How to change the save format?\\\n**A.** Go to `File -\u003e Preferences...` in the menu bar and select the desired format.\n\n**Q.** The editor crashed. Where can I find logs?\\\n**A.** Access logs via the menu: `Help -\u003e Open Logs Folder`.\n\n## How to Build\n\nBuilding the application involves two steps:\n\n1. Build the **sdmmparser** library;\n2. Build the editor.\n\n**sdmmparser** is a Rust library based on the [SpacemanDMM](https://github.com/SpaceManiac/SpacemanDMM) parser and is compiled to a `staticlib`.\nIt can be found at `/third_party/sdmmparser/src`.\n\n### Prerequisites\n\n* [Go](https://go.dev/): version **1.23** or higher.\n* [Rust](https://www.rust-lang.org/): version **1.82.0** or higher.\n* [Task](https://taskfile.dev): for running build scripts. (Optional, but recommended)\n\n#### For Windows\n\n* [MinGW-w64](https://www.mingw-w64.org/)\n\n##### How to install\n\nMinGW can be installed through package managers like choco (Chocolatey) or downloaded and installed directly from the MinGW website. \nAfter installation, make sure the bin directory of MinGW (which contains gcc.exe) is in your system's PATH.\n\n##### Why to use MinGW\n\nMinGW, short for Minimalist GNU for Windows, is a lightweight development environment providing essential tools like a C compiler for Windows. \nIt is required as the application uses `cgo` to integrate C libraries, enabling the build and compilation of `cgo` code and ensuring all dependencies are handled properly. \n\nUnlike MSVC (Microsoft Visual C++), which uses different conventions and linkers incompatible with `cgo`, \nMinGW is designed to work seamlessly with Go's build system, making it the preferred choice for compiling `cgo` code on Windows.\n\nAlternatively, you can use WSL (Windows Subsystem for Linux) to provide a Linux-like environment that supports cgo and C compilers compatible with Go.\nIn that case look [for linux](#for-linux) dependencies.\n\n#### For Linux\n\nYou may need to install dependencies for building GUI apps:\n\n- **`apt` (Debian, Ubuntu):** `sudo apt install xorg-dev libgtk-3-dev`\n- **`yum` (Red Hat, CentOS, Fedora):** `sudo yum install xorg-x11-server-devel gtk3-devel`\n- **`dnf` (Fedora, newer Red Hat and CentOS):** `sudo dnf install xorg-x11-server-devel gtk3-devel`\n- **`pacman` (Arch Linux):** `sudo pacman -S xorg-server-devel gtk3`\n- **`zypper` (openSUSE):** `sudo zypper install xorg-x11-server-devel gtk3-devel`\n- **`dnf` or `yum` (Amazon Linux):** `sudo dnf install xorg-x11-server-devel gtk3-devel`\n- **`apk` (Alpine Linux):** `sudo apk add xorg-server-dev gtk+3.0-dev`\n\n### Steps\n\n#### Using Task (Recommended)\n\nTask is a cross-platform Make alternative with scripts in `Taskfile.yml`.\n\nWith Task installed:\n\n* `task build`: Builds sdmmparser and the editor (output in `dst` directory).\n* `task run`: Runs the editor (compiles first if needed).\n\n#### Manually\n\n1. Build the **sdmmparser** library:\n    1. Navigate to `third_party/sdmmparser/src`\n    2. Run command:\n        * **Windows:** `set RUSTUP_TOOLCHAIN=stable-x86_64-pc-windows-gnu \u0026\u0026 cargo build --release`\n        * **Linux / macOS:** `cargo build --release`\n2. In the root directory:\n    * `go build .`: Builds the editor (executable named `sdmm.exe`/`sdmm` in the root).\n    * `go run .`: Runs the editor.\n\nStep #1 is required only when the **sdmmparser** is modified.\n\n##### Why Use a Custom RUSTUP_TOOLCHAIN\n\nThe **sdmmparser** library is compiled into a `staticlib` that is linked into the final Go binary.\\\nThe MSVC toolchain is not compatible with Go, as Go relies on the GNU toolchain for CGO (the mechanism that compiles C code natively within Go).\nUsing a custom `RUSTUP_TOOLCHAIN` ensures that the Rust library is compiled in a way that aligns with Go's requirements, \navoiding compatibility issues and ensuring smooth integration.\n\n## Credits\n\nStrongDMM uses [SpacemanDMM](https://github.com/SpaceManiac/SpacemanDMM) parser made\nby [SpaceManiac](https://github.com/SpaceManiac). \\\nThe application icon is designed by [Clément \"Topy\"](https://github.com/clement-or).\n\n## License\n\nSee the LICENSE file for license rights and limitations (GPL-3.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspair%2Fstrongdmm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspair%2Fstrongdmm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspair%2Fstrongdmm/lists"}