팰월드 서버 완전정복 palworld-server-watcher로 디스코드 및 서버관리
안녕하세요!
많은 분들이 팰월드를 정복하고 이제 하차를 하셨지만....저는 서버 건드는게 너무 재미있어서 아직까지 끌어 안고있습니다.
특히나 디스코드로 연동하는 방법을 찾아보다가! 역시 능력자분들은 많고 깃헙은 어메이징하다는걸 매일 깨닫고 있습니다.
해당 방법은 palworld-server-watcher라는 프로젝트로 도커 소켓을 이용하여 유저의 접속 유무에 따라서 자동을 서버를 시작하거나 또는 종료가 가능하고. 이제는 갓패치로 디스코드를 통해 서버를 조정할 수 있게 만들어졌습니다.
서버 접속 유저가 없을때 서버종료하기 | Palworld Server Docker Documentation (loef.dev)
아래는 한방서버 yaml입니다. 저는 포테이너에서 스택기능을 사용중이구요 palworld-server와 다른건 expose port가 없이 networ_mode:service:watcher가 추가 된것입니다.
services:
palworld:
image: thijsvanloef/palworld-server-docker:latest
restart: unless-stopped
container_name: palworld-server
network_mode: service:watcher
stop_grace_period: 30s
environment:
PUID: 1000
PGID: 1000
PORT: 8211 # Optional but recommended
PLAYERS: 16 # Optional but recommended
MULTITHREADING: true
RCON_ENABLED: true
RCON_PORT: 25575
COMMUNITY: false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
# Enable the environment variables below if you have COMMUNITY=true
# - SERVER_PASSWORD=""
# - SERVER_NAME=""
ADMIN_PASSWORD: ""
AUTO_UPDATE_ENABLED: true
AUTO_UPDATE_WARN_MINUTES: 5
AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE: false
DISCORD_WEBHOOK_URL:
DISCORD_PRE_START_MESSAGE:
DAYTIME_SPEEDRATE: 1.5
NIGHTTIME_SPEEDRATE: 0.5
EXP_RATE: 3
PAL_CAPTURE_RATE: 3
PLAYER_STOMACH_DECREASE_RATE: 0.1
PLAYER_STAMINA_DECREASE_RATE: 0.8
PAL_STOMACH_DECREASE_RATE: 0.1
PAL_STAMINA_DECREASE_RATE: 0.5
BUILD_OBJECT_DAMAGE_RATE: 0.3
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE: 0.3
ENEMY_DROP_ITEM_RATE: 3
DEATH_PENALTY: None
PAL_EGG_DEFAULT_HATCHING_TIME: 1
WORK_SPEED_RATE: 3
ENABLE_NON_LOGIN_PENALTY: False
ENABLE_INVADER_ENEMY: False
volumes:
- /data/palworld:/palworld/
watcher:
image: dnwjn/palworld-server-watcher:latest
container_name: palworld-watcher
environment:
- CONTAINER_NAME=palworld-server # The name of the server container
- GAME_PORT=8211 # The same value as `PORT` in the server container
- QUERY_PORT=27015 # The same value as `QUERY_PORT` in the server container
- LOOP_SLEEP_SECONDS=3600 # How often to check the server status
- CONNECT_GRACE_SECONDS=240 # After starting the server, how long to wait before continuing the loop
- DISCORD_TOKEN=
- DISCORD_CLIENT_ID=
- DISCORD_GUILD_ID=
restart: on-failure
ports:
- 8211:8211/udp
- 27015:27015/udp
- 25575:25575
volumes:
- /var/run/docker.sock:/var/run/docker.sock # This could be different depending on the operating system
아래 게임 설정은 편하신대로 하시고 포트 개방을 watcher쪽에 해주셔야합니다.
- Discord Developer Portal — My Applications 에서 새로운 application을 만듭니다
- Bot탭에서 token 생성해서 복사 붙여넣기 합니다. (DISCORD_TOKEN)
- Bot탭에서 추가로 Message Content Intent도 활성화 해줍니다.
- OAuth2탭에서 클라이언트 ID를 복사 붙여넣기 합니다 (DISCORD_CLIENT_ID)
- OAuth2 URL Generator에
bot
,applications.commands
andSend Messages
를 선택하고 아래 만들어진 URL를 브라우저에 붙여넣기합니다. - 해당 URL은 봇을 원하시는 서버에 사용하실 수 있는 링크입니다.
- DISCORD_GUILD_ID는 서버의 개별ID인데 developer mode가 활성화 되어있어야 보여집니다.
- 여기 설정버튼을 누르시고
-
고급탭에서
-
개발자 모드를 활성화하시고
-
원하시는 서버 아이콘을 오른쪽 클릭하셔서
-
서버 ID를 복사하신뒤 GUILD_ID에 복사 붙여넣기 하시면 됩니다!
이렇게 마무래해봅니다!