Skip to content

daniilkorochansky/spawn

Repository files navigation

Platform Language Tests build Status

Spawn

spawn_new

A fast and modern development environment (IDE), created specifically for developing open.mp and SA-MP servers, in the Pawn programming language.

It combines Pawn editing, SAMPCTL integration, dependency management, Git version control, and project navigation tools into a single development environment designed around the needs of multiplayer server developers.

Portable, extensible, and focused on productivity, Spawn helps you build, manage and maintain Pawn projects without relying on generic code editors.

Overview

ui

Table of Contents

Features

  • Designed specifically for open.mp & SA-MP development.
  • Built-in SAMPCTL integration for building, running and managing projects.
  • Dependency Manager for easy installation and updating of server packages and components.
  • Integrated Git support with repository status indicators and commit history.
  • Change History markers for tracking modified and saved lines.
  • Automatic brace matching and highlighting.
  • Color preview for RGBA and HEX values directly inside the editor.
  • Color Picker integration for quick color insertion into Pawn code.
  • Split Code Editor mode for working with multiple files simultaneously.
  • Project Tree optimized for large projects.
  • Integrated build output and server console panels.
  • Automatic project files monitoring and refresh.
  • Portable distribution (no installation required).

Why Spawn IDE? (Comparison)

Spawn is built from scratch to deliver a modern, resource-efficient developer experience without the bloat of web-based editors or the rigid limitations of legacy tools.

Features & Capabilities Pawno Qawno (open.mp) VS Code (with plugins) Spawn IDE
RAM Usage 🟢 ~10-20 MB 🟢 ~40-60 MB 🔴 ~300-800+ MB (Electron) 🟢 ~30-50 MB (Native UI)
Cross-Platform Support 🔴 Windows Only 🔴 Windows Only 🟢 Linux, Windows, macOS 🟢 Linux & Windows (Native)
Git / Source Control 🔴 None 🔴 None 🟡 Via Plugins (Heavy) 🟢 Built-in (Lightweight)
SAMPCTL 🔴 None 🔴 None 🟡 Via Third-Party Plugins 🟢 Built-in Integration
EOL Conversion (LF/CRLF) 🔴 None 🔴 None 🟢 Built-in 🟢 Built-in
Encoding Detection 🔴 None 🔴 None 🟡 Basic 🟢 Smart (via Comment Rule)
Built-in Color Picker 🔴 None 🟢 Out of the Box 🔴 Requires Extension 🟢 Out of the Box
Package Manager (Pawndex) 🔴 None 🔴 None 🔴 None 🟡 In Roadmap (Native)
IntelliSense & Autocomplete 🔴 None 🟡 Basic (Slow) 🟢 Good (High CPU Usage) 🟡 In Roadmap (Fast / Low CPU Usage)
Split Code Editor View 🔴 None 🔴 None 🟢 Built-in 🟢 Out of the Box (3+ tabs)
Setup & Installation 🟢 Portable 🟢 Portable 🔴 Complex Manual Config 🟢 Portable

Screenshots

Project Creation

Project Creation

Split Code Editor View

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

Installation

Download

  1. Download the latest release from the Releases page.
  2. Extract the archive to any location
  3. Run 'Spawn.exe'.

Optional Tools

To use all features of Spawn, you may also install:

These tools can be configured later in Settings.

Quick Start

Create a Project

  1. Select 'File' → 'New Project...'.
  2. Enter project name and choose a project location.
  3. After clicking 'Create', the SAMPCTL command-line tool will be launched. Follow the on-screen instructions to complete project creation.
  4. Once the process is complete, close the SAMPCTL command-line tool. Spawn will pick up the new project.

Manage Dependencies

  1. Select 'Project' → 'Dependency Manager...'.
  2. Enter the package name in the 'Dependency' field
  3. Click 'Install'.
  • To uninstall a dependency, select the one you want from the list and click 'Uninstall'.
  • To verify that all dependencies are in order, click the button labeled 'Ensure'.

Use Git

  1. Right-click the root folder in the Project Tree → choose 'Initialize Repository'. (If the repository wasn't on the server)
  2. Create your first commit.
  3. Track changes directly from the IDE.

If the repository is already on the server, Spawn will automatically detect it (provided Git is enabled in the settings)

Build and Run Server

  1. Open the root folder containing the server by selecting 'File' → 'Open Server Folder...' (The server must contain the 'pawn.json' file generated via SAMPCTL)
  2. Go to 'Build' → 'Build Server' or click the corresponding button on the toolbar.
  3. Start your server by going to 'Server' → 'Run / Stop Server' or by clicking the corresponding button on the toolbar.
  4. Monitor output in the integrated console.

You're ready to develop open.mp and SA-MP servers with Spawn.

Working with Individual Files

Spawn can also be used without opening a project.

To edit a multiple file:

  1. Select 'File' → 'Open File...'.
  2. Choose a files.
  3. Start editing immediately.

When working with individual files, editor features such as syntax highlighting, color previews, brace matching, split view, and change history markers remain fully available.

Project-specific functionality such as the Project Tree, Git integration, Dependency Manager, and SAMPCTL tools requires an opened project.

Encoding Detection

Spawn automatically detects file encodings when opening files.

For Pawn source files (.pwn and .inc), you can explicitly specify the encoding using an encoding directive at the beginning of the file:

// -*- coding: cp1251 -*-

When present, Spawn will use the specified encoding when opening and saving the file.

If no encoding directive is found, Spawn will attempt to detect the file encoding automatically.

Reopening Files with a Different Encoding

In some cases, automatic detection may not correctly identify the file encoding.

If a file is displayed incorrectly, you can reopen it using a different encoding:

Edit → Encoding → Reopen

This operation does not modify the file on disk and only affects how the file is displayed in the editor.

Supported Encodings

  • UTF-8 (Unicode)
  • Windows-1250 (Central European)
  • Windows-1251 (Cyrillic)
  • Windows-1252 (Western European)
  • Windows-1253 (Greek)
  • Windows-1254 (Turkish)
  • Windows-1255 (Hebrew)
  • Windows-1256 (Arabic)
  • Windows-1257 (Baltic)

Default Pawn Encoding

You can configure the default encoding used for newly created Pawn source files.

When a new .pwn or .inc file is created, Spawn can automatically insert an encoding directive based on the selected default encoding.

Development

Requirements

  • Python 3.12+
  • wxPython
  • GitPython
  • Markdown
  • watchdog
  • platformdirs

Clone the Repository

https://github.com/daniilkorochansky/spawn.git

or

gh repo clone daniilkorochansky/spawn

Install Dependencies

In the root folder, run:

pip install -r requirements.txt

Run

Also in the root folder, run:

python main.py

Build Executable (Windows)

Spawn uses Nuitka to create standalone executable builds.

  1. Install Microsoft Visual Studio Build Tools with the C++ workload and Windows SDK: https://visualstudio.microsoft.com/downloads/
  2. Restart your computer
  3. Install Nuitka:
pip install nuitka
  1. Open a command prompt in the root folder and build the executable:
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

or (Windows x86):

nuitka --standalone --onefile --include-data-dir=assets=assets --windows-console-mode=disable --assume-yes-for-downloads --target=x86 --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

If you are unsuccessful on a 32-bit system, try adding the option: --msvc=latest (as a last resort, instead of this option, add: --mingw64)

The order of actions is important!

The generated executable will be available in the dist directory.

Tests

You can conduct tests to verify the functionality of new features or changes to key system components. To run the tests, follow these steps:

  1. Install pytest
pip install pytest
  1. Create a file named pytest.ini in the root folder with the following contents (if it doesn't already exist)
[pytest]
pythonpath = .
  1. Open a command prompt in the root folder
  2. Execute the following command: pytest -v

All tests must return a ‘PASSED’ result. Otherwise, you need to find and fix the error or bug in the code, and then run the tests again.

Contributors

Spawn is an open-source project built for the open.mp and SA-MP community.

Contributions of all sizes are welcome, including:

  • Bug reports
  • Feature requests
  • UI/UX suggestions
  • Code contributions
  • Testing and feedback

Thank you for helping make Spawn better for everyone.

Bug Report

If you encounter an error or bug while using Spawn, follow these steps:

  1. Select 'Help' → 'Bug Report'
  2. Click the ‘Copy’ button (If 'Log Output' is empty, proceed immediately to the next step.)
  3. Click the ‘Open GitHub Issue’ button
  4. Paste the completed report into the description and enter a title (If the ‘Log Output’ field was empty, please describe the error or bug yourself.)

Donations

Spawn is developed in free time and will always remain free and open source.

If you enjoy using Spawn and would like to support its future development, you can make a donation. Every contribution helps improve the IDE and keep the project moving forward.

Thank you for your support ❤️

ko-fi

Donate via Boosty (Россия / International)

License

Spawn is licensed under the GNU General Public License v3.0.

See the LICENSE file for details.

About

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

Topics

Resources

License

Stars

11 stars

Watchers

1 watching

Forks

Contributors

Languages