services:
  palworld:
    image: thijsvanloef/palworld-server-docker:v1.4.6
    stop_grace_period: 30s
    ports:
      - '8211:8211/udp'
      - '27015:27015/udp'
    volumes:
      - 'palworld-data:/palworld/'
    environment:
      - 'TZ=${TZ:?UTC}'
      - 'PUID=${PUID:?1000}'
      - 'PGID=${PGID:?1000}'
      - 'MULTITHREADING=${MULTITHREADING:?false}'
      - 'MAX_PLAYERS=${PLAYERS:?16}'
      - 'SERVER_NAME=${SERVER_NAME:?palworld-server-docker by Thijs van Loef via Coolify}'
      - 'SERVER_DESCRIPTION=${SERVER_DESCRIPTION:?palworld-server-docker by Thijs van Loef via Coolify}'
      - 'SERVER_PASSWORD=${SERVER_PASSWORD:?worldofpals}'
      - 'ADMIN_PASSWORD=${ADMIN_PASSWORD:-adminPassword}'
      - 'COMMUNITY=${COMMUNITY:?false}'
      - 'PUBLIC_IP=${PUBLIC_IP:-}'
      - 'PUBLIC_PORT=${PUBLIC_PORT:?8211}'
      - 'PORT=${PORT:?8211}'
      - 'QUERY_PORT=${QUERY_PORT:?27015}'
      - 'UPDATE_ON_BOOT=${UPDATE_ON_BOOT:?true}'
      - 'RCON_ENABLED=${RCON_ENABLED:?true}'
      - 'RCON_PORT=${RCON_PORT:?25575}'
      - 'BACKUP_ENABLED=${BACKUP_ENABLED:?true}'
      - 'DELETE_OLD_BACKUPS=${DELETE_OLD_BACKUPS:?false}'
      - 'OLD_BACKUP_DAYS=${OLD_BACKUP_DAYS:?30}'
      - 'BACKUP_CRON_EXPRESSION=${BACKUP_CRON_EXPRESSION:?0 0 * * *}'
      - 'AUTO_UPDATE_ENABLED=${AUTO_UPDATE_ENABLED:?false}'
      - 'AUTO_UPDATE_CRON_EXPRESSION=${AUTO_UPDATE_CRON_EXPRESSION:?0 * * * *}'
      - 'AUTO_UPDATE_WARN_MINUTES=${AUTO_UPDATE_WARN_MINUTES:?30}'
      - 'AUTO_REBOOT_ENABLED=${AUTO_REBOOT_ENABLED:?false}'
      - 'AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE=${AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE:?false}'
      - 'AUTO_REBOOT_WARN_MINUTES=${AUTO_REBOOT_WARN_MINUTES:?5}'
      - 'AUTO_REBOOT_CRON_EXPRESSION=${AUTO_REBOOT_CRON_EXPRESSION:?0 0 * * *}'
      - 'AUTO_PAUSE_ENABLED=${AUTO_PAUSE_ENABLED:?false}'
      - 'AUTO_PAUSE_TIMEOUT_EST=${AUTO_PAUSE_TIMEOUT_EST:?180}'
      - 'AUTO_PAUSE_LOG=${AUTO_PAUSE_LOG:?true}'
      - 'AUTO_PAUSE_DEBUG=${AUTO_PAUSE_DEBUG:?false}'
      - 'ENABLE_PLAYER_LOGGING=${ENABLE_PLAYER_LOGGING:?true}'
      - 'PLAYER_LOGGING_POLL_PERIOD=${PLAYER_LOGGING_POLL_PERIOD:?5}'
      - 'DIFFICULTY=${DIFFICULTY:?None}'
      - 'RANDOMIZER_TYPE=${RANDOMIZER_TYPE:-}'
      - 'RANDOMIZER_SEED=${RANDOMIZER_SEED:?none}'
      - 'DAYTIME_SPEEDRATE=${DAYTIME_SPEEDRATE:?1.000000}'
      - 'NIGHTTIME_SPEEDRATE=${NIGHTTIME_SPEEDRATE:?1.000000}'
      - 'EXP_RATE=${EXP_RATE:?1.000000}'
      - 'PAL_CAPTURE_RATE=${PAL_CAPTURE_RATE:?1.000000}'
      - 'PAL_SPAWN_NUM_RATE=${PAL_SPAWN_NUM_RATE:?1.000000}'
      - 'PAL_DAMAGE_RATE_ATTACK=${PAL_DAMAGE_RATE_ATTACK:?1.000000}'
      - 'PAL_DAMAGE_RATE_DEFENSE=${PAL_DAMAGE_RATE_DEFENSE:?1.000000}'
      - 'PLAYER_DAMAGE_RATE_ATTACK=${PLAYER_DAMAGE_RATE_ATTACK:?1.000000}'
      - 'PLAYER_DAMAGE_RATE_DEFENSE=${PLAYER_DAMAGE_RATE_DEFENSE:?1.000000}'
      - 'PLAYER_STOMACH_DECREASE_RATE=${PLAYER_STOMACH_DECREASE_RATE:?1.000000}'
      - 'PLAYER_STAMINA_DECREASE_RATE=${PLAYER_STAMINA_DECREASE_RATE:?1.000000}'
      - 'PLAYER_AUTO_HP_REGEN_RATE=${PLAYER_AUTO_HP_REGEN_RATE:?1.000000}'
      - 'PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP=${PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP:?1.000000}'
      - 'PAL_STOMACH_DECREASE_RATE=${PAL_STOMACH_DECREASE_RATE:?1.000000}'
      - 'PAL_STAMINA_DECREASE_RATE=${PAL_STAMINA_DECREASE_RATE:?1.000000}'
      - 'PAL_AUTO_HP_REGEN_RATE=${PAL_AUTO_HP_REGEN_RATE:?1.000000}'
      - 'PAL_AUTO_HP_REGEN_RATE_IN_SLEEP=${PAL_AUTO_HP_REGEN_RATE_IN_SLEEP:?1.000000}'
      - 'BUILD_OBJECT_HP_RATE=${BUILD_OBJECT_HP_RATE:?1.000000}'
      - 'BUILD_OBJECT_DAMAGE_RATE=${BUILD_OBJECT_DAMAGE_RATE:?1.000000}'
      - 'BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=${BUILD_OBJECT_DETERIORATION_DAMAGE_RATE:?1.000000}'
      - 'COLLECTION_DROP_RATE=${COLLECTION_DROP_RATE:?1.000000}'
      - 'COLLECTION_OBJECT_HP_RATE=${COLLECTION_OBJECT_HP_RATE:?1.000000}'
      - 'COLLECTION_OBJECT_RESPAWN_SPEED_RATE=${COLLECTION_OBJECT_RESPAWN_SPEED_RATE:?1.000000}'
      - 'ENEMY_DROP_ITEM_RATE=${ENEMY_DROP_ITEM_RATE:?1.000000}'
      - 'DEATH_PENALTY=${DEATH_PENALTY:?All}'
      - 'ENABLE_PLAYER_TO_PLAYER_DAMAGE=${ENABLE_PLAYER_TO_PLAYER_DAMAGE:?False}'
      - 'ENABLE_FRIENDLY_FIRE=${ENABLE_FRIENDLY_FIRE:?False}'
      - 'ENABLE_INVADER_ENEMY=${ENABLE_INVADER_ENEMY:?True}'
      - 'ACTIVE_UNKO=${ACTIVE_UNKO:?False}'
      - 'ENABLE_AIM_ASSIST_PAD=${ENABLE_AIM_ASSIST_PAD:?True}'
      - 'ENABLE_AIM_ASSIST_KEYBOARD=${ENABLE_AIM_ASSIST_KEYBOARD:?False}'
      - 'DROP_ITEM_MAX_NUM=${DROP_ITEM_MAX_NUM:?3000}'
      - 'DROP_ITEM_MAX_NUM_UNKO=${DROP_ITEM_MAX_NUM_UNKO:?100}'
      - 'BASE_CAMP_MAX_NUM=${BASE_CAMP_MAX_NUM:?128}'
      - 'BASE_CAMP_WORKER_MAX_NUM=${BASE_CAMP_WORKER_MAX_NUM:?15}'
      - 'DROP_ITEM_ALIVE_MAX_HOURS=${DROP_ITEM_ALIVE_MAX_HOURS:?1.000000}'
      - 'AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=${AUTO_RESET_GUILD_NO_ONLINE_PLAYERS:?False}'
      - 'AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=${AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS:?72.000000}'
      - 'GUILD_PLAYER_MAX_NUM=${GUILD_PLAYER_MAX_NUM:?20}'
      - 'BASE_CAMP_MAX_NUM_IN_GUILD=${BASE_CAMP_MAX_NUM_IN_GUILD:?4}'
      - 'PAL_EGG_DEFAULT_HATCHING_TIME=${PAL_EGG_DEFAULT_HATCHING_TIME:?72.000000}'
      - 'WORK_SPEED_RATE=${WORK_SPEED_RATE:?1.000000}'
      - 'AUTO_SAVE_SPAN=${AUTO_SAVE_SPAN:?30.000000}'
      - 'IS_MULTIPLAY=${IS_MULTIPLAY:?False}'
      - 'IS_PVP=${IS_PVP:?False}'
      - 'HARDCORE=${HARDCORE:?False}'
      - 'PAL_LOST=${PAL_LOST:?False}'
      - 'CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=${CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP:?False}'
      - 'ENABLE_NON_LOGIN_PENALTY=${ENABLE_NON_LOGIN_PENALTY:?True}'
      - 'ENABLE_FAST_TRAVEL=${ENABLE_FAST_TRAVEL:?True}'
      - 'IS_START_LOCATION_SELECT_BY_MAP=${IS_START_LOCATION_SELECT_BY_MAP:?True}'
      - 'EXIST_PLAYER_AFTER_LOGOUT=${EXIST_PLAYER_AFTER_LOGOUT:?False}'
      - 'ENABLE_DEFENSE_OTHER_GUILD_PLAYER=${ENABLE_DEFENSE_OTHER_GUILD_PLAYER:?False}'
      - 'INVISIBLE_OTHER_GUILD_BASE_CAMP_AREA_FX=${INVISIBLE_OTHER_GUILD_BASE_CAMP_AREA_FX:?False}'
      - 'BUILD_AREA_LIMIT=${BUILD_AREA_LIMIT:?False}'
      - 'ITEM_WEIGHT_RATE=${ITEM_WEIGHT_RATE:?1.000000}'
      - 'COOP_PLAYER_MAX_NUM=${COOP_PLAYER_MAX_NUM:?4}'
      - 'REGION=${REGION:-}'
      - 'USEAUTH=${USEAUTH:?True}'
      - 'BAN_LIST_URL=${BAN_LIST_URL:?https://api.palworldgame.com/api/banlist.txt}'
      - 'REST_API_ENABLED=${REST_API_ENABLED:?False}'
      - 'REST_API_PORT=${REST_API_PORT:?8212}'
      - 'SHOW_PLAYER_LIST=${SHOW_PLAYER_LIST:?True}'
      - 'ENABLE_PREDATOR_BOSS_PAL=${ENABLE_PREDATOR_BOSS_PAL:?True}'
      - 'MAX_BUILDING_LIMIT_NUM=${MAX_BUILDING_LIMIT_NUM:?0}'
      - 'SERVER_REPLICATE_PAWN_CULL_DISTANCE=${SERVER_REPLICATE_PAWN_CULL_DISTANCE:?15000.000000}'
      - 'SERVER_REPLICATE_PAWN_CULL_DISTANCE_IN_BASE_CAMP=${SERVER_REPLICATE_PAWN_CULL_DISTANCE_IN_BASE_CAMP:?5000.000000}'
      - 'CROSSPLAY_PLATFORMS=${CROSSPLAY_PLATFORMS:?(Steam,Xbox,PS5,Mac)}'
      - 'USE_BACKUP_SAVE_DATA=${USE_BACKUP_SAVE_DATA:?True}'
      - 'USE_DEPOT_DOWNLOADER=${USE_DEPOT_DOWNLOADER:?False}'
      - 'INSTALL_BETA_INSIDER=${INSTALL_BETA_INSIDER:?False}'
      - 'ALLOW_GLOBAL_PALBOX_EXPORT=${ALLOW_GLOBAL_PALBOX_EXPORT:?True}'
      - 'ALLOW_GLOBAL_PALBOX_IMPORT=${ALLOW_GLOBAL_PALBOX_IMPORT:?False}'
      - 'EQUIPMENT_DURABILITY_DAMAGE_RATE=${EQUIPMENT_DURABILITY_DAMAGE_RATE:?1.000000}'
      - 'ITEM_CONTAINER_FORCE_MARK_DIRTY_INTERVAL=${ITEM_CONTAINER_FORCE_MARK_DIRTY_INTERVAL:?1.000000}'
      - 'BOX64_DYNAREC_STRONGMEM=${BOX64_DYNAREC_STRONGMEM:-}'
      - 'BOX64_DYNAREC_BIGBLOCK=${BOX64_DYNAREC_BIGBLOCK:-}'
      - 'BOX64_DYNAREC_SAFEFLAGS=${BOX64_DYNAREC_SAFEFLAGS:-}'
      - 'BOX64_DYNAREC_FASTROUND=${BOX64_DYNAREC_FASTROUND:-}'
      - 'BOX64_DYNAREC_FASTNAN=${BOX64_DYNAREC_FASTNAN:-}'
      - 'BOX64_DYNAREC_X87DOUBLE=${BOX64_DYNAREC_X87DOUBLE:-}'
