Skip to main content

pymodcs — PyMod SDK / SDK для PyMod

Write Python plugins for Counter-Strike 1.6 / ReHLDS / ReGameDLL. The distribution is named pymodcs, the Python import is pymod.

python -m pip install pymodcs
from pymod import Plugin, Player, command, Color, Position

class Welcome(Plugin):
    config = {"text": "Hello, {name}!"}          # configs/welcome.json
    player_settings = {"greetings": True}         # saved per player automatically

    @command("hello")
    def hello(self, player: Player):
        if self.player_settings[player].greetings:
            player.message(self.config.text, name=player.name, color=Color.Green())
            player.hud("Welcome!", position=Position.Top, color=Color.HEX("#6EE7C2"))
        self.store["greetings"] = self.store.get("greetings", 0) + 1   # persisted on disk

0.20: plain config values, player_settings, self.store, @shared methods with self.plugin("name"), menus from a dict and @every("setting"). The 0.19 API is unchanged.

from pymod import * is supported too. PyCharm and other type-aware editors can read bundled .pyi files and py.typed; no IDE extension is required. Annotate callback arguments with Player, DamageEvent, etc. for reliable completion in ordinary editors. No PyMod IDE plugin is needed.

Русский

Пакет для разработки плагинов: API текущего ядра, подсказки параметров, типы игроков и 155 хуков, документация методов на русском и английском. Выберите в IDE тот интерпретатор, куда установили pymodcs.

Встроенная документация доступна через Ctrl+Q в PyCharm, help() и команду:

python -m pymod docs Player.hud --lang ru
python -m pymod docs hook_events.DamageEvent --lang en
python -m pymod new Welcome --output welcome.py --lang ru

Цвета, координаты, описания конфигов и ресурсов можно использовать в обычном Python. Игровые действия (чат, игроки, оружие, SQLite плагина, хуки) требуют сервер с нативным ядром PyMod. Вне сервера такие вызовы явно завершаются ServerRequiredError, а не имитируют успешное выполнение.

Скопируйте созданный .py в cstrike/addons/pymod/plugins/ своего сервера. Пакет SDK не содержит сервер CS, DLL/SO, личные плагины, базы и ключи. Не копируйте SDK поверх серверного ядра и не устанавливайте его через серверную команду pip install: ядро уже предоставляет модуль pymod. На сервере используется API 0.20.0 и встроенный Python 3.14 x86; на рабочем компьютере SDK поддерживает Python 3.11+.

Для import pymod используйте отдельное виртуальное окружение: пакет с именем pymod на PyPI принадлежит другому проекту и не должен стоять рядом с pymodcs.

English

This is a development SDK, not a game server or an engine emulator. It includes the current Python API, type information, all 155 hook classes, RU/EN docstrings, and public teaching examples. Use the same interpreter in your editor that you used for installation.

Colors, vectors, configuration descriptors and resource declarations work in regular Python. Engine operations and plugin-owned storage require the native PyMod server runtime. They raise ServerRequiredError outside the server.

from pymod import Color, Position
print(Color.RGB(70, 220, 235).hex)  # #46DCEB
print(Position.percent(x=50, y=10))
help(Color.HEX)  # Russian and English documentation

Create a plugin with python -m pymod new Welcome --output welcome.py --lang en, then copy it to cstrike/addons/pymod/plugins/ on a PyMod server. Match the SDK API version to your server. Do not install this SDK into the server's managed dependencies or overwrite its Python package. Use an isolated virtual environment without the unrelated PyPI distribution named pymod.

Full method signatures remain available in source and stubs. Docstrings show both languages; the command-line reference can select --lang ru or --lang en. Public guides and examples are included as pymod/docs and pymod/examples.

The source is GPL-2.0-or-later with the bundled HL Engine linking exception.

Metadata

Release files for pymodcs 0.22.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymodcs 0.22.0
File Size Uploaded
pymodcs-0.22.0.tar.gz 401.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymodcs 0.22.0
File Interpreter ABI Platform
pymodcs-0.22.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / pymodcs-0.22.0.tar.gz

Download URL pymodcs-0.22.0.tar.gz
Size 401.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b5e71af56aacada16ef919bc85c826c1a22dfd9f5e44b3cfdd80d2c05d4814fe
BLAKE2b-256 checksum
How to use checksums
0ecda9b6d1d62b7fa4e7cf1691cde658f0bafbee05362f080a6c9f8d14168868
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.8

Release files / pymodcs-0.22.0-py3-none-any.whl

Download URL pymodcs-0.22.0-py3-none-any.whl
Size 635.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a94bb34ae02bcb6c4c23d839767d22739b0757ea5f6298077232a1dccd9239f
BLAKE2b-256 checksum
How to use checksums
c528905694eb500c6d782a357df3efa92823064a4a0f6861f1e6c247b1c35bdc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.22.0 This release

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page