Skip to main content

CS2 Discord Rich Presence

CI License: MIT Latest release

Counter-Strike 2 oynarken Discord profilinde sadece "Counter-Strike 2 oynuyor" yazısı yerine; hangi haritada, hangi modda (Rekabetçi/Premier, Yoldaş (Wingman), Basit (Casual), Deathmatch, Silah Yarışı, Yıkım, Ko-op, Antrenman, Özel Oyun, vb.) ve kaçıncı roundda olduğunu gösteren bir araç.

Round kavramı olmayan modlarda (Deathmatch, Silah Yarışı gibi) round yerine o anki frag/ölüm sayın gösterilir.

Nasıl çalışır?

CS2, Valve'ın Game State Integration (GSI) özelliği sayesinde oyun içi durumu (harita, mod, round, skor, bomba durumu...) belirli aralıklarla bilgisayarındaki bir HTTP adresine gönderebilir. Bu script:

  1. http://127.0.0.1:3000 adresinde küçük bir yerel sunucu açar.
  2. CS2'den gelen bu veriyi okur.
  3. pypresence kütüphanesi ile Discord masaüstü uygulamasına iletir.

Kurulum

1) Discord Uygulaması oluştur

Discord, üçüncü parti scriptlerin "Rich Presence" gösterebilmesi için bir uygulama (Client ID) oluşturmanı ister:

  1. https://discord.com/developers/applications adresine git.
  2. New Application ile yeni bir uygulama oluştur, adını istersen Counter-Strike 2 koy.
  3. Sol menüden OAuth2 / General sayfasında görünen Application ID (Client ID) değerini kopyala.

Harita görsellerini de bu adımda yükle. Aynı sayfada sol menüden Rich Presence → Art Assets kısmına git ve assets/maps/ klasöründeki her PNG'yi, dosya adıyla aynı anahtar (key) ismiyle yükle (uzantısız, hepsi küçük harf):

cs2_logo, de_dust2, de_mirage, de_inferno, de_nuke, de_overpass,
de_vertigo, de_ancient, de_anubis, de_train, de_cache, cs_office,
cs_italy, cs_agency, de_shortdust, de_lake, de_stmarc, de_grail, aim_map

Elinde gerçek ekran görüntüsü olmayan haritalar için (Wingman haritaları, Agency, Aim Map gibi) bu adımı atlayabilirsin — script otomatik olarak cs2_logo'ya düşer. Yeni bir görsel eklediğinde/değiştirdiğinde de aynı anahtar ismiyle üzerine yükleyip script'i yeniden başlatman yeterli.

2) GSI config dosyasını CS2'ye tanıt

gamestate_integration_discordrpc.cfg dosyasını CS2'nin şu klasörüne kopyala:

<Steam kurulum dizini>\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\

(CS2, CS:GO'nun devamı olduğu için klasör adı hâlâ csgodur.)

Dosyayı kopyaladıktan sonra CS2'yi (açıksa) yeniden başlat.

3) Bağımlılıkları kur

pip install -r requirements.txt

4) Client ID'ni kaydet

İki seçeneğin var:

a) Tek seferlik / test için — ortam değişkeni:

# Windows (PowerShell)
$env:DISCORD_CLIENT_ID="BURAYA_CLIENT_ID"; python cs2_discord_rpc.py

# Linux / macOS
DISCORD_CLIENT_ID=BURAYA_CLIENT_ID python cs2_discord_rpc.py

b) Kalıcı / otomatik başlatma için — config.json (önerilen):

cp config.example.json config.json     # Windows: copy config.example.json config.json

config.json dosyasını aç, discord_client_id alanına Client ID'ni yaz. Bu dosya .gitignore'da olduğu için repoya gitmez. Script her çalıştığında otomatik olarak bu dosyayı okur — ortam değişkeni ayarlamana gerek kalmaz, bu yüzden Windows başlangıcına eklemek için idealdir (bkz. aşağıdaki bölüm).

5) Script'i çalıştır

Discord masaüstü uygulamasının açık olduğundan emin ol, sonra:

python cs2_discord_rpc.py

CS2'ye girip bir maça başladığında Discord profilinde harita, mod ve round bilgisi otomatik olarak görünmeye başlar. Ana menüdeyken veya oyundan çıktığında durum otomatik olarak güncellenir/temizlenir.

Windows'ta otomatik başlatma (PC/oturum açılışında)

Her seferinde elle çalıştırmak istemiyorsan, Windows'ta oturum açtığın anda script'i arka planda (konsol penceresi açmadan) otomatik başlatan bir Görev Zamanlayıcı (Task Scheduler) görevi kurabilirsin:

  1. Önce yukarıdaki 4b) config.json adımını tamamla (Client ID kaydedilmeden script çalışmaz).
  2. PowerShell'i (bu repo klasörünün içindeyken) aç. Görev Zamanlayıcı bazı Windows kurulumlarında normal kullanıcıyla yeni görev oluşturmaya izin vermeyebilir — "Erişim engellendi" hatası alırsan PowerShell'i yönetici olarak (sağ tık → "Run as Administrator") yeniden aç:
    powershell -ExecutionPolicy Bypass -File windows_autostart\install_autostart.ps1
    
  3. Bu kadar. Bir sonraki oturum açışında script otomatik başlayacak. Hemen şimdi denemek istersen:
    Start-ScheduledTask -TaskName "CS2DiscordRPC"
    

Kaldırmak istersen:

powershell -ExecutionPolicy Bypass -File windows_autostart\uninstall_autostart.ps1

Not: Görev "oturum açılışında" (AtLogOn) tetiklenir, "bilgisayar açılışında" değil — çünkü script'in konuşacağı Discord masaüstü uygulaması da zaten senin oturumun içinde çalışır, sistem açılışında değil. Discord henüz tam açılmamış olsa bile script birkaç saniyede bir otomatik yeniden dener, o yüzden sıralamayla ilgili bir şey yapmana gerek yok. Görev, script çökerse de kendini birkaç kez yeniden başlatacak şekilde ayarlıdır.

Harita görselleri

Discord Rich Presence'ta iki görsel alanı var: büyük ana görsel ve onun sağ alt köşesinde duran küçük rozet. Bu script'te:

  • Büyük görsel o an içinde bulunduğun haritayı gösterir (assets/maps/<harita_kodu>.png).
  • Küçük rozet her zaman assets/maps/cs2_logo.png — sabit CS2 logosu.
  • Ana menüdeyken (henüz bir maçta değilken) sadece büyük CS2 logosu görünür, küçük rozet olmaz.

assets/maps/ klasöründe her ana harita için (Dust II, Mirage, Inferno, Nuke, Overpass, Vertigo, Ancient, Anubis, Train, Cache, Office, Italy, Agency, Wingman haritaları, Aim Map) küçük birer PNG rozet + genel cs2_logo.png bulunuyor. Şu an bunlar bu repo için üretilmiş basit ikonlardır (bkz. aşağıdaki "Gerçek ekran görüntüsü" bölümü — kendi görsellerinle kolayca değiştirebilirsin).

  • Script, GSI'dan gelen harita adını (ör. de_dust2) doğrudan Discord Developer Portal'a yüklediğin Art Asset anahtarı olarak gönderiyor — bkz. yukarıdaki "1) Discord Uygulaması oluştur" adımı. Dış URL kullanılmıyor; bu, klasik masaüstü Rich Presence ile en garantili çalışan yöntem.
  • Elimizde ikonu olmayan bir harita gelirse (yeni çıkan bir harita ya da community server haritası) büyük görsel de otomatik olarak cs2_logo'ya düşer.
  • Yeni bir harita eklemek / ikonları yeniden üretmek istersen: assets/generate_map_icons.py script'ini (Pillow gerektirir) düzenleyip tekrar çalıştırabilirsin.

Gerçek ekran görüntüsü kullanmak istersen

Valve'ın oyun içi ekran görüntülerini bu repoya hazır olarak koymuyoruz (telifli içerik). Ama kendi aldığın ekran görüntülerini kullanmak tamamen senin tercihin ve çok kolay:

  1. CS2'de bir maça gir, F12 (Steam ekran görüntüsü) ile görüntü al.
  2. Görüntüyü assets/screenshots_raw/<harita_kodu>.jpg olarak kaydet (ör. assets/screenshots_raw/de_mirage.jpg; geçerli harita kodları yukarıdaki listede).
  3. python assets/import_screenshots.py çalıştır.

Script, görüntüyü otomatik olarak 1024x576 (16:9) boyutuna ortalayarak kırpıp assets/maps/<harita_kodu>.png olarak kaydeder; cs2_discord_rpc.py tarafında hiçbir değişikliğe gerek kalmadan bu yeni görsel kullanılmaya başlar.

Desteklenen modlar

GSI mod anahtarı Discord'da görünen ad Round gösterimi
competitive Rekabetçi Round X/24
scrimcomp5v5 Premier Round X/24
scrimcomp2v2 Yoldaş (Wingman) Round X/16
casual Basit Round X
deathmatch Deathmatch Frag / ölüm
gungameprogressive Silah Yarışı (Arms Race) Frag / ölüm
gungametrbomb Yıkım (Demolition) Round X
skirmish Uçan Keşif Nişancısı Round X
cooperative Ko-op Görev Frag / ölüm
training Antrenman Frag / ölüm
custom Özel Oyun Round X

Listede olmayan yeni bir mod eklenirse script "Bilinmeyen Mod" olarak gösterir; cs2_discord_rpc.py içindeki MODE_INFO sözlüğüne yeni satır ekleyerek kolayca genişletilebilir.

Not: competitive/scrimcomp5v5 için 24, scrimcomp2v2 için 16 round varsayılan matchmaking ayarlarına (MR12 / MR8) göre verilmiştir. Özel sunucularda (community server) bu limit farklıysa sadece geçerli round numarası gösterilir.

Metadata

Release files for cs2-discord-rpc 1.0.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 cs2-discord-rpc 1.0.0
File Size Uploaded
cs2_discord_rpc-1.0.0.tar.gz 12.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cs2-discord-rpc 1.0.0
File Interpreter ABI Platform
cs2_discord_rpc-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.8 kB

Release files / cs2_discord_rpc-1.0.0.tar.gz

Download URL cs2_discord_rpc-1.0.0.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
3eb61f4c715070b21cea152107b94b22f1989cbcfce562c882592e77767b49b4
BLAKE2b-256 checksum
How to use checksums
90f944e986c1b5cb4bc913c3d0e3743abb2696d1223a317d6dcf6325dee0f9e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / cs2_discord_rpc-1.0.0-py3-none-any.whl

Download URL cs2_discord_rpc-1.0.0-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a4ce6b18cbd7f833f6e5b92a0c82c1c83207aab9ae07846d5ba38225084c8868
BLAKE2b-256 checksum
How to use checksums
1db26a8ac1446b7416cd5f15f25813fc77aa6f8735c202965339ef6fc9f85e30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

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