diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 7338c3824..caa1f47f6 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -4,6 +4,10 @@ on: # yamllint disable-line rule:truthy pull_request: workflow_call: +concurrency: + group: '${{ github.workflow }} @ ${{ github.ref }}' + cancel-in-progress: true + jobs: unit-test-amd64: name: Docker - Test (amd64) @@ -30,19 +34,7 @@ jobs: -p 27015:27015/udp \ -p 25575:25575/tcp \ -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" \ + --env-file .env.example \ --restart unless-stopped \ --stop-timeout 30 \ ${{ github.run_id }} @@ -79,7 +71,7 @@ jobs: nc -z -u -v 127.0.0.1 27015 || exit 1 nc -z -v 127.0.0.1 25575 || exit 1 - - name: Test the backup command functions + - name: Test the backup script run: | docker exec palworld-server backup if [ ! -f ./palworld/backups/palworld-save-*.tar.gz ]; then @@ -117,7 +109,7 @@ jobs: with: file: ./Dockerfile load: true - tags: ${{ github.run_id }} + tags: ${{ github.run_id }}:arm64 platforms: linux/arm64 - name: Run server @@ -129,26 +121,14 @@ jobs: -p 27015:27015/udp \ -p 25575:25575/tcp \ -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" \ + --env-file .env.example \ --restart unless-stopped \ --stop-timeout 30 \ - ${{ github.run_id }} + ${{ github.run_id }}:arm64 - name: Wait for server to start run: | - TIMEOUT_SECONDS=400 + TIMEOUT_SECONDS=600 START_TIME=$(date +%s) while ! docker logs palworld-server 2>&1 | grep -q "Setting breakpad minidump AppID"; do @@ -178,7 +158,7 @@ jobs: nc -z -u -v 127.0.0.1 27015 || exit 1 nc -z -v 127.0.0.1 25575 || exit 1 - - name: Test the backup command functions + - name: Test the backup script run: | docker exec palworld-server backup if [ ! -f ./palworld/backups/palworld-save-*.tar.gz ]; then diff --git a/README.md b/README.md index 37b99cd4e..8cef6ee13 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,10 @@ Massive shoutout to the following sponsors!
+## Official Documentation + +[![Documentation](https://github.com/thijsvanloef/palworld-server-docker/assets/58031337/b92d76d1-5efb-438d-9ffd-5385544a831b)](https://palworld-server-docker.loef.dev/) + ## Server Requirements | Resource | Minimum | Recommended | diff --git a/docs/kr/README.md b/docs/kr/README.md index 93a9ec01a..6c7946a25 100644 --- a/docs/kr/README.md +++ b/docs/kr/README.md @@ -34,6 +34,10 @@ +## Official Documentation + +[![Documentation](https://github.com/thijsvanloef/palworld-server-docker/assets/58031337/b92d76d1-5efb-438d-9ffd-5385544a831b)](https://palworld-server-docker.loef.dev/ko/) + ## 서버 요구 사양 | 리소스 | 최소 | 추천 | diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 4467909ad..d46299e71 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -40,6 +40,10 @@ +## Official Documentation + +[![Documentation](https://github.com/thijsvanloef/palworld-server-docker/assets/58031337/b92d76d1-5efb-438d-9ffd-5385544a831b)](https://palworld-server-docker.loef.dev/zh/) + ## 服务器配置需求 | 资源 | 最小 | 推荐 | diff --git a/docusaurus/docs/getting-started/configuration/game-settings.md b/docusaurus/docs/getting-started/configuration/game-settings.md index 82411de3e..2af0efa2c 100644 --- a/docusaurus/docs/getting-started/configuration/game-settings.md +++ b/docusaurus/docs/getting-started/configuration/game-settings.md @@ -4,6 +4,8 @@ sidebar_position: 2 # Game Settings +Changing Game Settings with Environment variables. + ## With Environment Variables :::warning diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index ef469e04e..fecd11dfc 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -4,7 +4,7 @@ sidebar_position: 1 # Server Settings -This part will explain how to configure the server. +Changing Server Settings using environment variables. ## Environment variables diff --git a/docusaurus/docs/getting-started/quick-setup.md b/docusaurus/docs/getting-started/quick-setup.md index d4219dcbc..0528cf2d9 100644 --- a/docusaurus/docs/getting-started/quick-setup.md +++ b/docusaurus/docs/getting-started/quick-setup.md @@ -13,6 +13,11 @@ At the moment, Xbox Gamepass/Xbox Console players will not be able to join a ded They will need to join players using the invite code and are limited to sessions of 4 players max. ::: +## Prerequisites + +* Virtualization enabled in the BIOS/UEFI +* Must have [Docker](https://docs.docker.com/engine/install/) installed + ## Server Requirements | Resource | Minimum | Recommended | @@ -55,9 +60,12 @@ services: - ./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](https://palworld-server-docker.loef.dev/getting-started/configuration/server-settings#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: +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](https://palworld-server-docker.loef.dev/getting-started/configuration/server-settings#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: @@ -75,7 +83,18 @@ services: - ./palworld:/palworld/ ``` -### Docker Run +### Starting the server + +Use `docker compose up -d` in the same folder as the `docker-compose.yml` to start the server in the background + +### Stopping the server + +Use `docker compose stop` in the same folder as the `docker-compose.yml` to stop the server + +Use `docker compose down --rmi all` in the same folder as the `docker-compose.yml` +to stop and remove the server and remove the docker image from your computer + +## Docker Run ```bash docker run -d \ @@ -101,9 +120,12 @@ docker run -d \ 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. +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](https://palworld-server-docker.loef.dev/getting-started/configuration/server-settings#environment-variables) section to check the -correct values. Change your docker run command to this: +correct values. + +Change your docker run command to this: ```bash docker run -d \ @@ -116,13 +138,3 @@ docker run -d \ --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/docs/guides/automatic-reboots.md b/docusaurus/docs/guides/automatic-reboots.md index dea79de0d..6ab44a4b9 100644 --- a/docusaurus/docs/guides/automatic-reboots.md +++ b/docusaurus/docs/guides/automatic-reboots.md @@ -6,7 +6,9 @@ sidebar_position: 4 ## Configuring Automatic Reboots with Cron -To be able to use automatic reboots with this server `RCON_ENABLED` enabled. +To be able to use automatic reboots with this Server the following environment variables **have** to be set to `true`: + +* `RCON_ENABLED` :::warning @@ -17,9 +19,12 @@ The example docker run command and docker compose file in [the Quicksetup](https already use the needed policy ::: -Set `AUTO_REBOOT_ENABLED` to `true` or `false` to 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. +| Variable | Info | Default Values | Allowed Values | +|------------------------------------|------------------------------------------------------------------------|----------------|-------------------------------------------------------------------------------------------------------------------| +| AUTO_REBOOT_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Backups with Cron](#configuring-automatic-reboots-with-cron) | +| 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 | :::tip This image uses Supercronic for crons diff --git a/docusaurus/docs/guides/automatic-updates.md b/docusaurus/docs/guides/automatic-updates.md index c4ce2e48d..f85aee382 100644 --- a/docusaurus/docs/guides/automatic-updates.md +++ b/docusaurus/docs/guides/automatic-updates.md @@ -19,10 +19,11 @@ The example docker run command and docker compose file in [the Quicksetup](https 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. - +| Variable | Info | Default Values | Allowed Values | +|-----------------------------|----------------------------------------------------------------------------------------------------------------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------| +| AUTO_UPDATE_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 \* \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Backups with Cron](https://palworld-server-docker.loef.dev/guides/backup/automated-backup) | +| 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. (This will be ignored, if no Players are connected) | 30 | !0 | :::tip This image uses Supercronic for crons see [supercronic](https://github.com/aptible/supercronic#crontab-format) diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index 36c7213db..deacf113b 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -4,6 +4,8 @@ sidebar_position: 5 # Known Issues +Known issues of using this Docker image. + ## Broadcast command can only send 1 word When using Broadcast among RCON's functions, only one word is transmitted. diff --git a/docusaurus/docusaurus.config.js b/docusaurus/docusaurus.config.js index 5723ee6c4..35e8c5391 100644 --- a/docusaurus/docusaurus.config.js +++ b/docusaurus/docusaurus.config.js @@ -31,7 +31,7 @@ const config = { // may want to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', - locales: ['en', 'ko', 'zh'], + locales: ['en', 'ko', 'zh', 'nl'], localeConfigs:{ en: { label: 'English', @@ -42,6 +42,9 @@ const config = { zh: { label: 'Simplified Chinese', }, + nl: { + label: 'Dutch', + }, } }, diff --git a/docusaurus/i18n/nl/code.json b/docusaurus/i18n/nl/code.json new file mode 100644 index 000000000..b224a4797 --- /dev/null +++ b/docusaurus/i18n/nl/code.json @@ -0,0 +1,420 @@ +{ + "theme.ErrorPageContent.title": { + "message": "Deze pagina is gecrasht.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Scroll naar boven", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archief", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archief", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Paginanavigatie blog", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Nieuwere items", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Oudere items", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Paginanavigatie blog", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Nieuwer bericht", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Ouder bericht", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "Een bericht|{count} berichten", + "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} getagd met \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "Laat alle tags zien", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "Schakel tussen donkere en lichte modus (momenteel {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "donkere modus", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "lichte modus", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Broodkruimels", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} artikelen", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Documentatie pagina", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Vorige", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Volgende", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Een artikel getagd|{count} artikelen getagd", + "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} met \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Versie: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Dit is nog niet uitgegeven documentatie voor {siteTitle}, versie {versionLabel}", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Dit is de documentatie voor {siteTitle} {versionLabel}, welke niet langer actief wordt onderhouden.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Voor de huidige documentatie, zie de {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "laatste versie", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Bewerk deze pagina", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direct link naar {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " op {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " door {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Laatst bijgewerkt{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versies", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.NotFound.title": { + "message": "Pagina niet gevonden", + "description": "The title of the 404 page" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "pas op", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "gevaar", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "notitie", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "Waarschuwing", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Sluiten", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navigatie recente blogitems", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Gekopieerd", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Kopieer code naar klembord", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Kopieer", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Tekstterugloop in-/uitschakelen", + "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": "Talen", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.NotFound.p1": { + "message": "We kunnen niet vinden waar je naar op zoek bent.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Neem contact op met de eigenaar van de website die naar de originele URL heeft geleid en laat weten dat de link niet meer werkt.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "Op deze pagina", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "Lees meer", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Lees meer over {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Een minuut leestijd|{readingTime} minuten leestijd", + "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": "Homepagina", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Zijbalk inklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Zijbalk inklappen", + "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": "← Terug naar het hoofdmenu", + "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": "Zijbalk uitklappen", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Zijbalk uitklappen", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.seeAll": { + "message": "Laat alle {count} resultaten zien" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "Een document gevonden|{count} documenten gevonden", + "description": "Pluralized label for \"{count} documents found\". 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.SearchPage.existingResultsTitle": { + "message": "Zoekresultaten voor \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Doorzoek de documentatie", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "Typ hier uw zoekopdracht", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "Zoeken", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "Zoeken door Algolia", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "Geen resultaten gevonden", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "Resultaten ophalen...", + "description": "The paragraph for fetching new search results" + }, + "theme.SearchBar.label": { + "message": "Zoeken", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "Maak de zoekopdracht leeg", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "Annuleren", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "Recente zoekopdrachten", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "Geen recente zoekopdrachten", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "Sla deze zoekopdracht op", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "Verwijder deze zoekopdracht uit mijn geschiedenis", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "Favoriet", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "Verwijder deze zoekopdracht uit mijn favorieten", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "Niet in staat resultaten op te halen", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "Misschien wilt u uw netwerkverbinding controleren.", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "om te selecteren", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "Enter-toets", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "om te navigeren", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "Pijltoets naar boven", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "Pijltoets naar beneden", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "om te sluiten", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "Escape-toets", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "Zoek op", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "Geen resultaten voor", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "Probeer om te zoeken op", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "Zou deze zoekopdracht resultaten moeten opleveren?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "Laat het ons weten.", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "Doorzoek de documentatie", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Probeer opnieuw", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Ga naar hoofdinhoud", + "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": "Tags", + "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/nl/docusaurus-plugin-content-docs/current.json b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current.json new file mode 100644 index 000000000..4e9d2555e --- /dev/null +++ b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,30 @@ +{ + "version.label": { + "message": "Volgende", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Aan de slag", + "description": "The label for category Getting Started in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Configuration": { + "message": "Configuratie", + "description": "The label for category Configuration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Guides": { + "message": "Gidsen", + "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 integratie", + "description": "The label for category Discord integration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Geavanceerd", + "description": "The label for category Advanced in sidebar tutorialSidebar" + } +} diff --git a/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/_category_.json b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/_category_.json new file mode 100644 index 000000000..bd6b7defd --- /dev/null +++ b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Geavanceerd", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/kubernetes.md b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/kubernetes.md new file mode 100644 index 000000000..2951014d6 --- /dev/null +++ b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/kubernetes.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 2 +--- + +# Kubernetes + +Alle bestanden die u nodig hebt om deze container in Kubernetes te starten, bevinden zich in de [k8s folder](https://github.com/thijsvanloef/palworld-server-docker/tree/main/k8s). + +## Installeer Palworld in Kubernetes + +Gebruik de volgende commando's om deze Palworld-container in Kubernetes in te stellen: + +* `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` + +## De helm chart gebruiken + +De officiële helm chart is te vinden in een aparte repository, [palworld-server-chart](https://github.com/Twinki14/palworld-server-chart) diff --git a/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/palworld-directory.md b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/palworld-directory.md new file mode 100644 index 000000000..758dc6501 --- /dev/null +++ b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/advanced/palworld-directory.md @@ -0,0 +1,29 @@ +--- +sidebar_position: 1 +--- + +# Palworld folder + +Alles wat met de Palworld-gegevens te maken heeft, bevindt zich in de map `/palworld` in de container + +## Folder structuur + +![Folder Structure](../../../../../../docusaurus/docs/assets/folder_structure.jpg) + +| Folder | Use | +|------------------------------|-------------------------------------------------------------------| +| palworld | Root folder met alle Palworld Server-bestanden | +| backups | Folder waar alle back-ups van het `backup`-commando worden opgeslagen | +| Pal/Saved/Config/LinuxServer | Folder met alle .ini-configuratiebestanden voor handmatige configuratie | + +## Gegevensdirectory aan hostbestandssysteem koppelen + +De eenvoudigste manier om de palworld-folder aan uw hostsysteem te koppelen is +om het voorbeeld uit het docker-compose.yml-bestand te gebruiken: + +```yml + volumes: + - ./palworld:/palworld/ +``` + +Dit creëert een folder `palworld` in de huidige werkfolder en koppelt de folder `/palworld` van de container eraan. diff --git a/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/_category_.json b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/_category_.json new file mode 100644 index 000000000..26b621477 --- /dev/null +++ b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Aan de Slag", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration/_category_.json new file mode 100644 index 000000000..5bea3520b --- /dev/null +++ b/docusaurus/i18n/nl/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/nl/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md new file mode 100644 index 000000000..a04eeb01f --- /dev/null +++ b/docusaurus/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration/game-settings.md @@ -0,0 +1,99 @@ +--- +sidebar_position: 2 +--- + +# Spelinstellingen + +Het wijzigen van spelinstellingen met omgevingsvariabelen. + +Met Omgevingsvariabelen + +:::warning +Deze Omgevingsvariabelen en Instellingen zijn onderhevig aan verandering aangezien het spel zich nog in de bètafase bevindt. + +Bekijk de [officiële webpagina voor ondersteunde parameters](https://tech.palworldgame.com/optimize-game-balance). +::: + +Het omzetten van serverinstellingen naar omgevingsvariabelen volgt dezelfde principes (met enkele uitzonderingen): + +* Alle hoofdletters +* Woorden splitsen door een underscore in te voegen +* Verwijder de enkele letter als de instelling daarmee begint (zoals 'b') + +Bijvoorbeeld: + +* 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 | + +## Handmatig + +Wanneer de server start, wordt er een PalWorldSettings.ini bestand aangemaakt op de volgende locatie: `