Skip to content
daniilkorochanskyPublic

About

IDE for open.mp and SA-MP development with SAMPCTL integration, dependency management and built-in Git support.

Topics

Resources

Stars

11 stars

Watchers

1 watching

Forks

Repository files navigation

Spawn

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.

Platform Python Tests Build

Download Spawn · Roadmap · Report a bug · Contribute

English · Русский · Português

Spawn IDE overview

Why Spawn?

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.

Installation

Windows

  1. Open the latest release.
  2. Download and extract the archive.
  3. Run Spawn.exe.

Linux

  1. Open the latest release.
  2. Download the .deb package.
  3. Open the terminal in the folder where the .deb package is located and install the package:
sudo apt install ./Spawn_X.X.X_Linux_amd64.deb

Manual installation

  1. Open the latest release.
  2. Download and extract the Spawn_X.X.X_Linux_x64.tar.gz archive.
  3. 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
  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
  1. Give the Spawn executable permission to execute.
cd Spawn_X.X.X_Linux_x64
chmod +x Spawn
  1. Launch Spawn
./Spawn

For 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).

Quick start

Create a project

  1. Select File → New Project….
  2. Enter a project name and location.
  3. Click Create and follow the recommended instructions in the SAMPCTL command-line window.
  4. When project creation finishes, close the command-line window. Spawn will detect the new project.

Build and run a server

  1. Select File → Open Server Folder… and choose the server folder containing the pawn.json or pawn.yaml file generated by SAMPCTL.
  2. Select Build → Build Server.
  3. Use Server → Run / Stop Server to start or stop the server.
  4. Monitor the output in the integrated console.

Manage dependencies

Open Project → Package Manager…, enter a package name, and select Install. Select an installed package to uninstall it, or use Ensure to check dependencies.

Use Git

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.

Edit individual files

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.

Pawn file encodings

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: cp1251

If 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.

Screenshots

View feature screenshots

Project creation

Project creation

Split editor

Split code editor

RGBA/HEX color preview

Color preview

Dependency Manager

Dependency Manager

Git and source control

Git and source control

Project Tree

Project Tree

Roadmap

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 Spawn into Russian, Portuguese, Spanish, Indonesian, Romanian, and Turkish.
    • Russian
    • Portuguese
    • Spanish
    • Indonesian
    • Romanian
    • Turkish

Contributing

Bug reports, feature requests, UI/UX suggestions, code contributions, testing, and feedback are welcome.

To report a bug from Spawn:

  1. Select Help → Bug Report.
  2. Copy the generated report. If Log Output is empty, describe the issue yourself.
  3. Select Open GitHub Issue and paste the report into the issue description.

You can also open an issue on GitHub.

Support development

Spawn is free and open source. If you would like to support its development, you can donate through:

License

Spawn is licensed under the GNU General Public License v3.0. See LICENSE for details.


Development setup

Clone and run

git clone https://github.com/daniilkorochansky/spawn.git
cd spawn
pip install -r requirements.txt
python main.py

Run tests

Install pytest:

pip install pytest

If the repository does not already contain a pytest.ini, create one in the project root:

[pytest]
pythonpath = .

Then run:

pytest -v

All tests should pass before submitting changes.

Build on Windows

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 nuitka

For 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.py

For 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.

About

IDE for open.mp and SA-MP development with SAMPCTL integration, dependency management and built-in Git support.

Topics

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages