Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Realms & Glinkd Ports

Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
I am sharing some Server side knowledge I previously discussed with my friends.
I wouldn't be able to figure it out without their precious help.

----Start.sh for Forsaken World Server 260 loading all Realms.
Code:
#!/bin/sh

FW_PATH=/server-fw

if [ ! -d $FW_PATH/logs ]; then
mkdir $FW_PATH/logs
fi
cat /dev/null > $FW_PATH/logs/syslog

echo "===============================================================" | tee -a $FW_PATH/logs/syslog
echo "=             STARTING Forsaken World Server                  =" | tee -a $FW_PATH/logs/syslog
echo "=             SERVER LOADING WILL TAKE SOME TIME              =" | tee -a $FW_PATH/logs/syslog
echo "===============================================================" | tee -a $FW_PATH/logs/syslog
date | tee -a $FW_PATH/logs/syslog

echo "=== LOGSERVICE ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/logservice; ./logservice logservice.conf > $FW_PATH/logs/logservice.log 2>> $FW_PATH/logs/syslog &
sleep 3
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Unique Name Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== UNIQUENAMED ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/uniquenamed; ./uniquenamed gamesys.conf > $FW_PATH/logs/uniquenamed.log 2>> $FW_PATH/logs/syslog &
sleep 3
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "=== AUTH ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/authd/; ./authd.sh >> $FW_PATH/logs/authd.log 2>&1 &
sleep 1
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog

echo "Starting Game Database Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== GAMEDBD ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamedbd; ./gamedbd gamesys.conf > $FW_PATH/logs/gamedbd.log 2>> $FW_PATH/logs/syslog &
sleep 5
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Backup Database Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== BACKDBD ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/backdbd; ./backdbd gamesys.conf > $FW_PATH/logs/backdbd.log 2>> $FW_PATH/logs/syslog &
sleep 5
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Game Anti-Cheat Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== GACD ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gacd; ./gacd gamesys.conf > $FW_PATH/logs/gacd.log 2>> $FW_PATH/logs/syslog &
sleep 5
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Game Query Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== GQUERYD ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gqueryd; ./gqueryd gamesys.conf > $FW_PATH/logs/gqueryd.log 2>> $FW_PATH/logs/syslog &
sleep 5
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Game Delivery Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== GDELIVERYD ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gdeliveryd; ./gdeliveryd gamesys.conf > $FW_PATH/logs/gdeliveryd.log 2>> $FW_PATH/logs/syslog &
sleep 5
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Game Link Daemon... " | tee -a $FW_PATH/logs/syslog
echo "=== GLINKD ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/glinkd; ./glinkd gamesys.conf 1 > $FW_PATH/logs/glink.log 2>> $FW_PATH/logs/syslog &
#cd $FW_PATH/glinkd; ./glinkd gamesys.conf 2 > $FW_PATH/logs/glink2.log 2>> $FW_PATH/logs/syslog &
#cd $FW_PATH/glinkd; ./glinkd gamesys.conf 3 > $FW_PATH/logs/glink3.log 2>> $FW_PATH/logs/syslog &
#cd $FW_PATH/glinkd; ./glinkd gamesys.conf 4 > $FW_PATH/logs/glink4.log 2>> $FW_PATH/logs/syslog &
sleep 5
echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
echo "" | tee -a $FW_PATH/logs/syslog


echo "Starting Realms... " | tee -a $FW_PATH/logs/syslog
echo "=== Realm #1 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias.conf > $FW_PATH/logs/game.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #2 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias2.conf > $FW_PATH/logs/game2.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #3 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias3.conf > $FW_PATH/logs/game3.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #4 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias4.conf > $FW_PATH/logs/game4.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #5 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias5.conf > $FW_PATH/logs/game5.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #6 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias6.conf > $FW_PATH/logs/game6.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #7 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias7.conf > $FW_PATH/logs/game7.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #8 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias8.conf > $FW_PATH/logs/game8.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #9 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias9.conf > $FW_PATH/logs/game9.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #10 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias10.conf > $FW_PATH/logs/game10.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #11 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias11.conf > $FW_PATH/logs/game11.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #12 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias12.conf > $FW_PATH/logs/game12.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #13 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias13.conf > $FW_PATH/logs/game13.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #14 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias14.conf > $FW_PATH/logs/game14.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Realm #15 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias15.conf > $FW_PATH/logs/game15.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== KBattle===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_kbattle.conf.conf > $FW_PATH/logs/game_KBattle.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Instance 1 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_ins1.conf > $FW_PATH/logs/game_Instance1.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Instance 2 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_ins2.conf > $FW_PATH/logs/game_Instance2.log 2>> $FW_PATH/logs/syslog &
sleep 2


echo "=== Instance 3 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_ins3.conf > $FW_PATH/logs/game_Instance3.log 2>> $FW_PATH/logs/syslog &
sleep 2


echo "=== Solo 1 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_solo1.conf> $FW_PATH/logs/game_Solo1.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Solo 2 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_solo2.conf > $FW_PATH/logs/game_Solo2.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== Solo 3 ===" | tee -a $FW_PATH/logs/syslog
cd $FW_PATH/gamed; ./gs gs.conf gmserver.conf gsalias_solo3.conf > $FW_PATH/logs/game_Solo3.log 2>> $FW_PATH/logs/syslog &
sleep 2

echo "=== DONE! ===" | tee -a $FW_PATH/logs/syslog
systemctl restart tomcat

echo "===============================================================" | tee -a $FW_PATH/logs/syslog
echo "=                      ALL REALMS LOADED!                     =" | tee -a $FW_PATH/logs/syslog
echo "=                 SERVERS ARE UP AND RUNNING!                 =" | tee -a $FW_PATH/logs/syslog
echo "===============================================================" | tee -a $FW_PATH/logs/syslog

----Change Realm name?
We can edit the realm names in /server-fw/gamed in configuration files
Example= Open gsalias2.conf with Notepad++
Code:
[Identify]
ServerID = 2
Name = Realm 2

[SpawnController]
disable = 210 211 212 213 214 217 222 223 224 225 226 227 228 542 543 544 545 546 547 548 549 551 909 20016 20017 20018 20019 20020 20021 20024 20028 20032 20036 20040 20044 20025 20029 20033 20037 20041 20045 20026 20030 20034 20038 20042 20046


----Use multiple Glinkd Ports:
Each of the different glinkd uses a different port for the client connection.
Perhaps having more than one running has the same effect as running more realms for less lag?
Glinkd port may have a limit related to the number of players that can login at a time.
Having more ports may facilitate client connection.

Code:
cd $FW_PATH/glinkd; ./glinkd gamesys.conf 1 > $FW_PATH/logs/glink.log 2>> $FW_PATH/logs/syslog &
cd $FW_PATH/glinkd; ./glinkd gamesys.conf 2 > $FW_PATH/logs/glink2.log 2>> $FW_PATH/logs/syslog &
cd $FW_PATH/glinkd; ./glinkd gamesys.conf 3 > $FW_PATH/logs/glink3.log 2>> $FW_PATH/logs/syslog &
cd $FW_PATH/glinkd; ./glinkd gamesys.conf 4 > $FW_PATH/logs/glink4.log 2>> $FW_PATH/logs/syslog &

----Conclusion:
The following realms are used for Bloodharvest(260) and consume around 2 gb RAM per Realm:
-15 Realms (Realm 1 ,Realm 2, ... ,Realm 15) Example= gsalias.conf
-1 KBattle Realm for Guild Rift
-3 Solo Realms for Solo instances such as Hell Road,Lionheart Camps Example= gsalias_solo1.conf
-3 Instance Realms are used for Dungeons Example= gsalias_ins1.conf

->I'd say that as you are playing alone in v260,you will likely need Realm 2 for Crucible Warden AND Realm 5 for PvP Bosses.

->Retail has always been using 10 Realms.In reality,we don't need to use 15 Realms for Bloodharvest.

->Retail is running 4 more realms 12/13/14/15 for Vengeance Maps.

->We can adjust Maps on elements to use one of the 10 Realms through the Configuration structure MAP_TO_SERVER_LINE_CONFIG in FW2 versions.

 
Back
Top