• 🎉 Hey there! I've just launched my brand new server voting platform — Metin2 P Servers 🚀

We are starting to work on Multi Game APK and UNITY

MT2

Developer
Member
Feb
Threads
34
95
72
18
HubMoney
355

AD: Mt2009 - Mobile & PC - 30 January 2026 CHECK THE PRESENTATION!

our target game is to make a game similar to
ROK -AVAKING-CLANSOFCLANS-RISEOFKINGDOOM
.
logic Although the games above are;
What I am trying to do is a little bit more

1) stage:

In this project;
Docker Desktop = A virtual desktop interface program that runs ubuntu etc. software on your computer.

WSL program = Ubuntu etc. server server part is loaded to the computer via windows terminal

GO DL; one of the software languages of the future

Currently; We are in the process of installing wsl, activating the server and ports via docker desktop

Server operation.
trials continue.

2) stage:
Game and apk production with UNITY program
Mobile and windows platform outputs

Both on desktop and as APK on the phone
We will enable you to play and develop your own server.

As Metin2hub family;
We want to increase the interaction between players and developers of mobile apk and sub-games

Interested friends can be found by commenting under the topic.

Soon download topics and project server-client- files and ''unity'' engine coding of client content will be given.

(-__-) ../Source and Fix.h

Our sample topic in google search; Multi-civilization strategy hand tour of the awakening of the nations full set of source code + development documents


(-__-) ../Source and Fix.h


Let's all have fun together and play nice games, good luck with the permission of God.




install ; developer ; geralex88;


I am posting an updated server for successful client connection to the server. Also for the convenience of debugging and development, a description of the docker file for assembling a docker image for running the server, for example in Windows using Docker Desktop

I am using a remote MySQL outside of the docker image.

Change client:
- Activate login ui;
- Success connect server from build apk;

Change server:
- Disable verify token;


How to assemble the client:
- update the IP to your own instead of 45.8.99.86
- add/update the list of servers on loginview.prefabs


To make the server monitoring dashboard work, you need to correct the server IP address:

Path: work/server/monitor_server/html/js/main.js
Change your serverIP: var monitorServerIp = "192.168.2.73"


When you first log in, you need to select a server, enter the phrase game1, login and password.
For subsequent logins, you only need to enter your login and password.

It’s complicated and difficult, but there is something to work on for those who want to launch their own private server =)

Client:
Server:

I'm using Unity3D 2019.4.28f1

The server startup time in my container takes 20-25 minutes.
Until the server loads, you will receive an error with code 403
The last logs of a successful launch of the player server are completed:

2024-12-15 18:04:00 [./server/game_server/logic/service/MapObjectRefreshMgr.lua:114] [Info] MapObjectRefreshMgr complete(40/40)
2024-12-15 18:04:00 [./server/game_server/logic/service/MapObjectRefreshMgr.lua:107] [Info] all(40) refresh service over
2024-12-15 18:04:01 [./common/service/guild/GuildNameProxy.lua:125] [Info] GuildNameProxy Init start
2024-12-15 18:04:01 [./common/service/guild/GuildNameProxy.lua:130] [Info] GuildNameProxy Init over



It is recommended to use the English language in the game, when using other languages, there may be character creation errors:
回包错误码:500 : System exception

According to the server logs, you can determine which region is used:
Example, Russian:

2024-12-15 18:09:26 [./server/game_server/Agent.lua:153] [Debug] recv iggid(tester) rid(nil) req:Role_CreateRole-{
["name"] = "Правитель 2717549",
["country"] = 501,
["version"] = "1.8.20",
["languageId"] = 30,
}

and check if this region is in the list of acceptable ones:

work/common/config/gen/Configs.data

AllianceLanguageSet and LanguageSet and Config (Add initialAcquiescentName_)



At the beginning of the game there may be problems with passing the training, to fix the error, it is necessary to correct the s_Guide.xlsm file on the client side, records with ID 107 to 109, correct the settings in accordance with the server, correcting such fields as:
listIndex, findWay, guideNodeType, guideArrowhead, guideArrowheadAr, showUi, guideTipsPos, guideTipsPosAr


''

[107] = { ID = 107, stage = 1, step = 7, trigger = "", uiId = 2000, uiType = 1, path = "pl_MapAndCity/btn_map", listIndex = 0, findWay = 1, guideNode = "", guideNodeType = 0, guideEffectPos = "", guideArrowhead = 7, guideArrowheadAr = 5, guideDialog = 0, l_guideTipsID = 585002, showUi = { 14 }, guideTipsPos = 4, guideTipsPosAr = 3, languageSet = { 40, 41, 10, 22, 1, 37 }, soundClient = { "Voice_Guide_dialog1016", "Voice_Guide_dialog1016", "Voice_Guide_dialog1016", "Voice_Guide_dialog1016", "Voice_Guide_dialog1016", "Voice_Guide_dialog1016_tr" }, sound = "Voice_Guide_dialog1016", civilization = { }, heroSound = { }, guideArena = 0 },

[109] = { ID = 109, stage = 1, step = 9, trigger = "", uiId = 2000, uiType = 1, path = "pl_MapAndCity/btn_city", listIndex = 0, findWay = 1, guideNode = "", guideNodeType = 0, guideEffectPos = "", guideArrowhead = 7, guideArrowheadAr = 5, guideDialog = 0, l_guideTipsID = 585003, showUi = { 14 }, guideTipsPos = 4, guideTipsPosAr = 3, languageSet = { 40, 41, 10, 22, 1, 37 }, soundClient = { "Voice_Guide_dialog017", "Voice_Guide_dialog017", "Voice_Guide_dialog017", "Voice_Guide_dialog017", "Voice_Guide_dialog017", "Voice_Guide_dialog017_tr" }, sound = "Voice_Guide_dialog017", civilization = { }, heroSound = { }, guideArena = 0 },

''



JINXX : youtuber server setting



 
Last edited:

MT2

Developer
Member
Feb
Threads
34
95
72
18
HubMoney
355
new video ;





Subject content and analysis were made.



1) server kurulum
------ ubuntu -centos server kurulum --------
sudo apt update

- lsb_release -a

- sudo apt autoclean
- sudo apt autoremove

- sudo apt install build-essential
- sudo apt install gcc gcc-c++ cmake autoconf readline-devel
- sudo apt install gcc cmake autoconf
Y/N : Y

- sudo apt uptade

clear

------------mariadb kurulumu ve paket yüklemesi ----------
wsl server -docker da
MYSQL KURULUMU

- sudo apt install mariadb-server
Y/N : Y

**//MARİA DB YÜKLENDİĞİNDE ; DOCKER DESKTOP SERVER
RESTART YAPINIZ . **//

wsl Terminal üzerinde ''docker server için''
mysql okutması

- sudo mysql_secure_installation
*/ pasword : 12345678 */

Y/N : Y
new pasword : 12345678

remove anonymous users : Y/N : Y
Disallaw Root login : Y/N: N

test database ; Y/N : N
Reload Privilege tables Y/N : Y

- sudo mariadb


------mariadb accont ekleme ve yetkilendirme ----
komut mariadb ; **/ işleme devam edelim..

'' GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'Kbsq123!' WITH GRANT OPTION; ''

GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY '12345678' WITH GRANT OPTION;
FLUSH PRIVILEGES;

- exit

----------Mariadb kontrol edilmesi ------
- sudo systemctl status mariadb

- clear

----SERVER LUA SETUP--------
Oyun server dosyası
*/ Note defteri ; İçeriği klasör de açabilirsiniz /*

work/etc/start_chat.sh
connet ıp : 127.0.0.1
connet real ıp : 127.0.0.1
değiştirin .


work/etc/start_game.sh
connet ıp : 127.0.0.1
connet real ıp : 127.0.0.1
değiştirin .


server/login_server/logic-lualib/AccountLogic.lua
AccountLogic.lua.png resimdeki gibi düzenltiniz

fuction
--TODO add Support for access_token
--
--
--
LOG-INFO

not : resime göre kodu revize edelim.

//////////////////////////////////

server/login_server/logic-lualib/Logind.lua
--TODO: add Support for invalid tokens
satır no :38 true
--TODO: add Support for invalid tokens
satır no :41 true

ınvalidtoken = true yazıldı.

satır no 37:
--TODO: add Support for invalid tokens
Note; değişken Token = true oldu ifade eklendi
bunun açıklaması.

satır: 61 local ret
62 : satır clear
new satır 62 : --assert(ret and address, "target gameNode not exits or boot:".. gameNode)

/////////////////////////////////////
server/html/js/main.js

satır 1: ''127.0.0.1''

/////////////////////////////////
Ana klasör üzerinde ; /Makefile

skynet ;
# kapanış verildi.

resim skynet makefile eklendi ,
satır : 45
satır : 56 arası
'' # '' kodlama ya ekliyelim.

/////////////////
ana klasör devam edelim
sk. dosyasını revize edicez

echo 1 : açıklama düzeltmesi yapıldı.

mysql verilerinde ;
pasword değiştirildi : 12345678

mysql klasörde'' .sql'' yerini belirtiniz
video da :
<./sql/lg.sql
<./sql/log.sql

klsaör nerede ise '' docker server klasörünüz ''
ona göre düzeltiniz '' sql yerini ''

satır 16 : #Create Database

satır 29 : #restore database
echo 2 : açıklama düzeltmesi yapıldı.

not : satır 17 de ; şifreden sonra boşluk veriniz
sizin ki doğru ise ; birşey yapmanıza gerek yok

------------------------------
SERVER ÇALIŞTIRMA ##snap ##
- ls
klasör yeri '' snap ''
- ls
klasör içeriği '' server klasörü '' snap
- ls
klasör içeriği '' server klasörü '' pcre-8.45 snap
note; pcre_8.45 lib kütüphanesi '' ubuntu server için
aşağıda onun yüklüyor

- cd pcre-8.45/

**//
'' ls ile klasör yolu bulundu , bulunan noktaya
yer belirtme yapıldı , #pcre-8.45
**//

- cd pcre-8.45# cd
komut : cd

- clear
-------------------------------
SERVER ÇALIŞTIRMA ## snap to data ##
- ls
xxoyunserverklasöradı pcre-8.45 snap

- cd xxoyunserverklasöradı/

- xxoyunserverklasöradı# ls

**//note: oyun server klasör açılmış
ls = klasörleri listeler
ls = LS
klasöradı# ise klasör içinde demektir.
**//

data

- xxoyunserverklasöradı# cd data/

xxoyunserverklasöradı/data# ls
**//
note: şuan Data klasör içindekileri gösteriyor
**//

sk sql work

3 klasör listede gözüktü.
------
- xxoyunserverklasöradı/data# sudo chmod +x sk
-------
**// note -info
+* / +x
**//

- xxoyunserverklasöradı/data# ls

sk sql work

:: sk için yetki geldi ::

- xxoyunserverklasöradı/data# ./sk

note: Okutma yapıyor

- xxoyunserverklasöradı/data# cd work/
- xxoyunserverklasöradı/data/work# ls
3rd
- xxoyunserverklasöradı/data/work# cd..

- xxoyunserverklasöradı/data# cd

ana sayfa komudunda :
- ls
- xxoyunserverklasöradı pcre-8.45 snap

- rm -r xxoyunserverklasöradı/
- ls

- pcre-8.45 snap

--------snap 1 ubuntu kütüphane ekleniyor-----
- cd pcre-8.45/
- pcre-8.45# ls
...
...

- pcre-8.45# cd ..
clear
--------snap 2 devamı ------

- ls
pcre-8.45 snap
- ls
xxoyunserverklasöradı.zip
**// note
oyun server dosyanızı winrar '' .zip '' yapınız
//**
xxoyunserverklasöradı.zip pcre-8.45 snap
----------devamı ubuntu server içinde server dosyasını
docker üzerine ''sunucu dosyalarını servera okutma '' -------------

- unzip xxoyunserverklasöradı.zip
if (yukardaki yada aşağıdaki sizce çalışıcak)

- apt install unzip

**// sistem ve servisler yeniden otomatik başladı
sizde başlamazsa ; docker desktop üzerinde açma ve kapama
yapalım..
**//

-clear
----------.zip server dosyasını sunucuya okutma --------
- ls
xxoyunserverklasöradı.zip pcre-8.45 snap

- apt install unzip

-clear

**// note
dosyalar çıktıktan sonra server restart oluyor
sizde olmazsa docker desktop üzerinden aç ve kapa yapınız.
//**

-----------------------------------
- ls
xxoyunserverklasöradı.zip pcre-8.45 snap
- unzip xxoyunserverklasöradı.zip

**// note
unzip çıkarılıyor
//**


- ls
xxoyunserverklasöradı / xxoyunserverklasöradı.zip/ pcre-8.45/ snap

- clear

------------Oyun server çalıştırma kısmı ----
- ls
xxoyunserverklasöradı / xxoyunserverklasöradı.zip/ pcre-8.45/ snap

- d xxoyunserverklasöradı/

- xxoyunserverklasöradı# s

data www

- xxoyunserverklasöradı#cd data/
- xxoyunserverklasöradı/data# ls

sk sql work


- xxoyunserverklasöradı/data# sudo chmod +x sk
- xxoyunserverklasöradı/data# ls
sk sql work

- xxoyunserverklasöradı/data# ./sk
error : no problem
sql data okutması geldi.
mevcut tablo uyarısı var sadece.

- xxoyunserverklasöradı/data# cd work/

- xxoyunserverklasöradı/data/work# ls
3rd co common etc logs .....vb

- xxoyunserverklasöradı/data/work#cd etc/
- xxoyunserverklasöradı/data/work/etc# ls
/*/ note: sistemler listelendi.

- xxoyunserverklasöradı/data/work/etc# sudo chmod +x *.sh
- xxoyunserverklasöradı/data/work/etc# ls
/*/ note : sistemler çalışıyor .

**// note : sudo chmod +x *.sh bu komud olan yerler
server çalıştırıyor .

- xxoyunserverklasöradı/data/work/etc# cd ..
- xxoyunserverklasöradı/data/work# ls
3rd co common etc logs ......vb

- xxoyunserverklasöradı/data/work# sudo chmod +x start
- xxoyunserverklasöradı/data/work# ls
3rd co common etc logs ......vb server -start-tool çalıştırma

- xxoyunserverklasöradı/data/work# ./start -h

help bilgileri

- xxoyunserverklasöradı/data/work# ./start -d
**// ./start -d
oyun mysql Data çalıştırma komudu *///

---- -d data açıldı -m monitor açıldı----

- xxoyunserverklasöradı/data/work# ./start -m
**// mönitor portlar açıldı //**

- xxoyunserverklasöradı/data/work# tmux new -s monitor

- xxoyunserverklasöradı/data/work# ./start -m

- xxoyunserverklasöradı/data/work# tmux new -s monitor

- xxoyunserverklasöradı/data/work# tmux list-session
monitor 1 wındows cread


- xxoyunserverklasöradı/data/work# ./start -d

**// öncelikli kod MONİTOR AKTİF EDELİM
DAHA SONRA MYSQL DATA AKTİF EDİLSİN //**

- xxoyunserverklasöradı/data/work# ./start -r

- clear
------------- -l login aktif edildi ---------

- xxoyunserverklasöradı/data/work# ./start -d
mysql data open

- xxoyunserverklasöradı/data/work# tmux new -s db
- xxoyunserverklasöradı/data/work# ./start -d
mysql data open succes

- xxoyunserverklasöradı/data/work# ./start -l
''-l login aktif edildi.''

- xxoyunserverklasöradı/data/work# tmux new -s login
- xxoyunserverklasöradı/data/work# ./start -l

--------------- -g game aktif edildi..-----------

- xxoyunserverklasöradı/data/work# ./start -g

- xxoyunserverklasöradı/data/work# tmux new -s game
- xxoyunserverklasöradı/data/work# ./start -g
game aktif oldu

-------- battle aktif edildi-------------
- xxoyunserverklasöradı/data/work# tmux new -s battle
- xxoyunserverklasöradı/data/work# ./start -b

**//
sistem sorgusu için ;
- xxoyunserverklasöradı/data/work# tmux new -s battle
denedi.
//**

-------------- -c center deneme 1 aktif edildi------
- xxoyunserverklasöradı/data/work# ./start -c
hata olabilir altda beklesin
başarısız yine error

-------------- -p push server---------
- xxoyunserverklasöradı/data/work# ./start -p
- xxoyunserverklasöradı/data/work# tmux new -s push
push komut başarılı
- xxoyunserverklasöradı/data/work# ./start -p

---------- -t chat aktif edildi----------
- xxoyunserverklasöradı/data/work# ./start -t
- xxoyunserverklasöradı/data/work# tmux new -s chat
chat komut başarılı

- xxoyunserverklasöradı/data/work# ./start -t


----------- -c center deneme 2 -------
- xxoyunserverklasöradı/data/work# ./start -c
başarısız yine error

------------- -q log aktif edildi.
- xxoyunserverklasöradı/data/work# ./start -q

----------- -c center deneme 3 -------
- xxoyunserverklasöradı/data/work# ./start -c
başarısız yine error
--------------------------------------------
- xxoyunserverklasöradı/data/work# ls
3rd co common etc log vs......

- xxoyunserverklasöradı/data/work# ./start -n

- xxoyunserverklasöradı/data/work# tmux list-session
..
..
..
..
...
-----docker server open ---- finish

***-----unıty program açıyoruz---****

unıty klasör seç yapalım.
xxoyunclientklasöradı girin
içindekileri unityde hepsini seçin .

proje unity de açıldı..

/assent/externalDependencyManager/Editor
2 dosya seçti ve unity ekranının içine koydu.

gereksiz DLL sildi
pkg import '' içine eklemiş''

/assent/Spripts/Hotfix/MVC/View_Mediator/chat
-UI_Win_ChatMediator
kodlama içine bakalım .. '' düzeltme olabilir.

-------------------------------

Vstudio üzerinden
- ClientApp.cs
ctrl+f
'' changes I made '' düzenliyoruz.
- GraphicRaycaster.cs
ctrl+f
'' changes I made '' düzenliyoruz.
*/ Note: changes I made = IP 127.0.0.1 and LOCAL COMPETER IP
*/ note: tüm proje aratınız. ''changes I made '' ve düzenleyin
SAVE = KAYDET

- IGGSDKConstant.cs
satır no 381 : ''1234 edit
''1234 delete

----FINISH --

UNİTY PROGRAM , SEARCH
logınview

unity üzerinden sağ ekranda
İP ekliyoruz'' görüntü üstüne 127.0.0.1 eklenicek

unıty buıld alındığında sistem ,uyarı veriyor

error note: IGGGameConfig ; kontrol edilcek
error note 2: CanvasRenderer dosyası ve unıty sürüm hatası



note; notes are now in Turkish
unfortunately, time is important when analyzing videos.