A lightweight IDE for Pawn development
Edit, build and manage open.mp and SA-MP server projects with integrated SAMPCTL, Git, package management, and a focused Pawn editor.
Download Spawn · Roadmap · Report a bug · Contribute
Spawn brings the tools commonly needed for Pawn server development into one lightweight, portable desktop IDE.
- Pawn editor — syntax highlighting, brace matching, changed-line markers, and split editing.
- Offline documentation — Read the documentation on open.mp and pawn scripting offline.
- SAMPCTL integration — create, build, and run server projects.
- Package Manager — install, update, and check project dependencies.
- Git integration — repository status, commit history, and source-control tools.
- Code-focused utilities — RGBA/HEX color previews and a color picker for inserting values into code.
- Project navigation — a project tree designed to work with large projects.
- Integrated output — build output and server console in the IDE.
- Encoding support — automatic detection and configurable encodings for Pawn source files.
- Portable workflow — run Spawn without a traditional installation.
- Open the latest release.
- Download and extract the archive.
- Run
Spawn.exe.
- Open the latest release.
- Download the
.debpackage. - Open the terminal in the folder where the
.debpackage is located and install the package:
sudo apt install ./Spawn_X.X.X_Linux_amd64.deb- Open the latest release.
- Download and extract the
Spawn_X.X.X_Linux_x64.tar.gzarchive. - Install the dependencies:
- Ubuntu / Debian / Linux Mint:
sudo apt update && sudo apt install -y libwebkit2gtk-4.1-0 libjavascriptcoregtk-4.1-0 - Arch Linux / Manjaro:
sudo pacman -Syu webkit2gtk-4.1
- Fedora:
sudo dnf install webkit2gtk4.1
- Open a terminal in the directory containing the downloaded archive and extract the archive.
tar -xzf Spawn_X.X.X_Linux_x64.tar.gz- Give the
Spawnexecutable permission to execute.
cd Spawn_X.X.X_Linux_x64
chmod +x Spawn- Launch
Spawn
./SpawnFor the full workflow, install Git and SAMPCTL. You can configure both later in Spawn's Settings(or it will happen automatically if they are present in the system environment).
- Select File → New Project….
- Enter a project name and location.
- Click Create and follow the recommended instructions in the SAMPCTL command-line window.
- When project creation finishes, close the command-line window. Spawn will detect the new project.
- Select File → Open Server Folder… and choose the server folder containing the
pawn.jsonorpawn.yamlfile generated by SAMPCTL. - Select Build → Build Server.
- Use Server → Run / Stop Server to start or stop the server.
- Monitor the output in the integrated console.
Open Project → Package Manager…, enter a package name, and select Install. Select an installed package to uninstall it, or use Ensure to check dependencies.
Right-click the project root in the Project Tree and select Initialize Repository if the project is not already a Git repository. You can then create commits and track changes from Spawn. Existing repositories are detected when Git integration is enabled in Settings.
You can open files through File → Open File… without opening a project. Editor features such as syntax highlighting, color previews, brace matching, split view, and changed-line markers remain available. Project-specific tools—including the Project Tree, Git integration, Package Manager, and SAMPCTL—require an opened project.
Spawn detects file encodings when opening files. For .pwn and .inc files, you can specify an encoding at the beginning of a file:
// -*- coding: cp1251 -*-or
// coding: cp1251If a file displays incorrectly, reopen it with another encoding via Edit → Encoding → Reopen. This changes how the file is displayed in the editor; it does not modify the file on disk.
Supported encodings include UTF-8 and Windows code pages 1250–1257. The default encoding for newly created Pawn files can be configured in Settings; Spawn can insert the corresponding encoding directive automatically.
The following is a development plan for Spawn, which focuses on the basic user experience and user interface convenience for the near future.
- Integrated Offline Documentation: Fully functional right-panel offline open.mp and sa-mp documentation.
- Custom Hotkeys: Fully rebindable keyboard shortcuts.
- Redesigning the Status Bar: Complete redesign of the status bar to provide a dedicated, clear space for real-time Git statuses (current branch, uncommitted changes, sync state).
- Code Polish: Refactoring the main modules to improve the responsiveness of the user interface. Bug fixes.
- Localization: Translation of
Spawninto Russian, Portuguese, Spanish, Indonesian, Romanian, and Turkish.- Russian
- Portuguese
- Spanish
- Indonesian
- Romanian
- Turkish
Bug reports, feature requests, UI/UX suggestions, code contributions, testing, and feedback are welcome.
To report a bug from Spawn:
- Select Help → Bug Report.
- Copy the generated report. If Log Output is empty, describe the issue yourself.
- Select Open GitHub Issue and paste the report into the issue description.
You can also open an issue on GitHub.
Spawn is free and open source. If you would like to support its development, you can donate through:
Spawn is licensed under the GNU General Public License v3.0. See LICENSE for details.
Development setup
git clone https://github.com/daniilkorochansky/spawn.git
cd spawn
pip install -r requirements.txt
python main.pyInstall pytest:
pip install pytestIf the repository does not already contain a pytest.ini, create one in the project root:
[pytest]
pythonpath = .Then run:
pytest -vAll tests should pass before submitting changes.
Spawn uses Nuitka to build a standalone executable. Install Microsoft Visual Studio Build Tools with the C++ workload and Windows SDK, then install Nuitka:
pip install nuitkaFor a 64-bit build:
python -m nuitka --standalone --onefile --include-data-dir=assets=assets --windows-console-mode=disable --assume-yes-for-downloads --company-name="Spawn Project" --product-name="Spawn" --copyright="Copyright (C) 2026 Daniil Korochansky" --output-filename=Spawn.exe --file-version="1.0.0" --product-version="1.0.0" --file-description="IDE for open.mp and SA-MP development" --windows-icon-from-ico=assets/spawn.ico --output-dir=dist --include-package=wx main.pyFor a 32-bit build, add --target=x86. The generated executable is placed in dist. If compilation fails on a 32-bit system, try --msvc=latest; as a last resort, try --mingw64.





