Centos安装幻兽帕鲁服务与配置

  1. 搭建
  2. 配置
  3. 管理员命令
  4. Rest API

 这两天玩幻兽帕鲁有点上头,自己搭了个幻兽帕鲁的服务器。这个贴子记录一下搭建过程和配置。

搭建

官方技术文档:https://tech.palworldgame.com/
硬件配置:4C16G(官方推荐) 我用的是4C8G

  1. 安装依赖

yum install glibc libstdc++ glibc.i686 libstdc++.i686 -y

  1. 新建并切换steam用户
groupadd game
adduser steam -p steam -g game
su steam
cd /home/steam
  1. 下载并解压 steamCMD 压缩包
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvf steamcmd_linux.tar.gz
  1. 安装 steamCMD
./steamcmd.sh

上述命令执行完成后,命令行的提示符会变成以 Steam> 开头

  1. 下载 PalServer
login anonymous
app_update 2394010
app_update 1007
quit

这里login的时候,可能会连接失败,等待 retry 直到它成功就行。

  1. 启动幻兽帕鲁
cd /home/steam/steam/steamapps/common/PalServer
nohup ./PalServer.sh &
  1. 服务器打开8211端口
     一般云服务会有网络策略组,要在云服务平台上设置开放 UDP:8211 端口

配置

 按上述步骤启动帕鲁服务器,生效的是默认配置,这个配置的路径是 /home/steam/steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini
 如果想要自定义一些配置,那么需要按一下步骤进行:

cd /home/steam/steam/steamapps/common/PalServer/
cp ./DefaultPalWorldSettings.ini ./Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

  然后修改PalWorldSettings.ini这个配置文件,修改完成后重启帕鲁服务器就可以了。

具体的帕鲁配置如下:

Difficulty=None,            #难度设置。好像改了也没用。。。
DayTimeSpeedRate=1.000000,          #白天速率,值越大,白天过得越快,这个影响野生首领帕鲁的刷新(游戏里每天刷一次)
NightTimeSpeedRate=1.000000,            #晚上速率,值越大,晚上过得越快
ExpRate=1.000000,           # 角色和帕鲁经验倍率,值越大,经验越多,升级越快
PalCaptureRate=1.000000,            #帕鲁捕捉倍率,值越大,越容易捕捉
PalSpawnNumRate=1.000000,           #帕鲁刷新倍率,值越大,帕鲁刷新出来的数量越多,比如设置为2,则每次首领会刷出来2个。影响服务器负载。如果想要增加帕鲁刷新,又不想一次打两个首领,可以设置为1.5
PalDamageRateAttack=1.000000,           #帕鲁的攻击增强比率
PalDamageRateDefense=1.000000,          #帕鲁的防御增强比率
PlayerDamageRateAttack=1.000000,            #玩家的攻击增强比率
PlayerDamageRateDefense=1.000000,           #玩家的防御增强比率
PlayerStomachDecreaceRate=1.000000,         #玩家的饥饿度降低速率。值越低,饿得越慢
PlayerStaminaDecreaceRate=1.000000,         #角色耐力降低速率。值越低,体力槽降得越慢。推荐0.5。
PlayerAutoHPRegeneRate=1.000000,            #角色自动回血速度。值越高,回血越快
PlayerAutoHpRegeneRateInSleep=1.000000,         #角色睡觉回血速度。值越高,回血越快。
PalStomachDecreaceRate=1.000000,            
PalStaminaDecreaceRate=1.000000,
PalAutoHPRegeneRate=1.000000,
PalAutoHpRegeneRateInSleep=1.000000,
BuildObjectDamageRate=1.000000,         #对建筑伤害倍率,数值越低打到建筑的伤害越低。建议使用默认值1
BuildObjectDeteriorationDamageRate=1.000000,            #建筑耐久自动减少倍率。数值越低建筑耐久自动减得越慢
CollectionDropRate=1.000000,            #资源采集倍率。值越高,资源越多
CollectionObjectHpRate=1.000000,            #资源血量。理论上值越高,一块资源要打的次数越多
CollectionObjectRespawnSpeedRate=1.000000,          #资源重生速度。值越高,资源重生越快。
EnemyDropItemRate=1.000000,         #敌人掉落物品倍率。值越高,打败敌人掉的东西越多。
DeathPenalty=All,           #死亡惩罚。有四个选项:None(死亡不掉东西)、Item(只掉包内物品,不掉装备和帕鲁)、ItemAndEquipment(掉保内物品和装备,不掉帕鲁)、All(全没)。推荐是Item或者ItemAndEquipment。
bEnablePlayerToPlayerDamage=False,          #是否开启对玩家伤害
bEnableFriendlyFire=False,          #是否开启友伤
bEnableInvaderEnemy=True,           #启用入侵者。定期会有强盗入侵营地。
bActiveUNKO=False,             #没找到到哪里要使用便便的。推荐关闭。
bEnableAimAssistPad=True,           #是否开启手柄辅助瞄准
bEnableAimAssistKeyboard=False,         #是否开启键鼠辅助瞄准
DropItemMaxNum=3000,            #一次性最多能放下多少东西
DropItemMaxNum_UNKO=100,
BaseCampMaxNum=128,             #最多据点数
BaseCampWorkerMaxNum=15,            #据点内最多帕鲁数量
DropItemAliveMaxHours=1.000000,         #掉落物品存在时长。调太大了,服务器内存会炸,建议1以内。
bAutoResetGuildNoOnlinePlayers=False,       #是否自动重置无在线玩家的工会
AutoResetGuildTimeNoOnlinePlayers=72.000000,        #多长时间重置无在线玩家的工会
GuildPlayerMaxNum=20,           #一个公会最多多少玩家
BaseCampMaxNumInGuild=4,            #每个工会的最大营地数。默认是4,最大为10。值越大,服务器负载越大
PalEggDefaultHatchingTime=72.000000,        #孵蛋时长,数值越小孵蛋越快。调成0感觉有点破坏游戏体验,没有孵蛋的快乐。调成0.5的情况下,一颗巨大龙蛋差不多要孵化6分钟。
WorkSpeedRate=1.000000,         #工作速度,数值越大做东西越快。建议40级之前2~3即可,不要过快。40级之后有些东西做得实在是太慢,推荐调成5。
AutoSaveSpan=30.000000,
bIsMultiplay=False,         #PVP
bIsPvP=False,           #PVP
bCanPickupOtherGuildDeathPenaltyDrop=False,         #是否可以捡起其他工会成员的死亡掉落物品,按需开启
bEnableNonLoginPenalty=True,            #是否允许离线惩罚。没注意到这点影响了什么,可能是还没实装?
bEnableFastTravel=True,         #是否允许快速旅行,默认开启,按需关闭。
bIsStartLocationSelectByMap=True,           #开始地点是否可以从地图选取
bExistPlayerAfterLogout=False,          #是否玩家下线后依然存在
bEnableDefenseOtherGuildPlayer=False,           #是否允许防御其他工会玩家
bInvisibleOtherGuildBaseCampAreaFX=False,
CoopPlayerMaxNum=4,         #合作模式玩家最大数量。打塔主的时候,一次能进去多少人。现在固定最多4个人。
ServerPlayerMaxNum=32,          #服务器最多玩家数量。
ServerName="Default Palworld Server",       #服务器名
ServerDescription="",           #服务器描述
AdminPassword="",               #游戏管理员密码,可以在游戏中有特权,比如踢人、全员消息等
ServerPassword="",          #服务器密码
PublicPort=8211,            #服务器端口
PublicIP="",                #服务器IP
RCONEnabled=False,
RCONPort=25575,
Region="",
bUseAuth=True,
BanListURL="<https://api.palworldgame.com/api/banlist.txt>",
RESTAPIEnabled=False,
RESTAPIPort=8212,
bShowPlayerList=False,              #按ESC键后,显示玩家列表。默认不开启。
AllowConnectPlatform=Steam,         #允许连接的客户端平台,可以是Steam/Xbox,默认是Steam
bIsUseBackupSaveData=True,          #启用世界的备份,建议开启
LogFormatType=Text

管理员命令

 必须要在上述配置AdminPassword不为空,才能开启在游戏中输入命令。
 游戏中只有管理员才能执行命令。按回车键,输入/AdminPassword <设置的密码>获取管理员权限。以下是管理员能够执行的命令。

/AdminPassword      #使用密码获取管理员权限
/Shutdown [Seconds] [MessageText]       #关闭服务器。如果指定了[Seconds], 服务器会在对应时间后自动关闭。[MessageText]是给游戏内玩家发送的信息.
/DoExit     #强制关闭服务器
/Broadcast <MessageText>        #向所有玩家发送消息
/KickPlayer <SteamID>       #把玩家踢出服务器
/BanPlayer <SteamID>        #封禁玩家
/UnBanPlayer        #解禁玩家
/TeleportToPlayer <SteamID>         #传送到该玩家身边
/TeleportToMe <SteamID>             #将玩家传送到我身边
/ShowPlayers            #显示所有在线玩家信息
/Info           #显示服务器信息
/Save           #保存世界数据

Rest API

  1. 获取服务器信息
    http://localhost:8212/v1/api/info
curl -L -X GET 'http://localhost:8212/v1/api/info' -H 'Accept: application/json'
  1. 获取玩家列表
    http://localhost:8212/v1/api/players
curl -L -X GET 'http://localhost:8212/v1/api/players' -H 'Accept: application/json'
  1. 获取服务器配置
    http://localhost:8212/v1/api/settings
curl -L -X GET 'http://localhost:8212/v1/api/settings' -H 'Accept: application/json'
  1. 获取服务器指标
    http://localhost:8212/v1/api/metrics
curl -L -X GET 'http://localhost:8212/v1/api/metrics' -H 'Accept: application/json'
  1. 发送公屏消息
    http://localhost:8212/v1/api/announce
curl -L -X POST 'http://localhost:8212/v1/api/announce' \
-H 'Content-Type: application/json' \
--data-raw '{
  "message": "Hello, Palworld!"
}'
  1. 踢出玩家
    http://localhost:8212/v1/api/kick
curl -L -X POST 'http://localhost:8212/v1/api/kick' \
-H 'Content-Type: application/json' \
--data-raw '{
  "userid": "steam_00000000000000000",
  "message": "You are kicked."
}'
  1. 封禁玩家
    http://localhost:8212/v1/api/ban
curl -L -X POST 'http://localhost:8212/v1/api/ban' \
-H 'Content-Type: application/json' \
--data-raw '{
  "userid": "steam_00000000000000000",
  "message": "You are banned."
}'
  1. 解禁玩家
    http://localhost:8212/v1/api/unban
curl -L -X POST 'http://localhost:8212/v1/api/unban' \
-H 'Content-Type: application/json' \
--data-raw '{
  "userid": "steam_00000000000000000"
}'
  1. 保存世界
    http://localhost:8212/v1/api/save
curl -L -X POST 'http://localhost:8212/v1/api/save'
  1. 关闭服务器
    http://localhost:8212/v1/api/shutdown
curl -L -X POST 'http://localhost:8212/v1/api/shutdown' \
-H 'Content-Type: application/json' \
--data-raw '{
  "waittime": 30,
  "message": "Server will shutdown in 10 seconds."
}'
  1. 强制关闭服务器
    http://localhost:8212/v1/api/stop
curl -L -X POST 'http://localhost:8212/v1/api/stop'

转载请注明来源,欢迎指出错误或表达不够清晰之处。可以在评论区留言,也可以邮件至 hellozhugj@gmail.com