A native macOS port of Qawno, the open.mp Pawn editor. Apple Silicon + Intel, dark/light themes, a bundled native Pawn compiler (no Wine), and native macOS chrome.
Same Qawno you know, rebuilt for macOS with everything the original couldn't ship:
- Native macOS chrome — real traffic lights, system window shadow, proper close button, no Win32 emulation.
- Dark / Light / System themes — every panel re-themed top to bottom.
- Native Pawn compiler — a native
pawnccships in the app and compiles directly. No Wine, no CrossOver. - Auto-update Pawn compiler — Updates tab checks GitHub, downloads, installs.
- Per-language syntax themes — Pawn, C/C++, Python, JavaScript, Rust.
- App-wide font picker — sets menus, sidebar, tab strip. Editor / output keep their own monospace.
- Settings panel — proper macOS Preferences layout (sidebar + cards), Folder Access, Privacy, Updates tabs.
- Anonymous telemetry (opt-in) — see Telemetry.
- Translation infrastructure — 28 locales scaffolded, English shipped.
- Open / Save / Color dialogs — native macOS panels.
Grab Qawno.app (zipped) from
Releases, then
unzip it.
- Drag
Qawno.appto/Applications(or anywhere). - Double-click. macOS asks once for Documents access — say yes if your projects live there.
- Open a
.pwnand compile — the native compiler is already bundled.
That's it. No Xcode, no CrossOver, no Wine.
The app is self-signed (ad-hoc), not notarized — Apple notarization isn't available for this build, so Gatekeeper will warn on first launch. It's safe to open; you just have to tell macOS so once:
-
Right-click
Qawno.app→ Open → Open in the dialog, or -
After macOS blocks it, go to System Settings → Privacy & Security and click Open Anyway, or
-
From a terminal, clear the quarantine flag:
xattr -dr com.apple.quarantine /Applications/Qawno.app
After the first successful open, it launches normally.
open.mp / SA-MP projects use this layout:
your-project/
├── qawno/
│ └── include/ ← .inc files
├── gamemodes/
│ └── your.pwn
├── filterscripts/
└── plugins/
- Open the project in Qawno — drag the folder onto
Qawno.app, orFile → Opena.pwninside it. - Compile — click Compile (or
⌘B). Qawno walks up from the.pwnto find theqawno/folder, deploys the bundled nativepawnccintoqawno/native/, runs it, and writes the.amxbeside your.pwn. No pawncc download, no Wine.
If you'd rather work in VS Code (or Cursor / VSCodium), the same native, Wine-free compiler is available as an extension:
Open Pawn — on the VS Code Marketplace
code --install-extension Mac-Andreas.open-pawnIt bundles a native pawncc for Windows, macOS, and Linux, plus full editor
tooling:
| Feature | Open Pawn (VS Code) | Qawno (this app) |
|---|---|---|
| Native compiler — no Wine | Yes | Yes |
| Bundled compiler (Win / macOS / Linux) | Yes | macOS |
| Syntax highlighting | Yes | Yes |
| Snippets | Yes | Yes |
| Autocomplete / IntelliSense | Yes | Yes |
| Hover · Go-to-definition | Yes | — |
| Document / workspace symbols | Yes | — |
| Code folding | Yes | — |
| Document formatter | Yes | — |
| Build task · compile-on-save | Yes | Compile button |
| Problems-panel diagnostics | Yes | Output panel |
| Cross-platform editor | Yes (VS Code) | macOS only |
Use whichever fits your workflow — both produce the same open.mp-compatible
.amx (magic 0xF1E0).
Qawno produces a .amx byte-identical to one built on Windows. Three ways to run it:
- Paste onto your Windows server / VPS
Copy the project (or just the new
.amx) onto the Windows host and startomp-server.exeas usual. No compatibility shim needed. - Linux server
Drop the project onto your Linux box and run the open.mp Linux
omp-serverbinary that ships with the server release. - Locally on macOS via Wine
The open.mp server is Windows-only, so to run it on macOS you need your own
Wine/CrossOver install:
wine omp-server.exefrom inside the project. (Qawno itself no longer bundles Wine — only the compiler is native.)
(Inherited from upstream Qawno + macOS additions.)
- Syntax highlighting with per-language themes (auto-inverts light/dark)
- Auto completion — known natives and user symbols
- Natives list sidebar
- Multiple tabs — open as many files as you like
- Pawn compiler with inline error/warning gutter underline
- Find & Replace (
⌘F) — match case, whole-word, regex, backwards - Colour picker (
⌘M) — native macOS picker - Editing helpers —
⌘Dduplicate,⌘⇧Dduplicate selection,⌘Ldelete line,⌘/toggle comment,⌘↑/⌘↓scroll without moving cursor - Compile progress popup — stays on top, real progress, wrap toggle, recompile button
- Welcome page — recent files
- Updater — checks GitHub for new Qawno or pawncc releases (daily background, or on demand)
⌘, opens Settings. Sidebar layout, every page is its own card. Settings persist via QSettings (the macOS preferences plist).
- General — toggles + language picker (28 locales scaffolded, English shipped today)
- Appearance — System / Light / Dark tiles + per-editor syntax scheme
- Fonts — editor font, output font, app-wide UI font, per-language syntax palette
- Compiler — pawncc path + flags (
%P= project root,%p= .pwn dir,%i/%o/%qtokens) - Folder Access — list granted folders + deep-link to System Settings → Privacy
- Privacy — telemetry toggle + reset anonymous ID
- Updates — current vs latest Pawn compiler + Qawno; auto-download + reopen-files toggles
On first launch Qawno asks whether to share anonymous usage data. Nothing identifying you, your projects, or your code is ever sent — only feature counts, OS version, and a random per-install UUID you can reset from Settings → Privacy. Your choice is remembered; flip it any time in Settings.
- Aggregate dashboard: https://mac-andreas.github.io/#dashboard
- Client implementation:
src/TelemetryClient.cpp
No database key ships in the app. Events POST to a Supabase Edge Function that holds the credential server-side and inserts on the client's behalf. The events table is locked to anonymous access, so the only write path is that function — even a decompiled binary exposes nothing but the public function URL.
brew install qt cmake
./build-macos.sh # default: build + bundle Qt + ad-hoc sign
./build-macos.sh --no-deploy # skip Qt framework bundling (faster dev)
./build-macos.sh --clean # wipe build/ first
open Qawno.appDeeper notes on the macOS port: README-macOS.md.
src/ C++ sources (Qt6 + Qt5 compatible)
assets/images/ Icons, flags, app .icns
i18n/ Qt translations (28 locales, .ts files)
scripts/ pawn-cc.sh wrapper deployed into project qawno/ folders
build-macos.sh Build + macdeployqt + ad-hoc codesign in one shot
ToDo.md Living list of follow-ups
Telemetry backend (Supabase schema + RLS) and the GitHub Pages dashboard live in a separate repo: Mac-Andreas/mac-andreas.github.io.
GPLv3 — same as upstream Qawno.
- Upstream Qawno: openmultiplayer/qawno
- Pawn compiler: openmultiplayer/compiler
- Wine builds (macOS): Gcenx/macOS_Wine_builds
- macOS port + UI rebuild: @Mac-Andreas