Giriş

Metin2 Oy Doğrulama Sistemi

Metin2 özel sunucunuz için kolay, ücretsiz ve güvenilir oy ödülleri

Oy Doğrulama Sistemi nedir?

Oy Doğrulama Sistemimiz, Metin2 özel sunucuları için özel olarak tasarlanmış modern ve yenilikçi bir çözümdür. Oyunculara favori sunucularına oy verirken oyun içi avantajlar kazandıran etkileşimli bir yol sunar.

Sistem hem uygulaması kolay hem de son derece güvenilirdir; bu nedenle oyuncu etkileşimini ve sunucu görünürlüğünü artırmak isteyen sunucu sahipleri için mükemmel bir seçimdir.

Amacımız herkes için kazançlı bir deneyim sunmaktır: oyuncular sadakatleri için oyun içi ödüller alır, sunucular ise daha fazla görünürlük ve etkileşim elde eder.

Vote4Buff

Vote4Buff Sistemi (Önerilir)

Özel oyun içi arayüze sahip eksiksiz oy ve ödül sistemi

Vote4Buff nedir?

Vote4Buff, premium, her şey dahil oy çözümümüzdür. Şık bir oyun içi arayüz, WebSocket iletişimi ve tam sunucu entegrasyonu sunar. Oyuncular oy verebilir, birden fazla bonus havuzu arasından seçim yapabilir ve oyundan çıkmadan anında ödül alabilir!

Sistem mimarisi

Vote4Buff sistemi üç ana bileşenden oluşur:

İstemci tarafı
  • Python arayüz sistemi (uivote4buff.py)
  • Özel arayüz varlıkları ve grafikler
  • C++ WebSocket entegrasyonu
  • 11 dil desteği
Sunucu tarafı
  • C++ API entegrasyonu
  • Bonus havuzu yönetimi
  • Eşya ödül sistemi
  • Gerçek zamanlı etki takibi
Platformumuz
  • Oy doğrulama API’si
  • Hesap tabanlı takip
  • Anti-hile koruması
  • Gerçek zamanlı oy durumu

Öne çıkan özellikler

Birden fazla bonus havuzu: Oyuncuların seçebileceği en fazla 3 yapılandırılabilir havuz
Eşya ödülleri: Başarılı oy sonrasında otomatik eşya teslimatı
Gerçek zamanlı arayüz: Oyun içinde geri sayımlar ve etki takibi
WebSocket iletişimi: Sayfa yenilemeden anında doğrulama
Çok dilli: 11 dil desteği (EN, DE, ES, PL, TR, RO, IT, PT, HU, GR, CZ)
Özelleştirilebilir ödüller: Bonusları, süreyi ve maliyeti dilediğiniz gibi ayarlayın

Şunlar için idealdir: Profesyonel, kullanıma hazır bir çözüm arayan, haftalarca özel geliştirme yapmak istemeyen sunucu sahipleri. Bonus havuzlarını yapılandırın, dosyaları entegre edin ve hazırsınız!

Download

Vote4Buff dosyalarını indir

İstemci ve sunucu entegrasyonu için gereken tüm dosyaları edinin

Gereksinimler

Vote4Buff, martysama0134 v5.8 kaynak tabanı için tasarlanmıştır. Farklı bir kaynak kullanıyorsanız ek uyarlamalar gerekebilir.

Paket içeriği

İstemci dosyaları
  • Python arayüz dosyaları (uivote4buff.py)
  • Oyun istemcisi dosya değişiklikleri
  • Arayüz grafik ve varlıkları
  • 11 dil için yerelleştirme dosyaları
  • C++ WebSocket uygulaması
  • Arayüz betikleri

libcurl.dll içerir (32-bit sürüm dahil, 64-bit sürümü mevcuttur)

Sunucu dosyaları
  • char.h yapılandırması
  • Etki sistemi değişiklikleri
  • Sohbet komutu entegrasyonu
  • API iletişim katmanı
  • Bonus yönetim sistemi

Gerekli tüm C++ kaynak güncellemeleri pakete dahil edilmiştir

Giriş gerekli

Vote4Buff dosyalarını indirmek için lütfen giriş yapın.

Configuration

Yapılandırma rehberi

Bonus havuzlarını, eşya ödüllerini ve API ayarlarını yapılandırın

Vote4Buff yapılandırmasının tamamı sunucunuzdaki char.h dosyasında yapılır. Aşağıda her ayar için detaylı örnekler bulabilirsiniz.

Adım 1: API kimlik bilgileri

Önce sunucu ID’nizi ve API tokenınızı yapılandırın (sunucu panelinizde bulabilirsiniz):

C++
// API SETTINGS from Metin2 Server List
static const std::string s_VOTE4BUFF_SERVER_ID = "YOUR_SERVER_ID"; // From dashboard
static const std::string s_VOTE4BUFF_API_TOKEN = "YOUR_API_TOKEN"; // From dashboard

static const int s_VOTE4BUFF_DURATION = 86400; // seconds (1 day) DO NOT MODIFY THIS !!!

Adım 2: Bonus havuzlarını ayarlayın

En fazla 3 bonus havuzu tanımlayabilirsiniz. Oyuncular bu havuzlardan dilediklerini seçebilir; her havuzda birden fazla bonus bulunabilir:

C++
// Bonuses must be set with its APPLY_ declaration.
// You can add as many bonuses as you want per slot.
static std::vector<std::vector<std::pair<int, int>>> s_VOTE4BUFF_BONUSES =
{
    { // Bonus Pool 1: PvP Focused
        { APPLY_ATTBONUS_HUMAN, 5 },      // +5% vs Players
        { APPLY_DEF_GRADE_BONUS, 50 },    // +50 Defense
    },
    { // Bonus Pool 2: PvE Focused
        { APPLY_ATTBONUS_MONSTER, 5 },    // +5% vs Monsters
        { APPLY_ATTBONUS_INSECT, 5 },     // +5% vs Insects
        { APPLY_HP_REGEN, 10 },           // +10 HP Regen
    },
    { // Bonus Pool 3: Farm Focused
        { APPLY_ITEM_DROP_BONUS, 10 },    // +10% Drop Rate
        { APPLY_EXP_DOUBLE_BONUS, 10 },   // +10% EXP
        { APPLY_GOLD_FIND, 15 },          // +15% Gold
    },
};
Kullanılabilir APPLY tipleri

Sık kullanılan bonus tipleri: APPLY_ATTBONUS_HUMAN, APPLY_ATTBONUS_MONSTER, APPLY_DEF_GRADE_BONUS, APPLY_ITEM_DROP_BONUS, APPLY_EXP_DOUBLE_BONUS, APPLY_GOLD_FIND, APPLY_MAX_HP, APPLY_MAX_SP, APPLY_HP_REGEN, APPLY_SP_REGEN, APPLY_CRITICAL_PCT, APPLY_PENETRATE_PCT ve daha fazlası!

Adım 3: Eşya ödülleri (opsiyonel)

Oyuncuların oy sonrası otomatik olarak alacağı eşyaları yapılandırın:

C++
static std::vector<std::pair<DWORD, int>> s_VOTE4BUFF_ITEM_REWARDS =
{
    // Leave empty if you don't want to give any items as rewards
    // Format: { vnum, count }
    { 27007, 5 },    // 5x Red Potion (XXL)
    { 50084, 1 },    // 1x Gold Bar
    { 71027, 10 },   // 10x Dragon Coin
};

Adım 4: Bonus değiştirme ayarları

Oyuncular bonus havuzunu değiştirmek istediğinde bekleme süresini ve maliyeti kontrol edin:

C++
// Cooldown when changing bonus (does not apply when choosing right after voting)
static const int s_VOTE4BUFF_CHANGE_BONUS_COOLDOWN = 300; // seconds (5 minutes)

// Price when changing bonus (does not apply when choosing right after voting)
static const int s_VOTE4BUFF_CHANGE_BONUS_PRICE = 15000; // yang (0 = free)

Not: Oy verdikten sonra oyuncular bir bonus havuzunu ücretsiz seçebilir. Bekleme süresi ve ücret yalnızca oy vermeden havuz değiştirmek istediklerinde uygulanır.

Installation

Kurulum rehberi

Vote4Buff entegrasyonu için adım adım talimatlar

Başlamadan önce

İstemci ve sunucu dosyalarınızın yedeğini alın! __ öneki bulunan dosyalar birleştirme gerektirir, diğerleri doğrudan kopyalanabilir.

Sunucu kurulumu

1
char.h dosyasını yapılandırın

İndirdiğiniz paketteki Source/Server/__char.h dosyasını açın.

  • class CBuffOnAttributes; satırını bulun ve üstüne yapılandırma kodunu ekleyin (Konfigürasyon bölümüne bakın)
  • s_VOTE4BUFF_SERVER_ID ve s_VOTE4BUFF_API_TOKEN değerlerini ayarlayın
  • Bonus havuzlarını ve eşya ödüllerini yapılandırın
  • bool DragonSoul_RefineWindow_CanRefine(); satırını bulun ve gerekli public metod bildirimlerini ekleyin
2
Sunucu tarafı değişiklikleri uygulayın

Paketteki sunucu dosyalarını entegrasyon için kullanın:

  • __affect.h - Mevcut affect.h dosyanızı sağlanan değişikliklerle güncelleyin
  • __chat_affect.cpp - Vote4Buff etki yönetimini ekleyin
  • __cmd_general.cpp - Komut işleme güncellemelerini ekleyin
  • __desc_client.cpp - İstemci tanımlayıcı değişikliklerini uygulayın

Not: __ önekli dosyalar mevcut dosyalarınıza birleştirilmelidir.

3
Oyun çekirdeğini yeniden derleyin

Sunucuyu yeni değişikliklerle derleyin.

make clean && make

İstemci kurulumu

4
Python arayüz dosyaları

Client/root/ klasöründen:

  • uivote4buff.py dosyasını istemci root/ klasörüne kopyalayın
  • Aşağıdaki dosyaları talimatlara göre güncelleyin:
    • __constInfo.py
    • __game.py
    • __interfaceModule.py
    • __uiAffectShower.py
5
Arayüz grafikleri ve betikleri
  • Client/ui/game/vote4buff/ klasörünü pack’inizdeki ui/game/ klasörüne kopyalayın
  • Client/uiscript/vote4buffwindow.py dosyasını uiscript klasörüne kopyalayın
6
Dil dosyaları

Client/locale/ klasöründen desteklenen diller için metinleri ekleyin:

  • __locale_game.txt içeriğini locale_game.txt dosyanıza ekleyin
  • __locale_interface.txt içeriğini locale_interface.txt dosyanıza ekleyin

Desteklenen diller: EN, DE, ES, PL, TR, RO, IT, PT, HU, GR, CZ

7
C++ istemci değişiklikleri

Source/Client/UserInterface/ klasöründen:

  • M2WebSocket.cpp ve M2WebSocket.h dosyalarını UserInterface klasörüne kopyalayın
  • __ önekli dosyalardaki değişiklikleri kendi dosyalarınıza uygulayın
  • libcurl.dll dosyasının istemci klasöründe olduğundan emin olun (32-bit sürüm dahil, 64-bit sürümü gerekirse indirin)
8
Arayüz butonu ekleyin (opsiyonel)

Vote4Buff varsayılan bir buton eklemez. Arayüzünüzden ToggleVote4Buff() fonksiyonunu çağırmanız gerekir. Örneğin:

  • SystemDialog penceresine bir buton ekleyin
  • Butonu bir kısayol tuşuna atayın
  • QuickSlot menüsüne ekleyin

Sürüklenebilir bir simge butonu oluşturan Vote4BuffButton sınıfını da kullanabilirsiniz

9
İstemciyi yeniden derleyin

Yeni değişikliklerle istemci yürütülebilir dosyasını yeniden derleyin.

10
Test

Entegrasyonu test edin:

  1. Sunucunuza giriş yapın
  2. Vote4Buff penceresini açın
  3. Platformumuzda oy verin: https://metin2-toplist.net/vote/en/YOUR_SERVER_ID-server-name/YOUR_ACCOUNT_ID
  4. Oyuna dönün ve oy doğrulamasını kontrol edin
  5. Bir bonus havuzu seçin ve etkilerin uygulandığını doğrulayın
  6. Eşya ödüllerinin teslim edildiğini kontrol edin
Kurulum tamamlandı!

Artık oyuncularınız oy verebilir ve otomatik olarak ödül alabilir. Vote4Buff arayüzü, oy verebilecekleri zamanı gösterir, bonus havuzu seçmelerine izin verir ve aktif etkiler için geri sayım sunar.

Benefits

Sunucu yöneticileri için avantajlar

Ücretsiz tanıtım

Yeni oyuncuların çoğu sunucuları toplistlerden keşfeder; bu nedenle bu güçlü bir pazarlama aracıdır

Kolay yapılandırma

Detaylı dokümantasyon ve adım adım rehberler kurulumu çok kolaylaştırır

Kod yazmaya gerek yok

Basit REST API entegrasyon süreci

Optimize performans

Oy doğrulamasının istemci tarafında yapılması sunucu yükünü minimumda tutar

Yüksek güvenilirlik

Yerleşik sahtekarlık önleme ile kanıtlanmış sistem

Oy doğrulama

Ödül vermeden önce oyuncuların gerçekten oy verdiğinden emin olun

Oyuncular için avantajlar

Oy veren oyuncular oyun içi ödüller alır
Kullanımı kolay oy arayüzü
Sonraki oy için net geri sayım
Ödül teslimatı güvence altında
Process

Sistem nasıl çalışır?

Sistem oyuncuların kolayca anlayabileceği temiz ve sezgisel bir akış sunar. Oy doğrulaması API’miz üzerinden gerçekleştiği için gerçek oyları ödüllendirdiğinizden emin olabilirsiniz!

1. Oyuncu oy butonuna tıklar — Web sitenizden veya oyun içi arayüzden
2. Oy sayfasına yönlendirme — Oyuncu toplistteki sunucu oy sayfanıza yönlendirilir
3. Oyuncu oy verir — Oyuncu CAPTCHA’yı tamamlar ve oyunu gönderir
4. API doğrulaması — Sunucunuz oy doğrulaması için API’mize istek gönderir
5. Ödül ver — Sunucunuz oyuncuya oyun içi ödül verir
Quick Start

Hızlı başlangıç rehberi

İhtiyaçlarınıza en uygun entegrasyon yöntemini seçin:

ÖNERİLEN
Vote4Buff Sistemi

Özel arayüz, WebSocket iletişimi ve otomatik ödül sistemi içeren eksiksiz çözüm.

  • Tam oyun içi arayüz
  • Birden fazla bonus havuzu
  • Otomatik eşya ödülleri
  • Gerçek zamanlı geri sayım
  • 11 dil desteği
Vote4Buff ile başlayın
Özel API entegrasyonu

Maksimum esneklik için REST API’mizi kullanarak kendi çözümünüzü oluşturun.

  • Tam özelleştirme
  • Kendi arayüzünüz
  • Özel ödül mantığı
  • IP veya hesap tabanlı takip
Temel API’yi kullanın

Genel kurulum adımları

1
Sunucunuzu kaydedin

https://metin2-toplist.net/servers/create adresinden hesap oluşturup sunucunuzu toplistemize ekleyin

2
API bilgilerinizi alın

Sunucu ID’niz ve API tokenınız sunucu panelinizde bulunur. Yetkilendirme için gereklidir.

3
Entegrasyon yöntemini seçin

Hazır çözüm için Vote4Buff’u indirin veya API ile özel entegrasyon geliştirin.

4
Test edin ve yayınlayın

Oy sistemini kapsamlı şekilde test edin, ardından canlı sunucunuzda yayınlayın.

Reference

API uç noktası (özel uygulamalar için)

Not

Vote4Buff sistemini (önerilir) kullanıyorsanız, bu API zaten entegredir! Bu bölüm, kendi uygulamasını geliştirmek isteyen sunucu sahipleri içindir.

GET https://metin2-toplist.net/api/check-vote

Gerekli parametreler

Parametre Tip Gerekli Açıklama
api_token string Evet Sunucunuza ait benzersiz API token
ip string Opsiyonel* Oyuncunun IP adresi (IPv4 veya IPv6)
account_id string Opsiyonel* Oyuncunun hesap ID’si/kullanıcı adı (daha doğru takip için)
*ip veya account_id (ya da her ikisi) belirtilmelidir

En iyi sonuç için <code>account_id</code> parametresini kullanarak oyuncuları daha kesin şekilde takip edin. <code>ip</code> yöntemi, oyuncular VPN kullandığında veya farklı konumlardan bağlandığında daha az güvenilir olabilir.

Oy URL formatı

Oyuncuları şu URL formatıyla oy sayfasına yönlendirin:

https://metin2-toplist.net/vote.{lang}/{server_id}-{server_slug}/{account_id}

Örnekler:
https://metin2-toplist.net/vote.en/123-awesome-server/PlayerName
https://metin2-toplist.net/vote.de/123-awesome-server/PlayerName
https://metin2-toplist.net/vote.tr/123-awesome-server/PlayerName

Desteklenen diller: en, de, es, pl, tr, ro, it, pt, hu, gr, cz

Yanıt formatı

API aşağıdaki yapıda bir JSON yanıtı döndürür:

Başarılı yanıt
{
    "success": true,
    "voted": true,
    "last_vote": "2025-11-11T14:30:00Z",
    "next_vote_in": 0,
    "message": "Vote verified successfully"
}
Oy bulunamadı yanıtı
{
    "success": true,
    "voted": false,
    "message": "No recent vote found"
}
Hata yanıtı
{
    "success": false,
    "message": "Invalid API token"
}

Yanıt alanları

Alan Tip Açıklama
success boolean API isteğinin başarıyla işlenip işlenmediğini belirtir
voted boolean Geçerli bir oy bulunup bulunmadığını gösterir (yalnızca success=true ise)
last_vote string Son oy tarihinin ISO 8601 zaman damgası (yalnızca voted=true ise)
next_vote_in integer Bir sonraki oya kadar kalan saniye sayısı (yalnızca voted=true ise)
message string Sonucu açıklayan anlaşılır mesaj
Examples

Kod örnekleri

PHP örneği

PHP cURL uygulaması
<?php
function checkVote($apiToken, $playerIP) {
    $url = "https://metin2-toplist.net/api/check-vote";
    $params = http_build_query([
        'api_token' => $apiToken,
        'ip' => $playerIP
    ]);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode !== 200) {
        return ['success' => false, 'message' => 'API request failed'];
    }

    return json_decode($response, true);
}

$result = checkVote('YOUR_API_TOKEN', $_SERVER['REMOTE_ADDR']);
if ($result['success'] && $result['voted']) {
    echo "Vote verified! Rewarding player...";
}
?>

Python örneği

Python Requests uygulaması
import requests

def check_vote(api_token, player_ip):
    url = "https://metin2-toplist.net/api/check-vote"
    params = {'api_token': api_token, 'ip': player_ip}
    try:
        response = requests.get(url, params=params, timeout=10)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        return {'success': False, 'message': f'API request failed: {str(e)}'}

result = check_vote('YOUR_API_TOKEN', '123.456.789.012')
if result.get('success') and result.get('voted'):
    print("Vote verified! Rewarding player...")

C++ örneği (oyun sunucuları için)

C++ cURL uygulaması
#include <curl/curl.h>
#include <string>
#include <sstream>

static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) {
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

bool CheckVote(const std::string& apiToken, const std::string& playerIP) {
    CURL* curl = curl_easy_init();
    if (!curl) return false;

    std::string readBuffer;
    std::ostringstream url;
    url << "https://metin2-toplist.net/api/check-vote"
        << "?api_token=" << apiToken
        << "&ip=" << playerIP;

    curl_easy_setopt(curl, CURLOPT_URL, url.str().c_str());
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
    curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);

    CURLcode res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);

    return (res == CURLE_OK) && (readBuffer.find("\"voted\":true") != std::string::npos);
}

void OnPlayerRequestReward(const std::string& playerName, const std::string& playerIP) {
    if (CheckVote("YOUR_API_TOKEN", playerIP)) {
        GiveItemToPlayer(playerName, REWARD_ITEM_VNUM, REWARD_COUNT);
        SendNotice("Vote verified! You received your reward!");
    } else {
        SendNotice("No valid vote found. Please vote first!");
    }
}

JavaScript/Node.js örneği

Node.js Fetch uygulaması
async function checkVote(apiToken, playerIP) {
    const url = new URL('https://metin2-toplist.net/api/check-vote');
    url.searchParams.append('api_token', apiToken);
    url.searchParams.append('ip', playerIP);

    try {
        const response = await fetch(url, {
            method: 'GET',
            headers: { 'Accept': 'application/json' }
        });
        if (!response.ok) throw new Error(`HTTP ${response.status}`);
        return await response.json();
    } catch (error) {
        return { success: false, message: error.message };
    }
}

checkVote('YOUR_API_TOKEN', '123.456.789.012').then(result => {
    if (result.success && result.voted) {
        console.log('Vote verified! Rewarding player...');
    }
});
Guide

Entegrasyon rehberi

Güvenlik için en iyi uygulamalar

API tokenınızı güvenli şekilde saklayın ve asla istemci tarafı kodda göstermeyin. API çağrılarını daima sunucu backend’inizden yapın.

Adım 1: Oy butonu/komutu oluşturun

Web sitenize veya oyununuza https://metin2-toplist.net/servers/YOUR-SERVER-SLUG adresine yönlendiren bir oy butonu ya da komut ekleyin.

Adım 2: Oy doğrulamasını uygulayın

Oyuncu ödül talep ettiğinde (site üzerinden veya oyun içi komutla) şu adımları izleyin:

  1. Oyuncunun IP adresini alın
  2. check-vote uç noktasına API isteği gönderin
  3. JSON yanıtını işleyin
  4. Eğer voted true ise ödülü verin
  5. Çifte ödül vermemek için ödül verdiğinizi kayıt altına alın

Adım 3: Ödülleri yönetin

Ödül sürecini yönetmek için en iyi uygulamalar:

  • Verilen ödülleri takip edin: Hangi oyların ödüllendirildiğini veritabanında saklayın
  • Oy bekleme süresi: Oylar arasındaki 24 saatlik süreye uyun
  • Hata yönetimi: API hatalarını düzgün yönetin ve oyuncuları bilgilendirin
  • Loglama: Analiz ve hata ayıklama için tüm oy doğrulamalarını kaydedin

Örnek iş akışı

Oyuncu: oyun içinde /vote komutunu yazar
↓
Sunucu: oy sayfasını tarayıcıda açar
↓
Oyuncu: toplistte oy verir
↓
Oyuncu: /claim komutunu yazar veya "Claim Reward" butonuna tıklar
↓
Sunucu: oyuncunun IP adresiyle API çağrısı yapar
↓
API: voted=true yanıtı döndürür
↓
Sunucu: oyuncuya ödülü verir
Help

Sorun giderme

"Invalid API token" hatası

Çözüm: Sunucu panelinizden aldığınız doğru API tokenını kullandığınızdan emin olun. Fazladan boşluk veya karakter olmadığını kontrol edin.

Oy verildi ama doğrulanmıyor

Olası nedenler:

  • Oyuncu VPN/proxy kullanıyor (IP adresleri eşleşmiyor)
  • Oy henüz işlenmedi (30 saniye bekleyip tekrar deneyin)
  • API’ye yanlış IP adresi gönderiliyor
  • Oyuncu farklı bir sunucuya oy verdi
API zaman aşımı veya bağlantı hatası

Çözüm: Sunucunuzun HTTPS istekleri gönderebildiğinden emin olun. Güvenlik duvarı ayarlarını kontrol edin. Üstel backoff ile yeniden deneme mantığı uygulayın.

Oyuncular birden fazla kez ödül alıyor

Çözüm: Ödüllendirilen oyları yerel olarak takip edin. Oy zaman damgasını saklayın ve her oy için ödülü sadece bir kez verin.

IPv6 adresleri çalışmıyor

Çözüm: Tam IPv6 adresini gönderdiğinizden emin olun. API’miz hem IPv4 hem de IPv6 destekler.

Server Listing API

Public Server Listing API (v1)

List, submit, and claim Metin2 servers programmatically. Perfect for other toplists, server management tools, or custom integrations.

Base URL

https://metin2-toplist.net/api/v1

Rate Limits

EndpointMethodLimitAuth
/api/v1/serversGET60/min—
/api/v1/servers/{slug}GET60/min—
/api/v1/serversPOST3/hour—
/api/v1/servers/claimPOST10/hour✅

List Servers

Retrieve a paginated list of active, launched servers. Supports filtering by category and language.

ParameterTypeDefaultDescription
categorystring—Filter by category: oldschool, newschool, fun, pvp, pvm, pve
languagestring—Filter by language code: EN, DE, TR, etc.
sortstringvotesSort order: votes, newest, name
pageinteger1Page number
per_pageinteger25Results per page (max 50)
Example Request
curl -H "Accept: application/json" \
  "https://metin2-toplist.net/api/v1/servers?category=pvp&language=EN&per_page=10"

Submit a New Server

Submit a new server listing via the API. The server enters a moderation queue and must be approved before it appears publicly.

Moderation Queue

All API-submitted servers start as inactive and require manual approval. This prevents spam and ensures listing quality.

FieldTypeRequiredDescription
namestring✅Server name (max 255 chars, must be unique)
descriptionstring✅Server description (min 20, max 5000 chars)
website_urlstring—Server website URL
discord_urlstring—Discord invite URL
languagesarray✅Language codes, e.g. ["EN", "DE"] (min 1, max 5)
categorystring—One of: oldschool, newschool, fun, pvp, pvm, pve
launch_datestring—Future launch date (YYYY-MM-DD)
owner_emailstring—Contact email (optional, not shown publicly)
Submit Example
curl -X POST "https://metin2-toplist.net/api/v1/servers" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "Dragon Kingdom",
    "description": "A classic PvP experience with custom dungeons and weekly events.",
    "languages": ["EN", "DE"],
    "category": "pvp",
    "website_url": "https://dragon-kingdom.com",
    "discord_url": "https://discord.gg/example"
  }'
Example Response
{
  "success": true,
  "message": "Server submitted successfully!",
  "data": {
    "id": 42,
    "slug": "dragon-kingdom",
    "status": "pending_review"
  },
  "claim_token": "a1b2c3d4...80 characters",
  "note": "Save this token! Use it to claim your listing."
}

Claim Token System

When you submit a server, you receive a unique 80-character claim token. This token lets you link the listing to your account later.

The claim token is shown only once in the API response. Save it immediately — we store only the hash.

1
Submit

POST your server to /api/v1/servers and save the claim_token from the response.

2
Register

Create an account and paste the token in the optional "Claim Token" field.

3
Manage

Your server is now linked to your account with full dashboard access.

Error Codes

CodeMeaning
200Success
201Server created (pending review)
401Authentication required (claim endpoint)
404Server not found / invalid claim token
409Server already claimed
410Claim token expired
422Validation error / spam rejected
429Rate limit exceeded

Integration Examples

PHP
$response = file_get_contents('https://metin2-toplist.net/api/v1/servers?per_page=10');
$data = json_decode($response, true);

foreach ($data['data'] as $server) {
    echo $server['name'] . ' — ' . $server['vote_count'] . ' votes' . PHP_EOL;
}
JavaScript
const res = await fetch('https://metin2-toplist.net/api/v1/servers?category=pvp');
const { data, meta } = await res.json();

data.forEach(server => {
  console.log(`${server.name}: ${server.vote_count} votes`);
});
Python
import requests

resp = requests.get('https://metin2-toplist.net/api/v1/servers', params={
    'language': 'DE',
    'sort': 'newest',
    'per_page': 20
})
servers = resp.json()['data']

for s in servers:
    print(f"{s['name']} — {s['vote_count']} votes")
Help

Destek ve kaynaklar

E-posta desteği

E-posta üzerinden destek alın

Destekle iletişime geç
Discord topluluğu

Topluluğumuza katılın

Discord’a katıl
Uzman ipucu

Canlıya almadan önce entegrasyonu bir test hesabıyla kapsamlı şekilde deneyin. Tüm uç durumları ve hata senaryolarını yönettiğinizden emin olun.

Scroll to top