diff --git a/docusaurus/i18n/ko/code.json b/docusaurus/i18n/ko/code.json new file mode 100644 index 000000000..bab4e0a5c --- /dev/null +++ b/docusaurus/i18n/ko/code.json @@ -0,0 +1,289 @@ +{ + "theme.ErrorPageContent.title": { + "message": "페이지에 오류가 발생하였습니다.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "맨 위로 스크롤하기", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "게시물 목록", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "게시물 목록", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "블로그 게시물 목록 탐색", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "이전 페이지", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "다음 페이지", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "블로그 게시물 탐색", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "이전 게시물", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "다음 게시물", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "{count}개 게시물", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "\"{tagName}\" 태그로 연결된 {nPosts}개의 게시물이 있습니다.", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "모든 태그 보기", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "어두운 모드와 밝은 모드 전환하기 (현재 {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "어두운 모드", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "밝은 모드", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} 항목", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "문서 페이지", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "이전", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "다음", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "{count}개 문서가", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} \"{tagName}\" 태그에 분류되었습니다", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "버전: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "{siteTitle} {versionLabel} 문서는 아직 정식 공개되지 않았습니다.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "{siteTitle} {versionLabel} 문서는 더 이상 업데이트되지 않습니다.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "최신 문서는 {latestVersionLink} ({versionLabel})을 확인하세요.", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "최신 버전", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "페이지 편집", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "{heading}에 대한 직접 링크", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " {date}에", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " {user}가", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "최종 수정: {atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "버전", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.NotFound.title": { + "message": "페이지를 찾을 수 없습니다.", + "description": "The title of the 404 page" + }, + "theme.tags.tagsListLabel": { + "message": "태그:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "주의", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "위험", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "정보", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "노트", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "팁", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "warning", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "닫기", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "최근 블로그 문서 둘러보기", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "복사했습니다", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "클립보드에 코드 복사", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "복사", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "줄 바꿈 전환", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Expand sidebar category '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Collapse sidebar category '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main", + "description": "The ARIA label for the main navigation" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "언어", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.NotFound.p1": { + "message": "원하는 페이지를 찾을 수 없습니다.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "사이트 관리자에게 링크가 깨진 것을 알려주세요.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "이 페이지에서", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "자세히 보기", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "{title} 에 대해 더 읽어보기", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "약 {readingTime}분", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "홈", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "사이드바 숨기기", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "사이드바 숨기기", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← 메인 메뉴로 돌아가기", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "사이드바 열기", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "사이드바 열기", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "다시 시도해 보세요", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "본문으로 건너뛰기", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "태그", + "description": "The title of the tag list page" + }, + "theme.unlistedContent.title": { + "message": "Unlisted page", + "description": "The unlisted content banner title" + }, + "theme.unlistedContent.message": { + "message": "This page is unlisted. Search engines will not index it, and only users having a direct link can access it.", + "description": "The unlisted content banner message" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current.json new file mode 100644 index 000000000..2f7aabd44 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,30 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Configuration": { + "message": "Configuration", + "description": "The label for category Configuration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Backup": { + "message": "Backup", + "description": "The label for category Backup in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Discord integration": { + "message": "Discord integration", + "description": "The label for category Discord integration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category Advanced in sidebar tutorialSidebar" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/advanced/_category_.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/advanced/_category_.json new file mode 100644 index 000000000..1be1687f1 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/advanced/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Advanced", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/advanced/kubernetes.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/advanced/kubernetes.md new file mode 100644 index 000000000..fd8214491 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/advanced/kubernetes.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +--- + +# Kubernetes + +All files you will need to deploy this container to kubernetes are located in the [k8s folder](https://github.com/thijsvanloef/palworld-server-docker/tree/main/k8s). + +## Setup Palworld in kubernetes + +Use the following commands to setup this Palworld container in Kubernetes: + +* `kubectl apply -f pvc.yaml` +* `kubectl apply -f configmap.yaml` +* `kubectl apply -f secret.yaml` +* `kubectl apply -f service.yaml` +* `kubectl apply -f deployment.yaml` + +## Using helm chart + +The official helm chart can be found in a seperate repository, [palworld-server-chart](https://github.com/Twinki14/palworld-server-chart) diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/_category_.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/_category_.json new file mode 100644 index 000000000..14206eb29 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Getting Started", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json new file mode 100644 index 000000000..5bea3520b --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Configuration", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md new file mode 100644 index 000000000..82411de3e --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md @@ -0,0 +1,97 @@ +--- +sidebar_position: 2 +--- + +# Game Settings + +## With Environment Variables + +:::warning +These Environment Variables and Settings are subject to change since the game is still in beta. + +Check out the [official webpage for the supported parameters.](https://tech.palworldgame.com/optimize-game-balance) +::: + +Converting server settings to environment variables follow the same principles (with some exceptions): + +* all capital letters +* split words by inserting an underscore +* remove the single letter if the setting starts with one (like 'b') + +For example: + +* Difficulty -> DIFFICULTY +* PalSpawnNumRate -> PAL_SPAWN_NUM_RATE +* bIsPvP -> IS_PVP + +| Variable | Description | Default Value | Allowed Value | +|-------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------------------------------------|----------------------------------------| +| DIFFICULTY | Game Difficulty | None | `None`,`Normal`,`Difficult` | +| DAYTIME_SPEEDRATE | Day time speed - Smaller number means shorter days | 1.000000 | Float | +| NIGHTTIME_SPEEDRATE | Night time speed - Smaller number means shorter nights | 1.000000 | Float | +| EXP_RATE | EXP earn rate | 1.000000 | Float | +| PAL_CAPTURE_RATE | Pal capture rate | 1.000000 | Float | +| PAL_SPAWN_NUM_RATE | Pal appearance rate | 1.000000 | Float | +| PAL_DAMAGE_RATE_ATTACK | Damage from pals multipiler | 1.000000 | Float | +| PAL_DAMAGE_RATE_DEFENSE | Damage to pals multipiler | 1.000000 | Float | +| PLAYER_DAMAGE_RATE_ATTACK | Damage from player multipiler | 1.000000 | Float | +| PLAYER_DAMAGE_RATE_DEFENSE | Damage to player multipiler | 1.000000 | Float | +| PLAYER_STOMACH_DECREASE_RATE | Player hunger depletion rate | 1.000000 | Float | +| PLAYER_STAMINA_DECREASE_RATE | Player stamina reduction rate | 1.000000 | Float | +| PLAYER_AUTO_HP_REGEN_RATE | Player auto HP regeneration rate | 1.000000 | Float | +| PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP | Player sleep HP regeneration rate | 1.000000 | Float | +| PAL_STOMACH_DECREASE_RATE | Pal hunger depletion rate | 1.000000 | Float | +| PAL_STAMINA_DECREASE_RATE | Pal stamina reduction rate | 1.000000 | Float | +| PAL_AUTO_HP_REGEN_RATE | Pal auto HP regeneration rate | 1.000000 | Float | +| PAL_AUTO_HP_REGEN_RATE_IN_SLEEP | Pal sleep health regeneration rate (in Palbox) | 1.000000 | Float | +| BUILD_OBJECT_DAMAGE_RATE | Damage to structure multipiler | 1.000000 | Float | +| BUILD_OBJECT_DETERIORATION_DAMAGE_RATE | Structure determination rate | 1.000000 | Float | +| COLLECTION_DROP_RATE | Getherable items multipiler | 1.000000 | Float | +| COLLECTION_OBJECT_HP_RATE | Getherable objects HP multipiler | 1.000000 | Float | +| COLLECTION_OBJECT_RESPAWN_SPEED_RATE | Getherable objects respawn interval - The smaller the number, the faster the regeneration | 1.000000 | Float | +| ENEMY_DROP_ITEM_RATE | Dropped Items Multipiler | 1.000000 | Float | +| DEATH_PENALTY | Death Penalty None: No death penalty Item: Drops items other than equipment ItemAndEquipment: Drops all items All: Drops all PALs and all items. | All | `None`,`Item`,`ItemAndEquipment`,`All` | +| ENABLE_PLAYER_TO_PLAYER_DAMAGE | Allows players to cause damage to players | False | Boolean | +| ENABLE_FRIENDLY_FIRE | Allow friendly fire | False | Boolean | +| ENABLE_INVADER_ENEMY | Enable invaders | True | Boolean | +| ACTIVE_UNKO | Enable UNKO (?) | False | Boolean | +| ENABLE_AIM_ASSIST_PAD | Enable controller aim assist | True | Boolean | +| ENABLE_AIM_ASSIST_KEYBOARD | Enable Keyboard aim assist | False | Boolean | +| DROP_ITEM_MAX_NUM | Maximum number of drops in the world | 3000 | Integer | +| DROP_ITEM_MAX_NUM_UNKO | Maximum number of UNKO drops in the world | 100 | Integer | +| BASE_CAMP_MAX_NUM | Maximum number of base camps | 128 | Integer | +| BASE_CAMP_WORKER_MAX_NUM | Maximum number of workers | 15 | Integer | +| DROP_ITEM_ALIVE_MAX_HOURS | Time it takes for items to despawn in hours | 1.000000 | Float | +| AUTO_RESET_GUILD_NO_ONLINE_PLAYERS | Automatically reset guild when no players are online | False | Bool | +| AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS | Time to automatically reset guild when no players are online | 72.000000 | Float | +| GUILD_PLAYER_MAX_NUM | Max player of Guild | 20 | Integer | +| PAL_EGG_DEFAULT_HATCHING_TIME | Time(h) to incubate massive egg | 72.000000 | Float | +| WORK_SPEED_RATE | Work speed muliplier | 1.000000 | Float | +| IS_MULTIPLAY | Enable multiplayer | False | Boolean | +| IS_PVP | Enable PVP | False | Boolean | +| CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP | Allow players from other guilds to pick up death penalty items | False | Boolean | +| ENABLE_NON_LOGIN_PENALTY | Enable non-login penalty | True | Boolean | +| ENABLE_FAST_TRAVEL | Enable fast travel | True | Boolean | +| IS_START_LOCATION_SELECT_BY_MAP | Enable selecting of start location | True | Boolean | +| EXIST_PLAYER_AFTER_LOGOUT | Toggle for deleting players when they log off | False | Boolean | +| ENABLE_DEFENSE_OTHER_GUILD_PLAYER | Allows defense against other guild players | False | Boolean | +| COOP_PLAYER_MAX_NUM | Maximum number of players in a guild | 4 | Integer | +| REGION | Region | | String | +| USEAUTH | Use authentication | True | Boolean | +| BAN_LIST_URL | Which ban list to use | [https://api.palworldgame.com/api/banlist.txt](https://api.palworldgame.com/api/banlist.txt) | string | + +### Manually + +When the server starts, a `PalWorldSettings.ini` file will be created in the following location: `/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini` + +Please keep in mind that the ENV variables will always overwrite the changes made to `PalWorldSettings.ini`. + +:::warning +Changes can only be made to `PalWorldSettings.ini` while the server is off. + +Any changes made while the server is live will be overwritten when the server stops. +::: + +For a more detailed list of server settings go to: [Palworld Wiki](https://palworld.wiki.gg/wiki/PalWorldSettings.ini) + +For more detailed server settings explanations go to: [shockbyte](https://shockbyte.com/billing/knowledgebase/1189/How-to-Configure-your-Palworld-server.html) diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-commands.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-commands.md new file mode 100644 index 000000000..e08335ef7 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-commands.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 3 +--- + +# Server Commands (RCON) + +How to use RCON to interact with the server. + +## RCON + +RCON is enabled by default for the palworld-server-docker image. +Opening the RCON CLI is quite easy: + +```bash +docker exec -it palworld-server rcon-cli " " +``` + +For example, you can broadcast a message to everyone in the server with the following command: + +```bash +docker exec -it palworld-server rcon-cli "Broadcast Hello everyone" +``` + +This will open a CLI that uses RCON to write commands to the Palworld Server. + +### List of server commands + +| Command | Info | +|----------------------------------|-----------------------------------------------------| +| Shutdown (Seconds) (MessageText) | The server is shut down after the number of Seconds | +| DoExit | Force stop the server. | +| Broadcast | Send message to all player in the server | +| KickPlayer (SteamID) | Kick player from the server.. | +| BanPlayer (SteamID) | BAN player from the server. | +| TeleportToPlayer (SteamID) | Teleport to current location of target player. | +| TeleportToMe (SteamID) | Target player teleport to your current location | +| ShowPlayers | Show information on all connected players. | +| Info | Show server information. | +| Save | Save the world data. | + +For a full list of commands go to: [https://tech.palworldgame.com/server-commands](https://tech.palworldgame.com/server-commands) diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md new file mode 100644 index 000000000..ef469e04e --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 1 +--- + +# Server Settings + +This part will explain how to configure the server. + +## Environment variables + +You can use the following values to change the settings of the server on boot. +It is highly recommended you set the following environment values before starting the server: + +* PLAYERS +* PORT +* PUID +* PGID + +| Variable | Info | Default Values | Allowed Values | +|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|---------------------------------------------------------------------------------------| +| TZ | Timezone used for time stamping backup server | UTC | See [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | +| PLAYERS* | Max amount of players that are able to join the server | 16 | 1-32 | +| PORT* | UDP port that the server will expose | 8211 | 1024-65535 | +| PUID* | The uid of the user the server should run as | 1000 | !0 | +| PGID* | The gid of the group the server should run as | 1000 | !0 | +| MULTITHREADING** | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false | +| COMMUNITY | Whether or not the server shows up in the community server browser (USE WITH SERVER_PASSWORD) | false | true/false | +| PUBLIC_IP | You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | x.x.x.x | +| PUBLIC_PORT | You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | 1024-65535 | +| SERVER_NAME | A name for your server | | "string" | +| SERVER_DESCRIPTION | Your server Description | | "string" | +| SERVER_PASSWORD | Secure your community server with a password | | "string" | +| ADMIN_PASSWORD | Secure administration access in the server with a password | | "string" | +| UPDATE_ON_BOOT** | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false | +| RCON_ENABLED*** | Enable RCON for the Palworld server | true | true/false | +| RCON_PORT | RCON port to connect to | 25575 | 1024-65535 | +| QUERY_PORT | Query port used to communicate with Steam servers | 27015 | 1024-65535 | +| BACKUP_CRON_EXPRESSION | Setting affects frequency of automatic backups. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Backups with Cron](https://palworld-server-docker.loef.dev/guides/backup/automated-backup) | +| BACKUP_ENABLED | Enables automatic backups | true | true/false | +| DELETE_OLD_BACKUPS | Delete backups after a certain number of days | false | true/false | +| OLD_BACKUP_DAYS | How many days to keep backups | 30 | any positive integer | +| AUTO_UPDATE_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 \* \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Updates with Cron](https://palworld-server-docker.loef.dev/guides/automatic-reboots) | +| AUTO_UPDATE_ENABLED | Enables automatic updates | false | true/false | +| AUTO_UPDATE_WARN_MINUTES | How long to wait to update the server, after the player were informed. | 30 | !0 | +| AUTO_REBOOT_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Reboots with Cron](https://palworld-server-docker.loef.dev/guides/automatic-updates) | +| AUTO_REBOOT_ENABLED | Enables automatic reboots | false | true/false | +| AUTO_REBOOT_WARN_MINUTES | How long to wait to reboot the server, after the player were informed. | 5 | !0 | +| AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE | Restart the Server even if there are players online. | false | true/false | +| DISCORD_WEBHOOK_URL | Discord webhook url found after creating a webhook on a discord server | | `https://discord.com/api/webhooks/` | +| DISCORD_CONNECT_TIMEOUT | Discord command initial connection timeout | 30 | !0 | +| DISCORD_MAX_TIMEOUT | Discord total hook timeout | 30 | !0 | +| DISCORD_PRE_UPDATE_BOOT_MESSAGE | Discord message sent when server begins updating | Server is updating... | "string" | +| DISCORD_POST_UPDATE_BOOT_MESSAGE | Discord message sent when server completes updating | Server update complete! | "string" | +| DISCORD_PRE_START_MESSAGE | Discord message sent when server begins to start | Server is started! | "string" | +| DISCORD_PRE_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown | Server is shutting down... | "string" | +| DISCORD_POST_SHUTDOWN_MESSAGE | Discord message sent when server has stopped | Server is stopped! | "string" | + +*highly recommended to set + +** Make sure you know what you are doing when running this option enabled + +*** Required for docker stop to save and gracefully close the server + +### Game Ports + +The server needs the following ports by default. + +| Port | Info | +|-------|------------------| +| 8211 | Game Port (UDP) | +| 27015 | Query Port (UDP) | +| 25575 | RCON Port (TCP) | diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/quick-setup.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/quick-setup.md new file mode 100644 index 000000000..c420d573a --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/quick-setup.md @@ -0,0 +1,128 @@ +--- +sidebar_position: 1 +slug: / +--- + +# Quick Setup + +Let's get you on your way with the Palworld Dedicated server! + +:::warning +At the moment, Xbox Gamepass/Xbox Console players will not be able to join a dedicated server. + +They will need to join players using the invite code and are limited to sessions of 4 players max. +::: + +## Server Requirements + +| Resource | Minimum | Recommended | +|----------|---------|------------------------------------------| +| CPU | 4 cores | 4+ cores | +| RAM | 16GB | Recommend over 32GB for stable operation | +| Storage | 8GB | 20GB | + +## Docker Compose + +This repository includes an example +[docker-compose.yml](https://github.com/thijsvanloef/palworld-server-docker/blob/main/docker-compose.yml) +file you can use to set up your server. + +```yml +services: + palworld: + image: thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts + restart: unless-stopped + container_name: palworld-server + stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop + ports: + - 8211:8211/udp + - 27015:27015/udp + environment: + PUID: 1000 + PGID: 1000 + PORT: 8211 # Optional but recommended + PLAYERS: 16 # Optional but recommended + SERVER_PASSWORD: "worldofpals" # Optional but recommended + MULTITHREADING: true + RCON_ENABLED: true + RCON_PORT: 25575 + TZ: "UTC" + ADMIN_PASSWORD: "adminPasswordHere" + COMMUNITY: false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! + SERVER_NAME: "World of Pals" + SERVER_DESCRIPTION: "palworld-server-docker by Thijs van Loef" + volumes: + - ./palworld:/palworld/ +``` + +As an alternative, you can copy the [.env.example](https://github.com/thijsvanloef/palworld-server-docker/blob/main/.env.example) file to a new file called **.env** file. +Modify it to your needs, check out the [environment variables](#environment-variables) section to check the correct +values. Modify your [docker-compose.yml](https://github.com/thijsvanloef/palworld-server-docker/blob/main/docker-compose.yml) to this: + +```yml +services: + palworld: + image: thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts + restart: unless-stopped + container_name: palworld-server + stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop + ports: + - 8211:8211/udp + - 27015:27015/udp + env_file: + - .env + volumes: + - ./palworld:/palworld/ +``` + +### Docker Run + +```bash +docker run -d \ + --name palworld-server \ + -p 8211:8211/udp \ + -p 27015:27015/udp \ + -v ./palworld:/palworld/ \ + -e PUID=1000 \ + -e PGID=1000 \ + -e PORT=8211 \ + -e PLAYERS=16 \ + -e MULTITHREADING=true \ + -e RCON_ENABLED=true \ + -e RCON_PORT=25575 \ + -e TZ=UTC \ + -e ADMIN_PASSWORD="adminPasswordHere" \ + -e SERVER_PASSWORD="worldofpals" \ + -e COMMUNITY=false \ + -e SERVER_NAME="World of Pals" \ + -e SERVER_DESCRIPTION="palworld-server-docker by Thijs van Loef" \ + --restart unless-stopped \ + --stop-timeout 30 \ + thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts +``` + +As an alternative, you can copy the [.env.example](https://github.com/thijsvanloef/palworld-server-docker/blob/main/.env.example) file to a new file called **.env** file. +Modify it to your needs, check out the [environment variables](#environment-variables) section to check the +correct values. Change your docker run command to this: + +```bash +docker run -d \ + --name palworld-server \ + -p 8211:8211/udp \ + -p 27015:27015/udp \ + -v ./palworld:/palworld/ \ + --env-file .env \ + --restart unless-stopped \ + --stop-timeout 30 \ + thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts +``` + +## Starting the server + +Use `docker compose up -d` to start the server in the background + +## Stopping the server + +Use `docker compose stop` to stop the server + +Use `docker compose down --rmi all` to stop and remove the server and remove the docker image from your computer diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/_category_.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/_category_.json new file mode 100644 index 000000000..b07efb99a --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Guides", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/automatic-reboots.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/automatic-reboots.md new file mode 100644 index 000000000..55168a870 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/automatic-reboots.md @@ -0,0 +1,30 @@ +--- +sidebar_position: 4 +--- + +# Automatic Reboots + +## Configuring Automatic Reboots with Cron + +To be able to use automatic reboots with this server `RCON_ENABLED` enabled. + +:::warning + +If docker restart is not set to policy `always` or `unless-stopped` +then the server will shutdown and will need to be manually restarted. + +The example docker run command and docker compose file in [the Quicksetup](https://palworld-server-docker.loef.dev/) +already use the needed policy +::: + +Set `AUTO_REBOOT_ENABLED` enable or disable automatic reboots (Default is disabled) + +`AUTO_REBOOT_CRON_EXPRESSION` is a cron expression, in a Cron-Expression you define an interval for when to run jobs. + +:::tip +This image uses Supercronic for crons +see [supercronic](https://github.com/aptible/supercronic#crontab-format) +or [Crontab Generator](https://crontab-generator.org). +::: +Set `AUTO_REBOOT_CRON_EXPRESSION` to change the set the schedule, default is everynight at midnight according to the +timezone set with TZ diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/automatic-updates.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/automatic-updates.md new file mode 100644 index 000000000..c4ce2e48d --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/automatic-updates.md @@ -0,0 +1,32 @@ +--- +sidebar_position: 5 +--- + +# Automatic Updates + +## Configuring Automatic Updates with Cron + +To be able to use automatic Updates with this Server the following environment variables **have** to be set to `true`: + +* `RCON_ENABLED` +* `UPDATE_ON_BOOT` + +:::warning +If docker restart is not set to policy `always` or `unless-stopped` +then the server will shutdown and will need to be manually restarted. + +The example docker run command and docker compose file in [the Quicksetup](https://palworld-server-docker.loef.dev/) +already use the needed policy +::: + +Set `AUTO_UPDATE_ENABLED` enable or disable automatic updates (Default is disabled) + +`AUTO_UPDATE_CRON_EXPRESSION` is a cron expression, in a Cron-Expression you define an interval for when to run jobs. + +:::tip +This image uses Supercronic for crons +see [supercronic](https://github.com/aptible/supercronic#crontab-format) +or [Crontab Generator](https://crontab-generator.org). +::: + +Set `AUTO_UPDATE_CRON_EXPRESSION` to change the default schedule. diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/_category_.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/_category_.json new file mode 100644 index 000000000..66e64ace1 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Backup", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/automated-backup.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/automated-backup.md new file mode 100644 index 000000000..f9ca69ce6 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/automated-backup.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 3 +--- + +# Configure automated backups + +The server is automatically backed up everynight at midnight according to the timezone set with TZ + +Set BACKUP_ENABLED enable or disable automatic backups (Default is enabled) + +BACKUP_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs. + +:::tip +This image uses Supercronic for crons +see [supercronic](https://github.com/aptible/supercronic#crontab-format) +or [Crontab Generator](https://crontab-generator.org). +::: + +Set BACKUP_CRON_EXPRESSION to change the default schedule. + +**Example Usage**: If BACKUP_CRON_EXPRESSION to `0 2 * * *`, the backup script will run every day at 2:00 AM. diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/creating-backup.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/creating-backup.md new file mode 100644 index 000000000..8cd70c530 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/creating-backup.md @@ -0,0 +1,15 @@ +--- +sidebar_position: 1 +--- + +# Creating a backup + +To create a backup of the game's save at the current point in time, use the command: + +```bash +docker exec palworld-server backup +``` + +This will create a backup at `/palworld/backups/` + +The server will run a save before the backup if rcon is enabled. diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/restoring-backup.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/restoring-backup.md new file mode 100644 index 000000000..a8bca45fa --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/backup/restoring-backup.md @@ -0,0 +1,47 @@ +--- +sidebar_position: 2 +--- + +# Restoring a backup + +## Interactively restore from a backup + +To restore from a backup, use the command: + +```bash +docker exec -it palworld-server restore +``` + +The `RCON_ENABLED` environment variable must be set to `true` to use this command. +:::warning +If docker restart is not set to policy `always` or `unless-stopped` then the server will shutdown and +will need to be manually restarted. + +The example docker run command and docker compose file in [the Quicksetup](https://palworld-server-docker.loef.dev/) +already uses the needed policy +::: + +## Manually restore from a backup + +Locate the backup you want to restore in `/palworld/backups/` and decompress it. +Need to stop the server before task. + +```bash +docker compose down +``` + +Delete the old saved data folder located at `palworld/Pal/Saved/SaveGames/0/`. + +Copy the contents of the newly decompressed saved data folder `Saved/SaveGames/0/` to `palworld/Pal/Saved/SaveGames/0/`. + +Replace the DedicatedServerName inside `palworld/Pal/Saved/Config/LinuxServer/GameUserSettings.ini` with the new folder name. + +```ini +DedicatedServerName= # Replace it with your folder name. +``` + +Restart the game. (If you are using Docker Compose) + +```bash +docker compose up -d +``` diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/discord/_category_.json b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/discord/_category_.json new file mode 100644 index 000000000..74bff2c26 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/discord/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Discord integration", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/discord/discord-webhooks.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/discord/discord-webhooks.md new file mode 100644 index 000000000..c5f8346e1 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/guides/discord/discord-webhooks.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 1 +--- + +# Using discord webhooks + +1. Generate a webhook url for your discord server in your discord's server settings. + +2. Set the environment variable with the unique token at the end of the discord webhook url example: `https://discord.com/api/webhooks/1234567890/abcde` + +send discord messages with docker run: + +```sh +-e DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/1234567890/abcde" \ +-e DISCORD_PRE_UPDATE_BOOT_MESSAGE="Server is updating..." \ +``` + +send discord messages with docker compose: + +```yaml +- DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/1234567890/abcde +- DISCORD_PRE_UPDATE_BOOT_MESSAGE=Server is updating... +``` diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md new file mode 100644 index 000000000..639bbf622 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md @@ -0,0 +1,46 @@ +--- +sidebar_position: 4 +--- + +# Known Issues + +## Broadcast command can only send 1 word + +When using Broadcast among RCON's functions, only one word is transmitted. + +As an example, if I use: + +`docker exec -it palworld-server rcon-cli Broadcast "Hello world"` + +only Hello is transmitted. + +## XBox GamePass players unable to join + +At the moment, Xbox Gamepass/Xbox Console players will not be able to join a dedicated server. + +They will need to join players using the invite code and are limited to sessions of 4 players max. + +## [S_API FAIL] + +The server will sometimes output the following error: + +```bash +[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded. +[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded. +[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded. +[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded. +``` + +This can safely be ignored and will not impact the server. + +## Setting breakpad minidump AppID = 2394010 + +This means that the server is up and running, if you still can't connect to it, +it means that you'll need to look at the following: + +* Firewall settings, make sure that you allow port 8211/udp and 27015/udp through your firewall +* Make sure you've correctly port forwarded your 8211/udp 27015/udp + +## FAQ + +[A useful FAQ that gets updated regularly](https://gist.github.com/Toakan/3c78a577c21a21fcc5fa917f3021d70e#file-palworld-server-faq-community-md) diff --git a/docusaurus/i18n/ko/docusaurus-theme-classic/footer.json b/docusaurus/i18n/ko/docusaurus-theme-classic/footer.json new file mode 100644 index 000000000..97cd542fa --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-theme-classic/footer.json @@ -0,0 +1,38 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting started": { + "message": "Getting started", + "description": "The label of footer link with label=Getting started linking to /category/getting-started" + }, + "link.item.label.Guides": { + "message": "Guides", + "description": "The label of footer link with label=Guides linking to /category/guides" + }, + "link.item.label.Advanced": { + "message": "Advanced", + "description": "The label of footer link with label=Advanced linking to /category/advanced" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/UxBxStPAAE" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/thijsvanloef/palworld-server-docker" + }, + "copyright": { + "message": "Copyright © 2024 palworld-server-docker, Built with Docusaurus.", + "description": "The footer copyright" + } +} diff --git a/docusaurus/i18n/ko/docusaurus-theme-classic/navbar.json b/docusaurus/i18n/ko/docusaurus-theme-classic/navbar.json new file mode 100644 index 000000000..428d9d4c3 --- /dev/null +++ b/docusaurus/i18n/ko/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "palworld-server-docker", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Palworld Logo", + "description": "The alt text of navbar logo" + }, + "item.label.Getting started": { + "message": "Getting started", + "description": "Navbar item with label Getting started" + }, + "item.label.Guides": { + "message": "Guides", + "description": "Navbar item with label Guides" + }, + "item.label.Advanced": { + "message": "Advanced", + "description": "Navbar item with label Advanced" + } +} diff --git a/docusaurus/i18n/zh/code.json b/docusaurus/i18n/zh/code.json new file mode 100644 index 000000000..801b208c4 --- /dev/null +++ b/docusaurus/i18n/zh/code.json @@ -0,0 +1,289 @@ +{ + "theme.ErrorPageContent.title": { + "message": "页面已崩溃。", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "回到顶部", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "历史博文", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "历史博文", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "博文列表分页导航", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "较新的博文", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "较旧的博文", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "博文分页导航", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "较新一篇", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "较旧一篇", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "{count} 篇博文", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} 含有标签「{tagName}」", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "查看所有标签", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "切换浅色/暗黑模式(当前为{mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "暗黑模式", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "浅色模式", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "页面路径", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} 个项目", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "文件选项卡", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "上一页", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "下一页", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "{count} 篇文档带有标签", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged}「{tagName}」", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "版本:{versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "此为 {siteTitle} {versionLabel} 版尚未发行的文档。", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "此为 {siteTitle} {versionLabel} 版的文档,现已不再积极维护。", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "最新的文档请参阅 {latestVersionLink} ({versionLabel})。", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "最新版本", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "编辑此页", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "{heading}的直接链接", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": "于 {date} ", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": "由 {user} ", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "最后{byUser}{atDate}更新", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "选择版本", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.NotFound.title": { + "message": "找不到页面", + "description": "The title of the 404 page" + }, + "theme.tags.tagsListLabel": { + "message": "标签:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "警告", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "危险", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "信息", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "备注", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "提示", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "注意", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "关闭", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "最近博文导航", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "复制成功", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "复制代码到剪贴板", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "复制", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "切换自动换行", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "展开侧边栏分类 '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "折叠侧边栏分类 '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "主导航", + "description": "The ARIA label for the main navigation" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "选择语言", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.NotFound.p1": { + "message": "我们找不到您要找的页面。", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "请联系原始链接来源网站的所有者,并告知他们链接已损坏。", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "本页总览", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "阅读更多", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "阅读 {title} 的全文", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "阅读需 {readingTime} 分钟", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "主页面", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "收起侧边栏", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "收起侧边栏", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "文档侧边栏", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "关闭导航栏", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← 回到主菜单", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "切换导航栏", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "展开侧边栏", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "展开侧边栏", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "重试", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "跳到主要内容", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "标签", + "description": "The title of the tag list page" + }, + "theme.unlistedContent.title": { + "message": "未列出页", + "description": "The unlisted content banner title" + }, + "theme.unlistedContent.message": { + "message": "此页面未列出。搜索引擎不会对其索引,只有拥有直接链接的用户才能访问。", + "description": "The unlisted content banner message" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current.json new file mode 100644 index 000000000..2f7aabd44 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,30 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Configuration": { + "message": "Configuration", + "description": "The label for category Configuration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Backup": { + "message": "Backup", + "description": "The label for category Backup in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Discord integration": { + "message": "Discord integration", + "description": "The label for category Discord integration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category Advanced in sidebar tutorialSidebar" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/advanced/_category_.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/advanced/_category_.json new file mode 100644 index 000000000..1be1687f1 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/advanced/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Advanced", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/advanced/kubernetes.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/advanced/kubernetes.md new file mode 100644 index 000000000..fd8214491 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/advanced/kubernetes.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +--- + +# Kubernetes + +All files you will need to deploy this container to kubernetes are located in the [k8s folder](https://github.com/thijsvanloef/palworld-server-docker/tree/main/k8s). + +## Setup Palworld in kubernetes + +Use the following commands to setup this Palworld container in Kubernetes: + +* `kubectl apply -f pvc.yaml` +* `kubectl apply -f configmap.yaml` +* `kubectl apply -f secret.yaml` +* `kubectl apply -f service.yaml` +* `kubectl apply -f deployment.yaml` + +## Using helm chart + +The official helm chart can be found in a seperate repository, [palworld-server-chart](https://github.com/Twinki14/palworld-server-chart) diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/_category_.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/_category_.json new file mode 100644 index 000000000..14206eb29 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Getting Started", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json new file mode 100644 index 000000000..5bea3520b --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Configuration", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md new file mode 100644 index 000000000..82411de3e --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md @@ -0,0 +1,97 @@ +--- +sidebar_position: 2 +--- + +# Game Settings + +## With Environment Variables + +:::warning +These Environment Variables and Settings are subject to change since the game is still in beta. + +Check out the [official webpage for the supported parameters.](https://tech.palworldgame.com/optimize-game-balance) +::: + +Converting server settings to environment variables follow the same principles (with some exceptions): + +* all capital letters +* split words by inserting an underscore +* remove the single letter if the setting starts with one (like 'b') + +For example: + +* Difficulty -> DIFFICULTY +* PalSpawnNumRate -> PAL_SPAWN_NUM_RATE +* bIsPvP -> IS_PVP + +| Variable | Description | Default Value | Allowed Value | +|-------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------------------------------------|----------------------------------------| +| DIFFICULTY | Game Difficulty | None | `None`,`Normal`,`Difficult` | +| DAYTIME_SPEEDRATE | Day time speed - Smaller number means shorter days | 1.000000 | Float | +| NIGHTTIME_SPEEDRATE | Night time speed - Smaller number means shorter nights | 1.000000 | Float | +| EXP_RATE | EXP earn rate | 1.000000 | Float | +| PAL_CAPTURE_RATE | Pal capture rate | 1.000000 | Float | +| PAL_SPAWN_NUM_RATE | Pal appearance rate | 1.000000 | Float | +| PAL_DAMAGE_RATE_ATTACK | Damage from pals multipiler | 1.000000 | Float | +| PAL_DAMAGE_RATE_DEFENSE | Damage to pals multipiler | 1.000000 | Float | +| PLAYER_DAMAGE_RATE_ATTACK | Damage from player multipiler | 1.000000 | Float | +| PLAYER_DAMAGE_RATE_DEFENSE | Damage to player multipiler | 1.000000 | Float | +| PLAYER_STOMACH_DECREASE_RATE | Player hunger depletion rate | 1.000000 | Float | +| PLAYER_STAMINA_DECREASE_RATE | Player stamina reduction rate | 1.000000 | Float | +| PLAYER_AUTO_HP_REGEN_RATE | Player auto HP regeneration rate | 1.000000 | Float | +| PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP | Player sleep HP regeneration rate | 1.000000 | Float | +| PAL_STOMACH_DECREASE_RATE | Pal hunger depletion rate | 1.000000 | Float | +| PAL_STAMINA_DECREASE_RATE | Pal stamina reduction rate | 1.000000 | Float | +| PAL_AUTO_HP_REGEN_RATE | Pal auto HP regeneration rate | 1.000000 | Float | +| PAL_AUTO_HP_REGEN_RATE_IN_SLEEP | Pal sleep health regeneration rate (in Palbox) | 1.000000 | Float | +| BUILD_OBJECT_DAMAGE_RATE | Damage to structure multipiler | 1.000000 | Float | +| BUILD_OBJECT_DETERIORATION_DAMAGE_RATE | Structure determination rate | 1.000000 | Float | +| COLLECTION_DROP_RATE | Getherable items multipiler | 1.000000 | Float | +| COLLECTION_OBJECT_HP_RATE | Getherable objects HP multipiler | 1.000000 | Float | +| COLLECTION_OBJECT_RESPAWN_SPEED_RATE | Getherable objects respawn interval - The smaller the number, the faster the regeneration | 1.000000 | Float | +| ENEMY_DROP_ITEM_RATE | Dropped Items Multipiler | 1.000000 | Float | +| DEATH_PENALTY | Death Penalty None: No death penalty Item: Drops items other than equipment ItemAndEquipment: Drops all items All: Drops all PALs and all items. | All | `None`,`Item`,`ItemAndEquipment`,`All` | +| ENABLE_PLAYER_TO_PLAYER_DAMAGE | Allows players to cause damage to players | False | Boolean | +| ENABLE_FRIENDLY_FIRE | Allow friendly fire | False | Boolean | +| ENABLE_INVADER_ENEMY | Enable invaders | True | Boolean | +| ACTIVE_UNKO | Enable UNKO (?) | False | Boolean | +| ENABLE_AIM_ASSIST_PAD | Enable controller aim assist | True | Boolean | +| ENABLE_AIM_ASSIST_KEYBOARD | Enable Keyboard aim assist | False | Boolean | +| DROP_ITEM_MAX_NUM | Maximum number of drops in the world | 3000 | Integer | +| DROP_ITEM_MAX_NUM_UNKO | Maximum number of UNKO drops in the world | 100 | Integer | +| BASE_CAMP_MAX_NUM | Maximum number of base camps | 128 | Integer | +| BASE_CAMP_WORKER_MAX_NUM | Maximum number of workers | 15 | Integer | +| DROP_ITEM_ALIVE_MAX_HOURS | Time it takes for items to despawn in hours | 1.000000 | Float | +| AUTO_RESET_GUILD_NO_ONLINE_PLAYERS | Automatically reset guild when no players are online | False | Bool | +| AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS | Time to automatically reset guild when no players are online | 72.000000 | Float | +| GUILD_PLAYER_MAX_NUM | Max player of Guild | 20 | Integer | +| PAL_EGG_DEFAULT_HATCHING_TIME | Time(h) to incubate massive egg | 72.000000 | Float | +| WORK_SPEED_RATE | Work speed muliplier | 1.000000 | Float | +| IS_MULTIPLAY | Enable multiplayer | False | Boolean | +| IS_PVP | Enable PVP | False | Boolean | +| CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP | Allow players from other guilds to pick up death penalty items | False | Boolean | +| ENABLE_NON_LOGIN_PENALTY | Enable non-login penalty | True | Boolean | +| ENABLE_FAST_TRAVEL | Enable fast travel | True | Boolean | +| IS_START_LOCATION_SELECT_BY_MAP | Enable selecting of start location | True | Boolean | +| EXIST_PLAYER_AFTER_LOGOUT | Toggle for deleting players when they log off | False | Boolean | +| ENABLE_DEFENSE_OTHER_GUILD_PLAYER | Allows defense against other guild players | False | Boolean | +| COOP_PLAYER_MAX_NUM | Maximum number of players in a guild | 4 | Integer | +| REGION | Region | | String | +| USEAUTH | Use authentication | True | Boolean | +| BAN_LIST_URL | Which ban list to use | [https://api.palworldgame.com/api/banlist.txt](https://api.palworldgame.com/api/banlist.txt) | string | + +### Manually + +When the server starts, a `PalWorldSettings.ini` file will be created in the following location: `/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini` + +Please keep in mind that the ENV variables will always overwrite the changes made to `PalWorldSettings.ini`. + +:::warning +Changes can only be made to `PalWorldSettings.ini` while the server is off. + +Any changes made while the server is live will be overwritten when the server stops. +::: + +For a more detailed list of server settings go to: [Palworld Wiki](https://palworld.wiki.gg/wiki/PalWorldSettings.ini) + +For more detailed server settings explanations go to: [shockbyte](https://shockbyte.com/billing/knowledgebase/1189/How-to-Configure-your-Palworld-server.html) diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/server-commands.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/server-commands.md new file mode 100644 index 000000000..e08335ef7 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/server-commands.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 3 +--- + +# Server Commands (RCON) + +How to use RCON to interact with the server. + +## RCON + +RCON is enabled by default for the palworld-server-docker image. +Opening the RCON CLI is quite easy: + +```bash +docker exec -it palworld-server rcon-cli " " +``` + +For example, you can broadcast a message to everyone in the server with the following command: + +```bash +docker exec -it palworld-server rcon-cli "Broadcast Hello everyone" +``` + +This will open a CLI that uses RCON to write commands to the Palworld Server. + +### List of server commands + +| Command | Info | +|----------------------------------|-----------------------------------------------------| +| Shutdown (Seconds) (MessageText) | The server is shut down after the number of Seconds | +| DoExit | Force stop the server. | +| Broadcast | Send message to all player in the server | +| KickPlayer (SteamID) | Kick player from the server.. | +| BanPlayer (SteamID) | BAN player from the server. | +| TeleportToPlayer (SteamID) | Teleport to current location of target player. | +| TeleportToMe (SteamID) | Target player teleport to your current location | +| ShowPlayers | Show information on all connected players. | +| Info | Show server information. | +| Save | Save the world data. | + +For a full list of commands go to: [https://tech.palworldgame.com/server-commands](https://tech.palworldgame.com/server-commands) diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md new file mode 100644 index 000000000..ef469e04e --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 1 +--- + +# Server Settings + +This part will explain how to configure the server. + +## Environment variables + +You can use the following values to change the settings of the server on boot. +It is highly recommended you set the following environment values before starting the server: + +* PLAYERS +* PORT +* PUID +* PGID + +| Variable | Info | Default Values | Allowed Values | +|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|---------------------------------------------------------------------------------------| +| TZ | Timezone used for time stamping backup server | UTC | See [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | +| PLAYERS* | Max amount of players that are able to join the server | 16 | 1-32 | +| PORT* | UDP port that the server will expose | 8211 | 1024-65535 | +| PUID* | The uid of the user the server should run as | 1000 | !0 | +| PGID* | The gid of the group the server should run as | 1000 | !0 | +| MULTITHREADING** | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false | +| COMMUNITY | Whether or not the server shows up in the community server browser (USE WITH SERVER_PASSWORD) | false | true/false | +| PUBLIC_IP | You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | x.x.x.x | +| PUBLIC_PORT | You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | 1024-65535 | +| SERVER_NAME | A name for your server | | "string" | +| SERVER_DESCRIPTION | Your server Description | | "string" | +| SERVER_PASSWORD | Secure your community server with a password | | "string" | +| ADMIN_PASSWORD | Secure administration access in the server with a password | | "string" | +| UPDATE_ON_BOOT** | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false | +| RCON_ENABLED*** | Enable RCON for the Palworld server | true | true/false | +| RCON_PORT | RCON port to connect to | 25575 | 1024-65535 | +| QUERY_PORT | Query port used to communicate with Steam servers | 27015 | 1024-65535 | +| BACKUP_CRON_EXPRESSION | Setting affects frequency of automatic backups. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Backups with Cron](https://palworld-server-docker.loef.dev/guides/backup/automated-backup) | +| BACKUP_ENABLED | Enables automatic backups | true | true/false | +| DELETE_OLD_BACKUPS | Delete backups after a certain number of days | false | true/false | +| OLD_BACKUP_DAYS | How many days to keep backups | 30 | any positive integer | +| AUTO_UPDATE_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 \* \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Updates with Cron](https://palworld-server-docker.loef.dev/guides/automatic-reboots) | +| AUTO_UPDATE_ENABLED | Enables automatic updates | false | true/false | +| AUTO_UPDATE_WARN_MINUTES | How long to wait to update the server, after the player were informed. | 30 | !0 | +| AUTO_REBOOT_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Reboots with Cron](https://palworld-server-docker.loef.dev/guides/automatic-updates) | +| AUTO_REBOOT_ENABLED | Enables automatic reboots | false | true/false | +| AUTO_REBOOT_WARN_MINUTES | How long to wait to reboot the server, after the player were informed. | 5 | !0 | +| AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE | Restart the Server even if there are players online. | false | true/false | +| DISCORD_WEBHOOK_URL | Discord webhook url found after creating a webhook on a discord server | | `https://discord.com/api/webhooks/` | +| DISCORD_CONNECT_TIMEOUT | Discord command initial connection timeout | 30 | !0 | +| DISCORD_MAX_TIMEOUT | Discord total hook timeout | 30 | !0 | +| DISCORD_PRE_UPDATE_BOOT_MESSAGE | Discord message sent when server begins updating | Server is updating... | "string" | +| DISCORD_POST_UPDATE_BOOT_MESSAGE | Discord message sent when server completes updating | Server update complete! | "string" | +| DISCORD_PRE_START_MESSAGE | Discord message sent when server begins to start | Server is started! | "string" | +| DISCORD_PRE_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown | Server is shutting down... | "string" | +| DISCORD_POST_SHUTDOWN_MESSAGE | Discord message sent when server has stopped | Server is stopped! | "string" | + +*highly recommended to set + +** Make sure you know what you are doing when running this option enabled + +*** Required for docker stop to save and gracefully close the server + +### Game Ports + +The server needs the following ports by default. + +| Port | Info | +|-------|------------------| +| 8211 | Game Port (UDP) | +| 27015 | Query Port (UDP) | +| 25575 | RCON Port (TCP) | diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/quick-setup.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/quick-setup.md new file mode 100644 index 000000000..c420d573a --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/quick-setup.md @@ -0,0 +1,128 @@ +--- +sidebar_position: 1 +slug: / +--- + +# Quick Setup + +Let's get you on your way with the Palworld Dedicated server! + +:::warning +At the moment, Xbox Gamepass/Xbox Console players will not be able to join a dedicated server. + +They will need to join players using the invite code and are limited to sessions of 4 players max. +::: + +## Server Requirements + +| Resource | Minimum | Recommended | +|----------|---------|------------------------------------------| +| CPU | 4 cores | 4+ cores | +| RAM | 16GB | Recommend over 32GB for stable operation | +| Storage | 8GB | 20GB | + +## Docker Compose + +This repository includes an example +[docker-compose.yml](https://github.com/thijsvanloef/palworld-server-docker/blob/main/docker-compose.yml) +file you can use to set up your server. + +```yml +services: + palworld: + image: thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts + restart: unless-stopped + container_name: palworld-server + stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop + ports: + - 8211:8211/udp + - 27015:27015/udp + environment: + PUID: 1000 + PGID: 1000 + PORT: 8211 # Optional but recommended + PLAYERS: 16 # Optional but recommended + SERVER_PASSWORD: "worldofpals" # Optional but recommended + MULTITHREADING: true + RCON_ENABLED: true + RCON_PORT: 25575 + TZ: "UTC" + ADMIN_PASSWORD: "adminPasswordHere" + COMMUNITY: false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! + SERVER_NAME: "World of Pals" + SERVER_DESCRIPTION: "palworld-server-docker by Thijs van Loef" + volumes: + - ./palworld:/palworld/ +``` + +As an alternative, you can copy the [.env.example](https://github.com/thijsvanloef/palworld-server-docker/blob/main/.env.example) file to a new file called **.env** file. +Modify it to your needs, check out the [environment variables](#environment-variables) section to check the correct +values. Modify your [docker-compose.yml](https://github.com/thijsvanloef/palworld-server-docker/blob/main/docker-compose.yml) to this: + +```yml +services: + palworld: + image: thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts + restart: unless-stopped + container_name: palworld-server + stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop + ports: + - 8211:8211/udp + - 27015:27015/udp + env_file: + - .env + volumes: + - ./palworld:/palworld/ +``` + +### Docker Run + +```bash +docker run -d \ + --name palworld-server \ + -p 8211:8211/udp \ + -p 27015:27015/udp \ + -v ./palworld:/palworld/ \ + -e PUID=1000 \ + -e PGID=1000 \ + -e PORT=8211 \ + -e PLAYERS=16 \ + -e MULTITHREADING=true \ + -e RCON_ENABLED=true \ + -e RCON_PORT=25575 \ + -e TZ=UTC \ + -e ADMIN_PASSWORD="adminPasswordHere" \ + -e SERVER_PASSWORD="worldofpals" \ + -e COMMUNITY=false \ + -e SERVER_NAME="World of Pals" \ + -e SERVER_DESCRIPTION="palworld-server-docker by Thijs van Loef" \ + --restart unless-stopped \ + --stop-timeout 30 \ + thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts +``` + +As an alternative, you can copy the [.env.example](https://github.com/thijsvanloef/palworld-server-docker/blob/main/.env.example) file to a new file called **.env** file. +Modify it to your needs, check out the [environment variables](#environment-variables) section to check the +correct values. Change your docker run command to this: + +```bash +docker run -d \ + --name palworld-server \ + -p 8211:8211/udp \ + -p 27015:27015/udp \ + -v ./palworld:/palworld/ \ + --env-file .env \ + --restart unless-stopped \ + --stop-timeout 30 \ + thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts +``` + +## Starting the server + +Use `docker compose up -d` to start the server in the background + +## Stopping the server + +Use `docker compose stop` to stop the server + +Use `docker compose down --rmi all` to stop and remove the server and remove the docker image from your computer diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/_category_.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/_category_.json new file mode 100644 index 000000000..b07efb99a --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Guides", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/automatic-reboots.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/automatic-reboots.md new file mode 100644 index 000000000..55168a870 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/automatic-reboots.md @@ -0,0 +1,30 @@ +--- +sidebar_position: 4 +--- + +# Automatic Reboots + +## Configuring Automatic Reboots with Cron + +To be able to use automatic reboots with this server `RCON_ENABLED` enabled. + +:::warning + +If docker restart is not set to policy `always` or `unless-stopped` +then the server will shutdown and will need to be manually restarted. + +The example docker run command and docker compose file in [the Quicksetup](https://palworld-server-docker.loef.dev/) +already use the needed policy +::: + +Set `AUTO_REBOOT_ENABLED` enable or disable automatic reboots (Default is disabled) + +`AUTO_REBOOT_CRON_EXPRESSION` is a cron expression, in a Cron-Expression you define an interval for when to run jobs. + +:::tip +This image uses Supercronic for crons +see [supercronic](https://github.com/aptible/supercronic#crontab-format) +or [Crontab Generator](https://crontab-generator.org). +::: +Set `AUTO_REBOOT_CRON_EXPRESSION` to change the set the schedule, default is everynight at midnight according to the +timezone set with TZ diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/automatic-updates.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/automatic-updates.md new file mode 100644 index 000000000..c4ce2e48d --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/automatic-updates.md @@ -0,0 +1,32 @@ +--- +sidebar_position: 5 +--- + +# Automatic Updates + +## Configuring Automatic Updates with Cron + +To be able to use automatic Updates with this Server the following environment variables **have** to be set to `true`: + +* `RCON_ENABLED` +* `UPDATE_ON_BOOT` + +:::warning +If docker restart is not set to policy `always` or `unless-stopped` +then the server will shutdown and will need to be manually restarted. + +The example docker run command and docker compose file in [the Quicksetup](https://palworld-server-docker.loef.dev/) +already use the needed policy +::: + +Set `AUTO_UPDATE_ENABLED` enable or disable automatic updates (Default is disabled) + +`AUTO_UPDATE_CRON_EXPRESSION` is a cron expression, in a Cron-Expression you define an interval for when to run jobs. + +:::tip +This image uses Supercronic for crons +see [supercronic](https://github.com/aptible/supercronic#crontab-format) +or [Crontab Generator](https://crontab-generator.org). +::: + +Set `AUTO_UPDATE_CRON_EXPRESSION` to change the default schedule. diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/_category_.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/_category_.json new file mode 100644 index 000000000..66e64ace1 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Backup", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/automated-backup.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/automated-backup.md new file mode 100644 index 000000000..f9ca69ce6 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/automated-backup.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 3 +--- + +# Configure automated backups + +The server is automatically backed up everynight at midnight according to the timezone set with TZ + +Set BACKUP_ENABLED enable or disable automatic backups (Default is enabled) + +BACKUP_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs. + +:::tip +This image uses Supercronic for crons +see [supercronic](https://github.com/aptible/supercronic#crontab-format) +or [Crontab Generator](https://crontab-generator.org). +::: + +Set BACKUP_CRON_EXPRESSION to change the default schedule. + +**Example Usage**: If BACKUP_CRON_EXPRESSION to `0 2 * * *`, the backup script will run every day at 2:00 AM. diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/creating-backup.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/creating-backup.md new file mode 100644 index 000000000..8cd70c530 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/creating-backup.md @@ -0,0 +1,15 @@ +--- +sidebar_position: 1 +--- + +# Creating a backup + +To create a backup of the game's save at the current point in time, use the command: + +```bash +docker exec palworld-server backup +``` + +This will create a backup at `/palworld/backups/` + +The server will run a save before the backup if rcon is enabled. diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/restoring-backup.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/restoring-backup.md new file mode 100644 index 000000000..a8bca45fa --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/backup/restoring-backup.md @@ -0,0 +1,47 @@ +--- +sidebar_position: 2 +--- + +# Restoring a backup + +## Interactively restore from a backup + +To restore from a backup, use the command: + +```bash +docker exec -it palworld-server restore +``` + +The `RCON_ENABLED` environment variable must be set to `true` to use this command. +:::warning +If docker restart is not set to policy `always` or `unless-stopped` then the server will shutdown and +will need to be manually restarted. + +The example docker run command and docker compose file in [the Quicksetup](https://palworld-server-docker.loef.dev/) +already uses the needed policy +::: + +## Manually restore from a backup + +Locate the backup you want to restore in `/palworld/backups/` and decompress it. +Need to stop the server before task. + +```bash +docker compose down +``` + +Delete the old saved data folder located at `palworld/Pal/Saved/SaveGames/0/`. + +Copy the contents of the newly decompressed saved data folder `Saved/SaveGames/0/` to `palworld/Pal/Saved/SaveGames/0/`. + +Replace the DedicatedServerName inside `palworld/Pal/Saved/Config/LinuxServer/GameUserSettings.ini` with the new folder name. + +```ini +DedicatedServerName= # Replace it with your folder name. +``` + +Restart the game. (If you are using Docker Compose) + +```bash +docker compose up -d +``` diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/discord/_category_.json b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/discord/_category_.json new file mode 100644 index 000000000..74bff2c26 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/discord/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Discord integration", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/discord/discord-webhooks.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/discord/discord-webhooks.md new file mode 100644 index 000000000..c5f8346e1 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/guides/discord/discord-webhooks.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 1 +--- + +# Using discord webhooks + +1. Generate a webhook url for your discord server in your discord's server settings. + +2. Set the environment variable with the unique token at the end of the discord webhook url example: `https://discord.com/api/webhooks/1234567890/abcde` + +send discord messages with docker run: + +```sh +-e DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/1234567890/abcde" \ +-e DISCORD_PRE_UPDATE_BOOT_MESSAGE="Server is updating..." \ +``` + +send discord messages with docker compose: + +```yaml +- DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/1234567890/abcde +- DISCORD_PRE_UPDATE_BOOT_MESSAGE=Server is updating... +``` diff --git a/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/known-issues/known-issues.md b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/known-issues/known-issues.md new file mode 100644 index 000000000..639bbf622 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current/known-issues/known-issues.md @@ -0,0 +1,46 @@ +--- +sidebar_position: 4 +--- + +# Known Issues + +## Broadcast command can only send 1 word + +When using Broadcast among RCON's functions, only one word is transmitted. + +As an example, if I use: + +`docker exec -it palworld-server rcon-cli Broadcast "Hello world"` + +only Hello is transmitted. + +## XBox GamePass players unable to join + +At the moment, Xbox Gamepass/Xbox Console players will not be able to join a dedicated server. + +They will need to join players using the invite code and are limited to sessions of 4 players max. + +## [S_API FAIL] + +The server will sometimes output the following error: + +```bash +[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded. +[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded. +[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded. +[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded. +``` + +This can safely be ignored and will not impact the server. + +## Setting breakpad minidump AppID = 2394010 + +This means that the server is up and running, if you still can't connect to it, +it means that you'll need to look at the following: + +* Firewall settings, make sure that you allow port 8211/udp and 27015/udp through your firewall +* Make sure you've correctly port forwarded your 8211/udp 27015/udp + +## FAQ + +[A useful FAQ that gets updated regularly](https://gist.github.com/Toakan/3c78a577c21a21fcc5fa917f3021d70e#file-palworld-server-faq-community-md) diff --git a/docusaurus/i18n/zh/docusaurus-theme-classic/footer.json b/docusaurus/i18n/zh/docusaurus-theme-classic/footer.json new file mode 100644 index 000000000..97cd542fa --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-theme-classic/footer.json @@ -0,0 +1,38 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting started": { + "message": "Getting started", + "description": "The label of footer link with label=Getting started linking to /category/getting-started" + }, + "link.item.label.Guides": { + "message": "Guides", + "description": "The label of footer link with label=Guides linking to /category/guides" + }, + "link.item.label.Advanced": { + "message": "Advanced", + "description": "The label of footer link with label=Advanced linking to /category/advanced" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/UxBxStPAAE" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/thijsvanloef/palworld-server-docker" + }, + "copyright": { + "message": "Copyright © 2024 palworld-server-docker, Built with Docusaurus.", + "description": "The footer copyright" + } +} diff --git a/docusaurus/i18n/zh/docusaurus-theme-classic/navbar.json b/docusaurus/i18n/zh/docusaurus-theme-classic/navbar.json new file mode 100644 index 000000000..428d9d4c3 --- /dev/null +++ b/docusaurus/i18n/zh/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "palworld-server-docker", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Palworld Logo", + "description": "The alt text of navbar logo" + }, + "item.label.Getting started": { + "message": "Getting started", + "description": "Navbar item with label Getting started" + }, + "item.label.Guides": { + "message": "Guides", + "description": "Navbar item with label Guides" + }, + "item.label.Advanced": { + "message": "Advanced", + "description": "Navbar item with label Advanced" + } +}