diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..d6a5896068 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: NillerMedDild \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000..4d10b4e94a --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,8 @@ +**Modpack version** +Input modpack version here + +**Issue** +Input short description of the issue here + +**Logs** +Input pastebin link to crash-report or latest log, if applicable \ No newline at end of file diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 0000000000..5e83d83374 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,26 @@ +# Enigmatica 6 + +This is the official repository and issue-tracker for the modpack Enigmatica 6, for Minecraft 1.16.1 + +### Table of Contents +* [Testing](#testing) +* [Links](#links) + +## Testing +If you would like to help test Enigmatica 6, please give me a shout on Discord. + +There are a few things I would like testers to consider/look for: + +* Bugs +* Things you find boring/tedious +* Things that need small optimizations, such as advancement text and textures. + +I would also appreciate if you let me know what you think of the gameplay and why, especially if you didn't like it :) + +Note: You do not have to use the below setup method, you can use the available files from CurseForge or Discord, however those are not updated as frequently as this repository. + +## Links + +* [CurseForge](https://www.curseforge.com/minecraft/modpacks/enigmatica6) + +* [Discord](https://discord.gg/HnWNd7X) diff --git a/.github/move.yml b/.github/move.yml new file mode 100644 index 0000000000..98fb277965 --- /dev/null +++ b/.github/move.yml @@ -0,0 +1,34 @@ +# Configuration for move-issues - https://github.com/dessant/move-issues + +# Delete the command comment when it contains no other content +deleteCommand: true + +# Close the source issue after moving +closeSourceIssue: false + +# Lock the source issue after moving +lockSourceIssue: false + +# Mention issue and comment authors +mentionAuthors: false + +# Preserve mentions in the issue content +keepContentMentions: false + +# Move labels that also exist on the target repository +moveLabels: true + +# Set custom aliases for targets +aliases: + e2: enigmatica2 + e2l: enigmatica2light + e2e: enigmatica2expert + e2es: enigmatica2expertskyblock + e3: enigmatica3 + e4: enigmatica4 + e5: enigmatica5 + e6: enigmatica6 + s: scientia + +# Repository to extend settings from +_extends: .github diff --git a/.github/no-response.yml b/.github/no-response.yml new file mode 100644 index 0000000000..707e39c5dd --- /dev/null +++ b/.github/no-response.yml @@ -0,0 +1,13 @@ +# Configuration for probot-no-response - https://github.com/probot/no-response + +# Number of days of inactivity before an Issue is closed for lack of response +daysUntilClose: 7 +# Label requiring a response +responseRequiredLabel: "Status: Awaiting Information" +# Comment to post when closing an Issue for lack of response. Set to `false` to disable +closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. diff --git a/.github/support.yml b/.github/support.yml new file mode 100644 index 0000000000..b1c0c88f63 --- /dev/null +++ b/.github/support.yml @@ -0,0 +1,24 @@ +# Configuration for Support Requests - https://github.com/dessant/support-requests + +# Label used to mark issues as support requests +supportLabel: "Support" + +# Comment to post on issues marked as support requests, `{issue-author}` is an +# optional placeholder. Set to `false` to disable +supportComment: > + We use the issue tracker exclusively for bug reports, development and feature requests. + However, this issue appears to be a support request. + Please use the [support channel on our Discord](https://discord.gg/kZ7RdrD) to get help. + + +# Close issues marked as support requests +close: true + +# Lock issues marked as support requests +lock: false + +# Assign `off-topic` as the reason for locking. Set to `false` to disable +setLockReason: false + +# Repository to extend settings from +# _extends: .github \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..ff5e22e04d --- /dev/null +++ b/.gitignore @@ -0,0 +1,98 @@ +# Folders to ignore +/journeymap/ +/dumps/ +/crash-reports/ +/.mixin.out/ +/logs/ +/local/ +/libraries/ +/llibrary/ +/saves/ +/TombManyGraves/ +screenshots/ +/mods/ +/world/ +/defaultconfig/ +/data/ +/ct_dumps/ +/classes/ + +# Utilities +.github_changelog_generator +github_changelog_generator.gemspec +twitch_export-win.exe +ChangelogGenerator.bat +.build.json + +# Client Configs +config/InvTweaks.cfg +config/MouseTweaks.cfg +config/jei/worldSettings.cfg +config/jei/lookupHistory.zip +config/jei/bookmarks.ini +.curseclient +.ReAuth.cfg +usernamecache.json +usercache.json +knownkeys.txt +servers.dat +realms_persistence.json +WailaErrorOutput.txt +ItemDump.txt +BotaniaVars.dat +crafttweaker.log +github_changelog_generator.gemspec +ChangelogGenerator.bat +GithubChangelogGenerator.bat +twitch_export-win.exe +*.dll +whitelist.json +ops.json +ModpackUploader.bat +post-file-to-discord.bat +.build.json + +# Instance Sync +**/*.jar +!InstanceSync*.jar +**/*.jar.disabled +**/*.jar.meta + +**/*.log +/.mixin.out +/saves +/downloads +/resourcepacks +.curseclient +config/XaeroWorldMap/ +eula.txt +scb_resources/ +XaeroWaypoints/ +XaeroWorldMap/ +options.txt +secrets.ps1 +**/*.zip +CHANGELOG-GENERATED.md +stdlib_Result$Error.class +stdlib_Result$Ok.class +ttt.class +.persistent/multibeds/embroidery.dat +ds_private_storage.json +TwitchExportBuilder.exe +reauth.toml +patchouli_data.json +new.json +old.json +config/cherishedworlds/favorites.dat +soundsMuffled.dat +MakeModpackFiles.bat +MakeModpackFilesPostToDiscord.bat +PostToDiscord.bat + +!thirdpartymods/*.jar +!openloader/*/*.zip +TrashSlotSaveState.json +scripts/experiments/* +config/cloth-config2/config.properties +config/stepup.cfg +maessentials/default_kits.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..79992727e4 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "trailingComma": "none", + "tabWidth": 4, + "semi": true, + "singleQuote": true, + "printWidth": 120, + "bracketSpacing": true +} diff --git a/InstanceSync.jar b/InstanceSync.jar new file mode 100644 index 0000000000..fb26ea9e56 Binary files /dev/null and b/InstanceSync.jar differ diff --git a/MakeModpackFiles.ps1 b/MakeModpackFiles.ps1 new file mode 100644 index 0000000000..516e79340d --- /dev/null +++ b/MakeModpackFiles.ps1 @@ -0,0 +1,60 @@ +. "$PSScriptRoot\settings.ps1" +. "$PSScriptRoot\secrets.ps1" +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +function Clear-SleepHost { + Start-Sleep 2 + Clear-Host +} + +if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) { throw "$env:ProgramFiles\7-Zip\7z.exe needed to use the ModpackUploader." } +Set-Alias sz "$env:ProgramFiles\7-Zip\7z.exe" + + $TwitchExportBuilder = "TwitchExportBuilder.exe" + if (!(Test-Path $TwitchExportBuilder) -or $ENABLE_ALWAYS_UPDATE_JARS) { + Remove-Item $TwitchExportBuilder -Recurse -Force -ErrorAction SilentlyContinue + Download-GithubRelease -repo "Gaz492/twitch-export-builder" -file "twitch-export-builder_windows_amd64.exe" + Rename-Item -Path "twitch-export-builder_windows_amd64.exe" -NewName $TwitchExportBuilder -ErrorAction SilentlyContinue + } + .\TwitchExportBuilder.exe -n "$CLIENT_FILENAME" -p "$MODPACK_VERSION" + + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Compressing Server files..." -ForegroundColor Green + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + + $CONTENTS_TO_MOVE | ForEach-Object { + $FilePath = "$PSScriptRoot/development/include-in-server-files/$_" + Copy-Item -Path $FilePath -Destination $PSScriptRoot + } + + $SERVER_FILENAME = "$SERVER_FILENAME.zip" + sz a -tzip $SERVER_FILENAME $CONTENTS_TO_ZIP + + $CONTENTS_TO_MOVE | ForEach-Object { + $FilePath = "$PSScriptRoot/$_" + Remove-Item -Path $FilePath -Force + } + + Write-Host "Removing Client Mods from Server Files" -ForegroundColor Cyan + foreach ($clientMod in $CLIENT_MODS) { + Write-Host "Removing Client Mod $clientMod" + sz d $SERVER_FILENAME "mods/$clientMod*" | Out-Null + } + + +Write-Host "######################################" -ForegroundColor Cyan +Write-Host "" +Write-Host "The Modpack Uploader has completed." -ForegroundColor Green +Write-Host "" +Write-Host "######################################" -ForegroundColor Cyan + +# $CurlUrl = "https://discordapp.com/api/webhooks/$WEBHOOK_ID/$WEBHOOK_TOKEN" +# $FilePath = "$CLIENT_FILENAME-$MODPACK_VERSION.zip" + +# curl.exe --url $CurlUrl -F ContentType="multipart/form-data" -F content=@$FilePath --progress-bar + +# Start-Sleep -Seconds 10 \ No newline at end of file diff --git a/MakeModpackFilesPostToDiscord.ps1 b/MakeModpackFilesPostToDiscord.ps1 new file mode 100644 index 0000000000..24a2a4d440 --- /dev/null +++ b/MakeModpackFilesPostToDiscord.ps1 @@ -0,0 +1,59 @@ +. "$PSScriptRoot\settings.ps1" +. "$PSScriptRoot\secrets.ps1" +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +function Clear-SleepHost { + Start-Sleep 2 + Clear-Host +} + +if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) { throw "$env:ProgramFiles\7-Zip\7z.exe needed to use the ModpackUploader." } +Set-Alias sz "$env:ProgramFiles\7-Zip\7z.exe" + + $TwitchExportBuilder = "TwitchExportBuilder.exe" + if (!(Test-Path $TwitchExportBuilder) -or $ENABLE_ALWAYS_UPDATE_JARS) { + Remove-Item $TwitchExportBuilder -Recurse -Force -ErrorAction SilentlyContinue + Download-GithubRelease -repo "Gaz492/twitch-export-builder" -file "twitch-export-builder_windows_amd64.exe" + Rename-Item -Path "twitch-export-builder_windows_amd64.exe" -NewName $TwitchExportBuilder -ErrorAction SilentlyContinue + } + .\TwitchExportBuilder.exe -n "$CLIENT_FILENAME" -p "$MODPACK_VERSION" + + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Compressing Server files..." -ForegroundColor Green + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + + $CONTENTS_TO_MOVE | ForEach-Object { + $FilePath = "$PSScriptRoot/development/include-in-server-files/$_" + Copy-Item -Path $FilePath -Destination $PSScriptRoot + } + + $SERVER_FILENAME = "$SERVER_FILENAME.zip" + sz a -tzip $SERVER_FILENAME $CONTENTS_TO_ZIP + + $CONTENTS_TO_MOVE | ForEach-Object { + $FilePath = "$PSScriptRoot/$_" + Remove-Item -Path $FilePath -Force + } + + Write-Host "Removing Client Mods from Server Files" -ForegroundColor Cyan + foreach ($clientMod in $CLIENT_MODS) { + Write-Host "Removing Client Mod $clientMod" + sz d $SERVER_FILENAME "mods/$clientMod*" | Out-Null + } + + +Write-Host "######################################" -ForegroundColor Cyan +Write-Host "" +Write-Host "The Modpack Uploader has completed." -ForegroundColor Green +Write-Host "" +Write-Host "######################################" -ForegroundColor Cyan + + +$CurlUrl = "https://discordapp.com/api/webhooks/$WEBHOOK_ID/$WEBHOOK_TOKEN" +$FilePath = "$CLIENT_FILENAME-$MODPACK_VERSION.zip" + +curl.exe --url $CurlUrl -F ContentType="multipart/form-data" -F content=@$FilePath --progress-bar diff --git a/ModpackUploader.ps1 b/ModpackUploader.ps1 new file mode 100644 index 0000000000..6d9fd3d6e3 --- /dev/null +++ b/ModpackUploader.ps1 @@ -0,0 +1,212 @@ +. "$PSScriptRoot\settings.ps1" +. "$PSScriptRoot\secrets.ps1" +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + + +function Download-GithubRelease { + param( + [parameter(Mandatory = $true)] + [string] + $repo, + [parameter(Mandatory = $true)] + [string] + $file + ) + + $releases = "https://api.github.com/repos/$repo/releases" + + Write-Host "Determining latest release of $repo" + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + $tag = (Invoke-WebRequest -Uri $releases -UseBasicParsing | ConvertFrom-Json)[0].tag_name + + $download = "https://github.com/$repo/releases/download/$tag/$file" + $name = $file.Split(".")[0] + + Write-Host Dowloading... + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + Invoke-WebRequest $download -Out $file + + # Cleaning up target dir + Remove-Item $name -Recurse -Force -ErrorAction SilentlyContinue +} + +function Clear-SleepHost { + Start-Sleep 2 + Clear-Host +} + +# Write-Host Removing non-default configs... +# Get-ChildItem -Path config -Exclude $CONFIGS_TO_KEEP | ForEach-Object { +# Remove-Item -Path $_.FullName -Force -ErrorAction SilentlyContinue +# } + +if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) { throw "$env:ProgramFiles\7-Zip\7z.exe needed to use the ModpackUploader." } +Set-Alias sz "$env:ProgramFiles\7-Zip\7z.exe" + +if ($ENABLE_MANIFEST_BUILDER_MODULE) { + $TwitchExportBuilder = "TwitchExportBuilder.exe" + if (!(Test-Path $TwitchExportBuilder) -or $ENABLE_ALWAYS_UPDATE_JARS) { + Remove-Item $TwitchExportBuilder -Recurse -Force -ErrorAction SilentlyContinue + Download-GithubRelease -repo "Gaz492/twitch-export-builder" -file "twitch-export-builder_windows_amd64.exe" + Rename-Item -Path "twitch-export-builder_windows_amd64.exe" -NewName $TwitchExportBuilder -ErrorAction SilentlyContinue + } + .\TwitchExportBuilder.exe -n "$CLIENT_FILENAME" -p "$MODPACK_VERSION" + + if ($ENABLE_SERVER_FILE_MODULE) { + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Compressing Server files..." -ForegroundColor Green + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + + $CONTENTS_TO_MOVE | ForEach-Object { + $FilePath = "$PSScriptRoot/development/include-in-server-files/$_" + Copy-Item -Path $FilePath -Destination $PSScriptRoot + } + + $SERVER_FILENAME = "$SERVER_FILENAME.zip" + sz a -tzip $SERVER_FILENAME $CONTENTS_TO_ZIP + + $CONTENTS_TO_MOVE | ForEach-Object { + $FilePath = "$PSScriptRoot/$_" + Remove-Item -Path $FilePath -Force + } + + # Write-Host "Removing Client Mods from Server Files" -ForegroundColor Cyan + # foreach ($clientMod in $CLIENT_MODS) { + # Write-Host "Removing Client Mod $clientMod" + # sz d $SERVER_FILENAME "mods/$clientMod*" | Out-Null + # } + + Clear-SleepHost + } +} + +if ($ENABLE_CHANGELOG_GENERATOR_MODULE -and $ENABLE_MODPACK_UPLOADER_MODULE) { + Remove-Item old.json, new.json, changelog.txt -ErrorAction SilentlyContinue + sz e "$CLIENT_FILENAME`-$LAST_MODPACK_VERSION.zip" manifest.json + Rename-Item -Path manifest.json -NewName old.json + sz e "$CLIENT_FILENAME`-$MODPACK_VERSION.zip" manifest.json + Rename-Item -Path manifest.json -NewName new.json + + Clear-SleepHost + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Generating changelog..." -ForegroundColor Green + Write-Host "" + + java -jar ChangelogGenerator-2.0.0-pre3.jar + Move-Item -Path changelog.txt -Destination "changelogs/CHANGELOG_MODS_$MODPACK_VERSION.txt" + Remove-Item old.json, new.json -ErrorAction SilentlyContinue +} + +if ($ENABLE_GITHUB_CHANGELOG_GENERATOR_MODULE) { + + $BASE64TOKEN = [System.Convert]::ToBase64String([char[]]$GITHUB_TOKEN); + $Uri = "https://api.github.com/repos/$GITHUB_NAME/$GITHUB_REPOSITORY/releases?access_token=$GITHUB_TOKEN" + + $Headers = @{ + Authorization = 'Basic {0}' -f $Base64Token; + }; + + $Body = @{ + tag_name = $MODPACK_VERSION; + target_commitish = 'master'; + name = $MODPACK_VERSION; + body = $CLIENT_CHANGELOG; + draft = $false; + prerelease = $false; + } | ConvertTo-Json; + + Clear-SleepHost + if ($ENABLE_EXTRA_LOGGING) { + Write-Host "Release Data:" + Write-Host $Body + } + + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Making GitHub Release..." -ForegroundColor Green + Write-Host "" + + Invoke-RestMethod -Headers $Headers -Uri $Uri -Body $Body -Method Post + + Start-Process Powershell.exe -Argument "-NoProfile -Command github_changelog_generator --since-tag $CHANGES_SINCE_VERSION" +} + +if ($ENABLE_MODPACK_UPLOADER_MODULE) { + $CLIENT_FILENAME = "$CLIENT_FILENAME-$MODPACK_VERSION.zip" + + $CLIENT_METADATA = + "{ + 'changelog': `'$CLIENT_CHANGELOG`', + 'changelogType': `'$CLIENT_CHANGELOG_TYPE`', + 'displayName': `'$CLIENT_FILE_DISPLAY_NAME`', + 'gameVersions': [$GAME_VERSIONS], + 'releaseType': `'$CLIENT_RELEASE_TYPE`' + }" + + Clear-SleepHost + if ($ENABLE_EXTRA_LOGGING) { + Write-Host "Client Metadata:" + Write-Host $CLIENT_METADATA + Write-Host $CLIENT_FILENAME + } + + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Uploading client files..." -ForegroundColor Green + Write-Host "" + + $Response = curl.exe --url "https://minecraft.curseforge.com/api/projects/$CURSEFORGE_PROJECT_ID/upload-file" --user "$CURSEFORGE_USER`:$CURSEFORGE_TOKEN" -H "Accept: application/json" -H X-Api-Token:$CURSEFORGE_TOKEN -F metadata=$CLIENT_METADATA -F file=@$CLIENT_FILENAME --progress-bar | ConvertFrom-Json + $ResponseId = $Response.id + + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "The modpack has been uploaded." -ForegroundColor Green + Write-Host "ID returned: $ResponseId" -ForegroundColor Cyan + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Start-Sleep -Seconds 1 +} + +if ($ENABLE_SERVER_FILE_MODULE -and $ENABLE_MODPACK_UPLOADER_MODULE) { + Clear-SleepHost + + $SERVER_METADATA = + "{ + 'changelog': `'$SERVER_CHANGELOG`', + 'changelogType': `'$SERVER_CHANGELOG_TYPE`', + 'displayName': `'$SERVER_FILE_DISPLAY_NAME`', + 'parentFileId': $ResponseId, + 'releaseType': `'$SERVER_RELEASE_TYPE`' + }" + + Clear-SleepHost + if ($ENABLE_EXTRA_LOGGING) { + Write-Host "Server Metadata:" + Write-Host $SERVER_METADATA + } + + Write-Host "" + Write-Host "######################################" -ForegroundColor Cyan + Write-Host "" + Write-Host "Uploading server files..." -ForegroundColor Green + Write-Host "" + + $ResponseServer = curl.exe --url "https://minecraft.curseforge.com/api/projects/$CURSEFORGE_PROJECT_ID/upload-file" --user "$CURSEFORGE_USER`:$CURSEFORGE_TOKEN" -H "Accept: application/json" -H X-Api-Token:$CURSEFORGE_TOKEN -F metadata=$SERVER_METADATA -F file=@$SERVER_FILENAME --progress-bar +} + +Clear-SleepHost + +Write-Host "######################################" -ForegroundColor Cyan +Write-Host "" +Write-Host "The Modpack Uploader has completed." -ForegroundColor Green +Write-Host "" +Write-Host "######################################" -ForegroundColor Cyan \ No newline at end of file diff --git a/PostToDiscord.ps1 b/PostToDiscord.ps1 new file mode 100644 index 0000000000..2536ef3e9f --- /dev/null +++ b/PostToDiscord.ps1 @@ -0,0 +1,6 @@ +. "$PSScriptRoot\settings.ps1" +. "$PSScriptRoot\secrets.ps1" +$CurlUrl = "https://discordapp.com/api/webhooks/$WEBHOOK_ID/$WEBHOOK_TOKEN" +$FilePath = "$CLIENT_FILENAME-$MODPACK_VERSION.zip" + +curl.exe --url $CurlUrl -F ContentType="multipart/form-data" -F content=@$FilePath --progress-bar \ No newline at end of file diff --git a/changelogs/CHANGELOG.md b/changelogs/CHANGELOG.md new file mode 100644 index 0000000000..2c326d6476 --- /dev/null +++ b/changelogs/CHANGELOG.md @@ -0,0 +1,74 @@ +** To play Enigmatica 6, [download the modpack zip](https://www.curseforge.com/minecraft/modpacks/enigmatica6/download/2998725) and [import it into Twitch](https://help.twitch.tv/s/article/guide-to-modpacks?language=en_US#Import). ** + + + +## The Mekanism Update! + +_(v0.1.3) | Using Forge-1.16.1-32.0.62 | [Mod Updates](https://gist.github.com/NillerMedDild/6fa386a0d9d05a3a05988e89c9b727f0)_ + +**Mod Additions** + +- Bookshelf +- Botany Pots +- Carpet Stairs Mod +- Citadel +- Comforts +- Cooking for Blockheads +- Culinary Construct +- Dank Storage +- Farming for Blockheads +- FastFurnace +- FastWorkbench +- Game Stages +- KleeSlabs +- Laser Relays +- Mekanism +- Mekanism Generators +- Mekanism Tools +- Patchouli +- Pedestals +- Placebo +- Productive Bees +- Rats +- The One Probe +- Toast Control +- Trash Cans +- Waystones +- YUNG's Better Caves + +## Enigmatica 6 v0.1.2 + +_Using Forge-1.16.1-32.0.57_ | _[Mod Updates](https://gist.github.com/NillerMedDild/a96787faf94d9379f1605cc02866e028)_ + +**Mod Additions** + +- Abnormals Core +- AppleSkin +- Bamboo Blocks +- Bedspreads +- Caelus API +- Cake Chomps [FABRIC/FORGE] +- Cherished Worlds +- Connected Glass +- Cosmetic Armor Reworked +- Curio of Undying +- Curios API +- Curious Elytra +- Dark Paintings +- Decorative Blocks +- Ding +- Engineer's Decor +- FPS Reducer +- Interactio - In-World Crafting with Datapacks! +- Let Sleeping Dogs Lie +- Ma Enchants +- MixinBootstrap +- NetherPortalFix +- Passthrough Signs +- RandomPatches +- ServerConfig Updater +- U Team Core +- Useful Backpacks +- World Stripper +- Xaero's Minimap +- Xaero's World Map \ No newline at end of file diff --git a/changelogs/CHANGELOG_MODS_0.1.2.txt b/changelogs/CHANGELOG_MODS_0.1.2.txt new file mode 100644 index 0000000000..3166f2f4e6 --- /dev/null +++ b/changelogs/CHANGELOG_MODS_0.1.2.txt @@ -0,0 +1,67 @@ +======================================= +Enigmatica6 0.1.1 --> Enigmatica6 0.1.2 +======================================= + +Added: +- Abnormals Core +- AppleSkin +- Bamboo Blocks +- Bedspreads +- Caelus API +- Cake Chomps [FABRIC/FORGE] +- Cherished Worlds +- Connected Glass +- Cosmetic Armor Reworked +- Curio of Undying +- Curios API +- Curious Elytra +- Dark Paintings +- Decorative Blocks +- Ding +- Engineer's Decor +- FPS Reducer +- Interactio - In-World Crafting with Datapacks! +- Let Sleeping Dogs Lie +- Ma Enchants +- MixinBootstrap +- NetherPortalFix +- Passthrough Signs +- RandomPatches +- ServerConfig Updater +- U Team Core +- Useful Backpacks +- World Stripper +- Xaero's Minimap +- Xaero's World Map + +Updated: + DangerousStoneCutter (DangerousStoneCutter-1.16.1-1.3 --> DangerousStoneCutter-1.16.1-1.4): + DangerousStoneCutter-1.16.1-1.4: + Reduced the sound of the stone cutter + + Just Enough Items (JEI) (jei-1.16.1-7.0.0.2.jar --> jei-1.16.1-7.0.0.6.jar): + Placeholder: + No changelog available. + + Ma Essentials ([1.16.1] Ma Essentials v3.2.1 --> [1.16.1] Ma Essentials v3.2.2): + [1.16.1] Ma Essentials v3.2.2: + Fixed /endc and /invsee GUI + Added god and fly mode persistence when logged out + + Reload Audio Driver (RAD) [Forge] (rad-1.16-4.0.0 --> rad-1.16-4.0.1): + rad-1.16-4.0.1: + =Fixed a crash on a server + + rad-1.12-1.1.0: + =Changed chat message to toast + + The Conjurer (The Conjurer 1.16.1-v1.0.5 --> The Conjurer 1.16.1-v1.0.6): + The Conjurer 1.16.1-v1.0.6: + * Distant Theatre maps may be obtained from the Cartographer now + * The Conjurer attacks the Wandering Trader now + + The Conjurer 1.15.2-v1.0.6: + * Distant Theatre maps may be obtained from the Cartographer now + * The Conjurer attacks the Wandering Trader now + +Generated using [ChangelogGenerator 2.0.0-pre3](https://github.com/TheRandomLabs/ChangelogGenerator). diff --git a/changelogs/CHANGELOG_MODS_0.1.3.txt b/changelogs/CHANGELOG_MODS_0.1.3.txt new file mode 100644 index 0000000000..3c56b433bf --- /dev/null +++ b/changelogs/CHANGELOG_MODS_0.1.3.txt @@ -0,0 +1,45 @@ +======================================= +Enigmatica6 0.1.2 --> Enigmatica6 0.1.3 +======================================= + +Added: +- Bookshelf +- Botany Pots +- Carpet Stairs Mod +- Citadel +- Comforts +- Cooking for Blockheads +- Culinary Construct +- Dank Storage +- Farming for Blockheads +- FastFurnace +- FastWorkbench +- Game Stages +- KleeSlabs +- Laser Relays +- Mekanism +- Mekanism Generators +- Mekanism Tools +- Patchouli +- Pedestals +- Placebo +- Productive Bees +- Rats +- The One Probe +- Toast Control +- Trash Cans +- Waystones +- YUNG's Better Caves + +Updated: + Inventory Tweaks Renewed (invtweaks-1.16.1-1.0.2.jar --> invtweaks-1.16.1-1.0.4.jar): + invtweaks-1.16.1-1.0.4.jar: + Changelog: + * Mappings updated + * General code cleanup + + invtweaks-1.15.2-2.0.7.jar: + Changelog: + -Fixes deletion of items when sorting into RFTools Crafter + +Generated using [ChangelogGenerator 2.0.0-pre3](https://github.com/TheRandomLabs/ChangelogGenerator). diff --git a/config/Mekanism/client.toml b/config/Mekanism/client.toml new file mode 100644 index 0000000000..294a9e12de --- /dev/null +++ b/config/Mekanism/client.toml @@ -0,0 +1,68 @@ + +#Client Config. This config only exists on the client +[client] + #Set to false to prevent particle spam when loading multiblocks (notification message will display instead). + enableMultiblockFormationParticles = true + #If enabled machines play their sounds while running. + enableMachineSounds = true + #Play sounds for Jetpack/Gas Mask/Flamethrower/Radiation (all players). + enablePlayerSounds = true + #Adjust Mekanism sounds' base volume. < 1 is softer, higher is louder. + #Range: 0.0 ~ 3.4028234663852886E38 + baseSoundVolume = 1.0 + #How many particles spawn when rendering radiation effects (scaled by radiation level). + radiationParticleCount = 100 + #Show particles when machines active. + machineEffects = true + #Enable item information HUD during gameplay + enableHUD = true + #Allow sneak + scroll to change item modes. + allowModeScroll = true + #Should active machines produce block light. + enableAmbientLighting = true + #If true, don't render Cables/Pipes/Tubes as transparent and don't render their contents. + opaqueTransmitters = false + #Christmas/New Years greetings in chat. + holidays = true + #Color of energy in item durability display. + energyColor = 3997338 + #How far (in blocks) from the player radiation particles can spawn. + radiationParticleRadius = 30 + #Align HUD with left (if true) or right (if false) + alignHUDLeft = true + #How much light to produce if ambient lighting is enabled. + #Range: 1 ~ 15 + ambientLightingLevel = 15 + + #QIO Config + [client.qio] + #Sorting direction when viewing items in a QIO Item Viewer. + #Allowed Values: ASCENDING, DESCENDING + itemViewerSortDirection = "ASCENDING" + #Sorting strategy when viewing items in a QIO Item Viewer. + #Allowed Values: NAME, SIZE, MOD + itemViewerSortType = "NAME" + #Number of slots to view horizontally on a QIO Item Viewer. + #Range: 8 ~ 16 + itemViewerSlotsX = 8 + #Number of slots to view vertically on a QIO Item Viewer. + #Range: 2 ~ 48 + itemViewerSlotsY = 4 + + #GUI Config + [client.gui] + #Color of HUD used by MekaSuit. + hudColor = 4257264 + #Display a fancy compass when the MekaSuit is worn. + mekaSuitHelmetCompass = true + #Opacity of HUD used by MekaSuit. + #Range: 0.0 ~ 1.0 + hudOpacity = 0.4000000059604645 + #Visual jitter of MekaSuit HUD, seen when moving the player's head. Bigger value = more jitter. + #Range: 1.0 ~ 100.0 + hudJitter = 6.0 + #Color of warning HUD elements used by MekaSuit. + hudWarningColor = 16768335 + #Color of danger HUD elements used by MekaSuit. + hudDangerColor = 16726076 + diff --git a/config/Mekanism/gear.toml b/config/Mekanism/gear.toml new file mode 100644 index 0000000000..1518ce7054 --- /dev/null +++ b/config/Mekanism/gear.toml @@ -0,0 +1,186 @@ + +#Gear Config. This config is synced from server to client. +[gear] + + #Atomic Disassembler Settings + [gear.atomic_disassembler] + #Base Energy (Joules) usage of the Atomic Disassembler. (Gets multiplied by speed factor) + energyUsage = "10" + #Cost in Joules of using the Atomic Disassembler as a weapon. + energyUsageWeapon = "2000" + #The Range of the Atomic Disassembler Extended Vein Mining. + miningRange = 10 + #The max Atomic Disassembler Vein Mining Block Count. + miningCount = 128 + #Enable the 'Slow' mode for the Atomic Disassembler. + slowMode = true + #Enable the 'Fast' mode for the Atomic Disassembler. + fastMode = true + #Enable the 'Vein Mining' mode for the Atomic Disassembler. + veinMining = true + #Enable the 'Extended Vein Mining' mode for the Atomic Disassembler. (Allows vein mining everything not just ores/logs) + extendedMining = true + #The amount of damage the Atomic Disassembler does when it is out of power. (Value is in number of half hearts) + minDamage = 4 + #The amount of damage the Atomic Disassembler does when it has at least DisassemblerEnergyUsageWeapon power stored. (Value is in number of half hearts) + maxDamage = 20 + #Maximum amount (joules) of energy the Atomic Disassembler can contain. + maxEnergy = "1000000" + #Amount (joules) of energy the Atomic Disassembler can accept per tick. + chargeRate = "5000" + + #Configurator Settings + [gear.configurator] + #Maximum amount (joules) of energy the Configurator can contain. + maxEnergy = "60000" + #Amount (joules) of energy the Configurator can accept per tick. + chargeRate = "300" + #Energy usage in joules of using the configurator to configure machines. + energyPerConfigure = "400" + #Energy cost in joules for each item the configurator ejects from a machine on empty mode. + energyPerItem = "8" + + #Electric Bow Settings + [gear.electric_bow] + #Maximum amount (joules) of energy the Electric Bow can contain. + maxEnergy = "120000" + #Amount (joules) of energy the Electric Bow can accept per tick. + chargeRate = "600" + #Cost in Joules of using the Electric Bow with flame mode active. + energyUsage = "1200" + + #Energy Tablet Settings + [gear.energy_tablet] + #Maximum amount (joules) of energy the Energy Tablet can contain. + maxEnergy = "1000000" + #Amount (joules) of energy the Energy Tablet can accept per tick. + chargeRate = "5000" + + #Flamethrower Settings + [gear.flamethrower] + #Flamethrower Gas Tank capacity in mB. + #Range: 1 ~ 9223372036854775807 + maxGas = 24000 + #Amount of hydrogen the Flamethrower can accept per tick. + #Range: 1 ~ 9223372036854775807 + fillRate = 16 + + #Free Runner Settings + [gear.free_runner] + #Energy cost/multiplier in Joules for reducing fall damage with free runners. Energy cost is: FallDamage * freeRunnerFallEnergyCost. (1 FallDamage is 1 half heart) + fallEnergyCost = "50" + #Maximum amount (joules) of energy Free Runners can contain. + maxEnergy = "64000" + #Amount (joules) of energy the Free Runners can accept per tick. + chargeRate = "320" + + #Jetpack Settings + [gear.jetpack] + #Jetpack Gas Tank capacity in mB. + #Range: 1 ~ 9223372036854775807 + maxGas = 24000 + #Amount of hydrogen the Jetpack can accept per tick. + #Range: 1 ~ 9223372036854775807 + fillRate = 16 + + #Armored Jetpack Settings + [gear.jetpack.armored] + #Armor value of the Armored Jetpack. + armor = 12 + #Toughness value of the Armored Jetpack. + toughness = 2.0 + + #Network Reader Settings + [gear.network_reader] + #Maximum amount (joules) of energy the Network Reader can contain. + maxEnergy = "60000" + #Amount (joules) of energy the Network Reader can accept per tick. + chargeRate = "300" + #Energy usage in joules for each network reading. + energyUsage = "400" + + #Portable Teleporter Settings + [gear.portable_teleporter] + #Maximum amount (joules) of energy the Portable Teleporter can contain. + maxEnergy = "1000000" + #Amount (joules) of energy the Portable Teleporter can accept per tick. + chargeRate = "5000" + #Delay in ticks before a player is teleported after clicking the Teleport button in the portable teleporter. + delay = 0 + + #Scuba Tank Settings + [gear.scuba_tank] + #Scuba Tank Gas Tank capacity in mB. + #Range: 1 ~ 9223372036854775807 + maxGas = 24000 + #Amount of oxygen the Scuba Tank Gas Tank can accept per tick. + #Range: 1 ~ 9223372036854775807 + fillRate = 16 + + #Seismic Reader Settings + [gear.seismic_reader] + #Maximum amount (joules) of energy the Seismic Reader can contain. + maxEnergy = "12000" + #Amount (joules) of energy the Seismic Reader can accept per tick. + chargeRate = "60" + #Energy usage in joules required to use the Seismic Reader. + energyUsage = "250" + + #Canteen Settings + [gear.canteen] + #Maximum amount of Nutritional Paste storable by the Canteen. + #Range: 1 ~ 9223372036854775807 + maxStorage = 64000 + + #Meka-Tool Settings + [gear.mekatool] + #Cost in Joules of using the Meka-Tool to teleport 10 blocks. + energyUsageTeleport = "1000" + #Cost in Joules of using the Meka-Tool to deal 4 units of damage. + energyUsageWeapon = "2000" + #Maximum distance a player can teleport with the Meka-Tool. + maxTeleportReach = 100 + #Damage applied by Meka-Tool without using any energy. + baseDamage = 4 + #Efficiency of the Meka-Tool with energy but without any upgrades. + baseEfficiency = 4.0 + #Energy capacity (Joules) of the Meka-Tool without any installed upgrades. Quadratically scaled by upgrades. + baseEnergyCapacity = "16000000" + #Amount (joules) of energy the Meka-Tool can accept per tick. Quadratically scaled by upgrades. + chargeRate = "100000" + #Cost in Joules of using the Meka-Tool as a hoe. + energyUsageHoe = "10" + #Cost in Joules of using the Meka-Tool as a shovel for making paths. + energyUsageShovel = "10" + #Cost in Joules of using the Meka-Tool as an axe for stripping logs. + energyUsageAxe = "10" + + #MekaSuit Settings + [gear.mekasuit] + #Energy capacity (Joules) of MekaSuit items without any installed upgrades. Quadratically scaled by upgrades. + baseEnergyCapacity = "16000000" + #Amount (joules) of energy the MekaSuit can accept per tick. Quadratically scaled by upgrades. + chargeRate = "100000" + #Energy usage (Joules) of MekaSuit when adding 0.1 to jump motion. + baseJumpEnergyUsage = "1000" + #Energy usage (Joules) of MekaSuit when lessening a potion effect. + energyUsagePotionTick = "40000" + #Energy usage (Joules) of MekaSuit when preventing a negative potion effect. + energyUsageMagicPrevent = "10000" + #Energy usage (Joules) of MekaSuit when adding 0.1 to sprint motion. + energyUsageSprintBoost = "100" + #Energy usage (Joules) of MekaSuit per tick when flying via Gravitational Modulation. + energyUsageGravitationalModulation = "1000" + #Charge rate of inventory items (Joules) per tick. + inventoryChargeRate = "10000" + #Solar recharging rate (Joules) of helmet per tick, per upgrade installed. + solarRechargingRate = "500" + #Energy usage (Joules) of MekaSuit per tick of using vision enhancement. + energyUsageVisionEnhancement = "500" + #Energy usage (Joules) of MekaSuit per half-food of nutritional injection. + energyUsageNutritionalInjection = "20000" + #Energy usage (Joules) of MekaSuit per unit of damage applied. + energyUsageDamage = "100000" + #Energy usage (Joules) of MekaSuit per tick of attracting a single item. + energyUsageItemAttraction = "250" + diff --git a/config/Mekanism/general.toml b/config/Mekanism/general.toml new file mode 100644 index 0000000000..c90a1ece96 --- /dev/null +++ b/config/Mekanism/general.toml @@ -0,0 +1,171 @@ + +#General Config. This config is synced from server to client. +[general] + #Log Mekanism packet names. Debug setting. + logPackets = false + #Disable to make the anchor upgrade not do anything. + allowChunkloading = true + #How many ticks must pass until a block's active state is synced with the client, if it has been rapidly changing. + blockDeactivationDelay = 60 + #Any mod ids added to this list will not be able to have any of their blocks, picked up by the cardboard box. + cardboardModBlacklist = [] + #Allow right clicking on Cables/Pipes/Tubes with alloys to upgrade the tier. + transmitterAlloyUpgrade = true + #Base factor for working out machine performance with upgrades - UpgradeModifier * (UpgradesInstalled/UpgradesPossible). + #Range: > 1 + maxUpgradeMultiplier = 10 + #How much Boiler heat is immediately usable to convert water to steam. + boilerWaterConductivity = 0.7 + #Amount of heat produced per fuel tick of a fuel's burn time in the Fuelwood Heater. + heatPerFuelTick = 400.0 + #How much heat energy is created from one Joule of regular energy in the Resistive Heater. + #Range: 0.0 ~ 1.0 + resistiveHeaterEfficiency = 0.6 + #Amount of heat each Boiler heating element produces. + superheatingHeatTransfer = 1.6E7 + #Displayed temperature unit in Mekanism GUIs. + #Allowed Values: K, C, R, F, STP + temperatureUnit = "K" + #Peak processing rate for the Solar Neutron Activator. Note: It can go higher than this value in some extreme environments. + maxSolarNeutronActivatorRate = 64 + + #Auto Eject Settings + [general.auto_eject] + #Rate at which fluid gets auto ejected from tiles. + fluid = 1024 + #Rate at which chemicals gets auto ejected from tiles. + #Range: 1 ~ 9223372036854775807 + chemical = 1024 + + #Prefilled Tanks + [general.prefilled] + #Add filled creative fluid tanks to creative/JEI. + fluidTanks = true + #Add filled creative gas tanks to creative/JEI. + gasTanks = true + #Add filled creative infusion tanks to creative/JEI. + infusionTanks = true + #Add filled creative pigment tanks to creative/JEI. + pigmentTanks = true + #Add filled creative slurry tanks to creative/JEI. + slurryTanks = true + + #Energy Conversion Rate Settings + [general.energy_conversion] + #Disables IC2 power integration. Requires world restart (server-side option in SMP). + blacklistIC2 = false + #Conversion multiplier from EU to Joules (EU * JoulePerEU = Joules) + JoulePerEU = "10" + #Conversion multiplier from Joules to EU (Joules * EUPerJoule = EU) + EUPerJoule = "0.1000" + #Disables Forge Energy (FE,RF,IF,uF,CF) power integration. Requires world restart (server-side option in SMP). + blacklistForge = false + #Conversion multiplier from Forge Energy to Joules (FE * JoulePerForgeEnergy = Joules) + JoulePerForgeEnergy = "2.5000" + #Conversion multiplier from Joules to Forge Energy (Joules * ForgeEnergyPerJoule = FE) + ForgeEnergyPerJoule = "0.4000" + #Disables Flux Networks higher throughput Forge Energy (FE,RF,IF,uF,CF) power integration. Requires world restart (server-side option in SMP). Note: Disabling Forge Energy integration also disables this. + blacklistFluxNetworks = false + #How much energy is produced per mB of Hydrogen, also affects Electrolytic Separator usage, Ethylene burn rate and Gas generator energy capacity. + HydrogenEnergyDensity = "200" + #Burn time for Ethylene (1mB hydrogen + 2*bioFuel/tick*200ticks/100mB * 20x efficiency bonus). + EthyleneBurnTime = 40 + #Maximum Joules per mB of Steam. Also affects Thermoelectric Boiler. + maxEnergyPerSteam = "10" + #Displayed energy type in Mekanism GUIs. + #Allowed Values: J, FE, EU + energyType = "FE" + + #Radiation Settings + [general.radiation] + #Enable worldwide radiation effects. Don't be a downer and disable this. + radiationEnabled = true + #The radius of chunks checked when running radiation calculations. The algorithm is efficient, but don't abuse it by making this crazy high. + #Range: 1 ~ 100 + chunkCheckRadius = 5 + #Radiation sources are multiplied by this constant roughly once per second to represent their emission decay. At the default rate, it takes roughly 10 days to remove a 1,000 Sv/h (crazy high) source. + sourceDecayRate = 0.9995 + #Radiated objects and entities are multiplied by this constant roughly once per second to represent their dosage decay. + targetDecayRate = 0.9995 + #Defines the minimum severity radiation dosage severity (scale of 0 to 1) for which negative effects can take place. Set to 1 to disable negative effects completely. + #Range: 0.0 ~ 1.0 + negativeEffectsMinSeverity = 0.1 + #Amount of gas (mB) that can be stored in a Radioactive Waste Barrel. + #Range: > 1 + radioactiveWasteBarrelMaxGas = 64000 + + #Digital Miner Settings + [general.digital_miner] + #Energy multiplier for using silk touch mode with the Digital Miner. + silkMultiplier = 6 + #Maximum radius in blocks that the Digital Miner can reach. (Increasing this may have negative effects on stability and/or performance. We strongly recommend you leave it at the default value). + #Range: > 1 + maxRadius = 32 + #Number of ticks required to mine a single block with a Digital Miner (without any upgrades). + #Range: > 1 + ticksPerMine = 80 + + #Laser Settings + [general.laser] + #If enabled, lasers can break blocks and the flamethrower starts fires. + aestheticWorldDamage = true + #How far (in blocks) a laser can travel. + range = 64 + #Energy needed to destroy or attract blocks with a Laser (per block hardness level). + energyNeededPerHardness = "100000" + #Energy used per half heart of damage being transferred to entities. + energyPerDamage = "2500" + + #Pump Settings + [general.pump] + #Maximum block distance to pull fluid from for the Electric Pump. + maxPumpRange = 80 + #If enabled makes Water and Heavy Water blocks be removed from the world on pump. + pumpWaterSources = false + #Fluidic Plenisher stops after this many blocks. + maxPlenisherNodes = 4000 + + #Quantum Entangloporter Settings + [general.quantum_entangloporter] + #Maximum energy buffer (Mekanism Joules) of an Entangoloporter frequency - i.e. the maximum transfer per tick per frequency. Default is ultimate tier energy cube capacity. + energyBuffer = "256000000" + #Maximum fluid buffer (mb) of an Entangoloporter frequency - i.e. the maximum transfer per tick per frequency. Default is ultimate tier tank capacity. + #Range: > 1 + fluidBuffer = 112000 + #Maximum chemical buffer (mb) of an Entangoloporter frequency - i.e. the maximum transfer per tick per frequency. Default is ultimate tier tank capacity. + #Range: 1 ~ 9223372036854775807 + chemicalBuffer = 512000 + + #Block security/protection Settings + [general.security] + #Enable the security system for players to prevent others from accessing their machines. Does NOT affect Frequencies. + allowProtection = true + #Ops can bypass the block security restrictions if enabled. + opsBypassRestrictions = false + + #Nutritional PasteSettings + [general.nutritional_paste] + #Saturation level of Nutritional Paste when eaten. + saturation = 0.8 + #How much mB of Nutritional Paste equates to one 'half-food.' + mbPerFood = 50 + + #Thermal Evaporation Plant Settings + [general.thermal_evaporation] + #Thermal Evaporation Tower heat loss per tick. + heatDissipation = 0.02 + #Temperature to amount produced ratio for Thermal Evaporation Tower. + tempMultiplier = 0.4 + #Heat to absorb per Solar Panel array of Thermal Evaporation Tower. + solarMultiplier = 0.2 + #Heat capacity of Thermal Evaporation Tower layers (increases amount of energy needed to increase temperature). + heatCapacity = 100.0 + + #SPS Settings + [general.sps] + #How much input gas (polonium) in mB must be processed to make 1 mB of antimatter. + #Range: > 1 + inputPerAntimatter = 1000 + #Energy needed to process 1 mB of input (inputPerAntimatter * energyPerInput = energy to produce 1 mB of antimatter). + energyPerInput = "1000000" + diff --git a/config/Mekanism/generators.toml b/config/Mekanism/generators.toml new file mode 100644 index 0000000000..655103a122 --- /dev/null +++ b/config/Mekanism/generators.toml @@ -0,0 +1,71 @@ + +#Mekanism Generators Config. This config is synced between server and client. +[generators] + #Amount of energy in Joules the Bio Generator produces per tick. + bioGeneration = "350" + #Affects the Injection Rate, Max Temp, and Ignition Temp. + energyPerFusionFuel = "10000000" + #Peak output for the Solar Generator. Note: It can go higher than this value in some extreme environments. + solarGeneration = "50" + #Peak output for the Advanced Solar Generator. Note: It can go higher than this value in some extreme environments. + advancedSolarGeneration = "300" + + #Heat Generator Settings + [generators.heat_generator] + #Amount of energy in Joules the Heat Generator produces per tick. (heatGenerationLava * heatGenerationLava) + heatGenerationNether + heatGeneration = "200" + #Multiplier of effectiveness of Lava in the Heat Generator. + heatGenerationLava = "30" + #Add this amount of Joules to the energy produced by a heat generator if it is in the Nether. + heatGenerationNether = "100" + + #Turbine Settings + [generators.turbine] + #The number of blades on each turbine coil per blade applied. + turbineBladesPerCoil = 4 + #The rate at which steam is vented into the turbine. + turbineVentGasFlow = 32000.0 + #The rate at which steam is dispersed into the turbine. + turbineDisperserGasFlow = 1280.0 + #The rate at which steam is condensed in the turbine. + condenserRate = 64000 + + #Wind Generator Settings + [generators.wind_generator] + #Minimum base generation value of the Wind Generator. + windGenerationMin = "60" + #Maximum base generation value of the Wind Generator. + windGenerationMax = "480" + #The minimum Y value that affects the Wind Generators Power generation. + windGenerationMinY = 24 + #The maximum Y value that affects the Wind Generators Power generation. + windGenerationMaxY = 255 + #The list of dimension ids that the Wind Generator will not generate power in. + windGenerationDimBlacklist = [] + + #Hohlraum Settings + [generators.hohlraum] + #Hohlraum capacity in mB. + #Range: 1 ~ 9223372036854775807 + maxGas = 10 + #Amount of DT-Fuel Hohlraum can accept per tick. + #Range: 1 ~ 9223372036854775807 + fillRate = 1 + + #Fission Reactor Settings + [generators.fission_reactor] + #Amount of energy created (in heat) from each whole mB of fission fuel. + energyPerFissionFuel = "1000000" + #The heat capacity added to a Fission Reactor by a single casing block. Increase to require more energy to raise the reactor temperature. + casingHeatCapacity = 1000.0 + #The average surface area of a Fission Reactor's fuel assemblies to reach 100% boil efficiency. Higher values make it harder to cool the reactor. + #Range: 1.0 ~ 1.7976931348623157E308 + surfaceAreaTarget = 4.0 + #Whether catastrophic meltdowns can occur from Fission Reactors. + meltdownsEnabled = true + #The chance of a meltdown occurring once damage passes 100%. Will linearly scale as damage continues increasing. + #Range: 0.0 ~ 1.0 + meltdownChance = 0.001 + #How much radioactivity of fuel/waste contents are multiplied during a meltdown. + meltdownRadiationMultiplier = 50.0 + diff --git a/config/Mekanism/machine-storage.toml b/config/Mekanism/machine-storage.toml new file mode 100644 index 0000000000..e83f51ff84 --- /dev/null +++ b/config/Mekanism/machine-storage.toml @@ -0,0 +1,64 @@ + +#Machine Energy Storage Config. This config is synced from server to client. +[storage] + #Base energy storage (Joules). + enrichmentChamber = "20000" + #Base energy storage (Joules). + osmiumCompressor = "80000" + #Base energy storage (Joules). + combiner = "40000" + #Base energy storage (Joules). + crusher = "20000" + #Base energy storage (Joules). + metallurgicInfuser = "20000" + #Base energy storage (Joules). + purificationChamber = "80000" + #Base energy storage (Joules). + energizedSmelter = "20000" + #Base energy storage (Joules). + digitalMiner = "40000" + #Base energy storage (Joules). + electricPump = "40000" + #Base energy storage (Joules). + chargePad = "512000" + #Base energy storage (Joules). + rotaryCondensentrator = "20000" + #Base energy storage (Joules). + oxidationChamber = "80000" + #Base energy storage (Joules). + chemicalInfuser = "80000" + #Base energy storage (Joules). + chemicalInjectionChamber = "160000" + #Base energy storage (Joules). + electrolyticSeparator = "160000" + #Base energy storage (Joules). + precisionSawmill = "20000" + #Base energy storage (Joules). + chemicalDissolutionChamber = "160000" + #Base energy storage (Joules). + chemicalWasher = "80000" + #Base energy storage (Joules). + chemicalCrystallizer = "160000" + #Base energy storage (Joules). + seismicVibrator = "20000" + #Base energy storage (Joules). + pressurizedReactionBase = "2000" + #Base energy storage (Joules). + fluidicPlenisher = "40000" + #Base energy storage (Joules). + laser = "2000000" + #Base energy storage (Joules). + formulaicAssemblicator = "40000" + #Base energy storage (Joules). + teleporter = "5000000" + #Base energy storage (Joules). + modificationStation = "40000" + #Base energy storage (Joules). + isotopicCentrifuge = "80000" + #Base energy storage (Joules). + nutritionalLiquifier = "40000" + #Base energy storage (Joules). Also defines max process rate. + antiprotonicNucleosynthesizer = "1000000000" + #Base energy storage (Joules). Also defines max output rate. + spsPort = "1000000000" + diff --git a/config/Mekanism/machine-usage.toml b/config/Mekanism/machine-usage.toml new file mode 100644 index 0000000000..61313ec53a --- /dev/null +++ b/config/Mekanism/machine-usage.toml @@ -0,0 +1,65 @@ + +#Machine Energy Usage Config. This config is synced from server to client. +[usage] + #Energy per operation tick (Joules). + enrichmentChamber = "50" + #Energy per operation tick (Joules). + osmiumCompressor = "100" + #Energy per operation tick (Joules). + combiner = "50" + #Energy per operation tick (Joules). + crusher = "50" + #Energy per operation tick (Joules). + metallurgicInfuser = "50" + #Energy per operation tick (Joules). + purificationChamber = "200" + #Energy per operation tick (Joules). + energizedSmelter = "50" + #Energy per operation tick (Joules). + digitalMiner = "100" + #Energy per operation tick (Joules). + electricPump = "100" + #Energy per operation tick (Joules). + rotaryCondensentrator = "50" + #Energy per operation tick (Joules). + oxidationChamber = "200" + #Energy per operation tick (Joules). + chemicalInfuser = "200" + #Energy per operation tick (Joules). + chemicalInjectionChamber = "400" + #Energy per operation tick (Joules). + precisionSawmill = "50" + #Energy per operation tick (Joules). + chemicalDissolutionChamber = "400" + #Energy per operation tick (Joules). + chemicalWasher = "200" + #Energy per operation tick (Joules). + chemicalCrystallizer = "400" + #Energy per operation tick (Joules). + seismicVibrator = "50" + #Energy per operation tick (Joules). + pressurizedReactionBase = "5" + #Energy per operation tick (Joules). + fluidicPlenisher = "100" + #Energy per operation tick (Joules). + laser = "10000" + #Energy per operation tick (Joules). + formulaicAssemblicator = "100" + #Energy per operation tick (Joules). + modificationStation = "100" + #Energy per operation tick (Joules). + isotopicCentrifuge = "200" + #Energy per operation tick (Joules). + nutritionalLiquifier = "200" + #Energy per operation tick (Joules). + antiprotonicNucleosynthesizer = "100000" + + #Teleporter + [usage.teleporter] + #Base Joules cost for a teleportation. + teleporterBase = "1000" + #Joules per unit of distance travelled during teleportation - sqrt(xDiff^2 + yDiff^2 + zDiff^2). + teleporterDistance = "10" + #Flat additional cost for interdimensional teleportation. + teleporterDimensionPenalty = "10000" + diff --git a/config/Mekanism/tiers.toml b/config/Mekanism/tiers.toml new file mode 100644 index 0000000000..32cfa4f551 --- /dev/null +++ b/config/Mekanism/tiers.toml @@ -0,0 +1,264 @@ + +#Tier Config. This config is synced from server to client. +[tier] + + #Energy Cubes + [tier.energy_cubes] + #Maximum number of Joules Basic energy cubes can store. + basicStorage = "4000000" + #Output rate in Joules of Basic energy cubes. + basicOutput = "4000" + #Maximum number of Joules Advanced energy cubes can store. + advancedStorage = "16000000" + #Output rate in Joules of Advanced energy cubes. + advancedOutput = "16000" + #Maximum number of Joules Elite energy cubes can store. + eliteStorage = "64000000" + #Output rate in Joules of Elite energy cubes. + eliteOutput = "64000" + #Maximum number of Joules Ultimate energy cubes can store. + ultimateStorage = "256000000" + #Output rate in Joules of Ultimate energy cubes. + ultimateOutput = "256000" + #Maximum number of Joules Creative energy cubes can store. + creativeStorage = "18446744073709551615.9999" + #Output rate in Joules of Creative energy cubes. + creativeOutput = "18446744073709551615.9999" + + #Fluid Tanks + [tier.fluid_tanks] + #Storage size of Basic fluid tanks in mB. + #Range: > 1 + basicStorage = 14000 + #Output rate of Basic fluid tanks in mB. + #Range: > 1 + basicOutput = 400 + #Storage size of Advanced fluid tanks in mB. + #Range: > 1 + advancedStorage = 28000 + #Output rate of Advanced fluid tanks in mB. + #Range: > 1 + advancedOutput = 800 + #Storage size of Elite fluid tanks in mB. + #Range: > 1 + eliteStorage = 56000 + #Output rate of Elite fluid tanks in mB. + #Range: > 1 + eliteOutput = 1600 + #Storage size of Ultimate fluid tanks in mB. + #Range: > 1 + ultimateStorage = 112000 + #Output rate of Ultimate fluid tanks in mB. + #Range: > 1 + ultimateOutput = 3200 + #Storage size of Creative fluid tanks in mB. + #Range: > 1 + creativeStorage = 2147483647 + #Output rate of Creative fluid tanks in mB. + #Range: > 1 + creativeOutput = 1073741823 + + #Chemical Tanks + [tier.chemical_tanks] + #Storage size of Basic chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + basicStorage = 64000 + #Output rate of Basic chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + basicOutput = 256 + #Storage size of Advanced chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + advancedStorage = 128000 + #Output rate of Advanced chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + advancedOutput = 512 + #Storage size of Elite chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + eliteStorage = 256000 + #Output rate of Elite chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + eliteOutput = 1028 + #Storage size of Ultimate chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + ultimateStorage = 512000 + #Output rate of Ultimate chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + ultimateOutput = 2056 + #Storage size of Creative chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + creativeStorage = 9223372036854775807 + #Output rate of Creative chemical tanks in mB. + #Range: 1 ~ 9223372036854775807 + creativeOutput = 4611686018427387903 + + #Bins + [tier.bins] + #The number of items Basic bins can store. + #Range: > 1 + basicStorage = 4096 + #The number of items Advanced bins can store. + #Range: > 1 + advancedStorage = 8192 + #The number of items Elite bins can store. + #Range: > 1 + eliteStorage = 32768 + #The number of items Ultimate bins can store. + #Range: > 1 + ultimateStorage = 262144 + #The number of items Creative bins can store. + #Range: > 1 + creativeStorage = 2147483647 + + #Induction + [tier.induction] + #Maximum number of Joules Basic induction cells can store. + basicStorage = "8000000000" + #Maximum number of Joules Advanced induction cells can store. + advancedStorage = "64000000000" + #Maximum number of Joules Elite induction cells can store. + eliteStorage = "512000000000" + #Maximum number of Joules Ultimate induction cells can store. + ultimateStorage = "4000000000000" + #Maximum number of Joules Basic induction providers can output or accept. + basicOutput = "256000" + #Maximum number of Joules Advanced induction providers can output or accept. + advancedOutput = "2048000" + #Maximum number of Joules Elite induction providers can output or accept. + eliteOutput = "16384000" + #Maximum number of Joules Ultimate induction providers can output or accept. + ultimateOutput = "131072000" + + #Transmitters + [tier.transmitters] + + #Universal Cables + [tier.transmitters.energy] + #Internal buffer in Joules of each Basic universal cable. + basicCapacity = "8000" + #Internal buffer in Joules of each Advanced universal cable. + advancedCapacity = "128000" + #Internal buffer in Joules of each Elite universal cable. + eliteCapacity = "1024000" + #Internal buffer in Joules of each Ultimate universal cable. + ultimateCapacity = "8192000" + + #Mechanical Pipes + [tier.transmitters.fluid] + #Capacity of Basic mechanical pipes in mB. + #Range: > 1 + basicCapacity = 4000 + #Pump rate of Basic mechanical pipes in mB/t. + #Range: > 1 + basicPullAmount = 512 + #Capacity of Advanced mechanical pipes in mB. + #Range: > 1 + advancedCapacity = 8000 + #Pump rate of Advanced mechanical pipes in mB/t. + #Range: > 1 + advancedPullAmount = 1000 + #Capacity of Elite mechanical pipes in mB. + #Range: > 1 + eliteCapacity = 64000 + #Pump rate of Elite mechanical pipes in mB/t. + #Range: > 1 + elitePullAmount = 16000 + #Capacity of Ultimate mechanical pipes in mB. + #Range: > 1 + ultimateCapacity = 512000 + #Pump rate of Ultimate mechanical pipes in mB/t. + #Range: > 1 + ultimatePullAmount = 64000 + + #Pressurized Tubes + [tier.transmitters.gas] + #Capacity of Basic pressurized tubes in mB. + #Range: 1 ~ 9223372036854775807 + basicCapacity = 8000 + #Pump rate of Basic pressurized tubes in mB/t. + #Range: 1 ~ 9223372036854775807 + basicPullAmount = 1000 + #Capacity of Advanced pressurized tubes in mB. + #Range: 1 ~ 9223372036854775807 + advancedCapacity = 64000 + #Pump rate of Advanced pressurized tubes in mB/t. + #Range: 1 ~ 9223372036854775807 + advancedPullAmount = 4000 + #Capacity of Elite pressurized tubes in mB. + #Range: 1 ~ 9223372036854775807 + eliteCapacity = 1000000 + #Pump rate of Elite pressurized tubes in mB/t. + #Range: 1 ~ 9223372036854775807 + elitePullAmount = 128000 + #Capacity of Ultimate pressurized tubes in mB. + #Range: 1 ~ 9223372036854775807 + ultimateCapacity = 16000000 + #Pump rate of Ultimate pressurized tubes in mB/t. + #Range: 1 ~ 9223372036854775807 + ultimatePullAmount = 1024000 + + #Logistical Transporters + [tier.transmitters.items] + #Item throughput rate of Basic logistical transporters in items/s. + #Range: > 1 + basicPullAmount = 1 + #Five times travel speed of Basic logistical transporter. + #Range: > 1 + basicSpeed = 5 + #Item throughput rate of Advanced logistical transporters in items/s. + #Range: > 1 + advancedPullAmount = 16 + #Five times travel speed of Advanced logistical transporter. + #Range: > 1 + advancedSpeed = 10 + #Item throughput rate of Elite logistical transporters in items/s. + #Range: > 1 + elitePullAmount = 32 + #Five times travel speed of Elite logistical transporter. + #Range: > 1 + eliteSpeed = 20 + #Item throughput rate of Ultimate logistical transporters in items/s. + #Range: > 1 + ultimatePullAmount = 64 + #Five times travel speed of Ultimate logistical transporter. + #Range: > 1 + ultimateSpeed = 50 + + #Thermodynamic Conductors + [tier.transmitters.heat] + #Conduction value of Basic thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + basicInverseConduction = 5.0 + #Heat capacity of Basic thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + basicHeatCapacity = 1.0 + #Insulation value of Basic thermodynamic conductor. + #Range: 0.0 ~ 1.7976931348623157E308 + basicInsulation = 10.0 + #Conduction value of Advanced thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + advancedInverseConduction = 5.0 + #Heat capacity of Advanced thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + advancedHeatCapacity = 1.0 + #Insulation value of Advanced thermodynamic conductor. + #Range: 0.0 ~ 1.7976931348623157E308 + advancedInsulation = 400.0 + #Conduction value of Elite thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + eliteInverseConduction = 5.0 + #Heat capacity of Elite thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + eliteHeatCapacity = 1.0 + #Insulation value of Elite thermodynamic conductor. + #Range: 0.0 ~ 1.7976931348623157E308 + eliteInsulation = 8000.0 + #Conduction value of Ultimate thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + ultimateInverseConduction = 5.0 + #Heat capacity of Ultimate thermodynamic conductors. + #Range: 1.0 ~ 1.7976931348623157E308 + ultimateHeatCapacity = 1.0 + #Insulation value of Ultimate thermodynamic conductor. + #Range: 0.0 ~ 1.7976931348623157E308 + ultimateInsulation = 100000.0 + diff --git a/config/Mekanism/tools.toml b/config/Mekanism/tools.toml new file mode 100644 index 0000000000..9f6ac340e4 --- /dev/null +++ b/config/Mekanism/tools.toml @@ -0,0 +1,535 @@ + +#Mekanism Tools Config. This config is synced from server to client. +[tools] + #The chance that Mekanism Armor can spawn on mobs. + #Range: 0.0 ~ 1.0 + mobArmorSpawnRate = 0.03 + + # Material Settings for bronze + [tools.bronze] + #Base attack damage of bronze items. + #Range: 0.0 ~ 3.4028234663852886E38 + bronzeAttackDamage = 6.0 + #Maximum durability of bronze shields. + #Range: > 0 + bronzeShieldDurability = 1568 + #Attack damage modifier of bronze swords. + bronzeSwordDamage = 3 + #Attack speed of bronze swords. + bronzeSwordAtkSpeed = -2.4000000953674316 + #Attack damage modifier of bronze shovels. + #Range: 0.0 ~ 3.4028234663852886E38 + bronzeShovelDamage = 1.5 + #Attack speed of bronze shovels. + bronzeShovelAtkSpeed = -3.0 + #Attack damage modifier of bronze axes. + #Range: 0.0 ~ 3.4028234663852886E38 + bronzeAxeDamage = 2.0 + #Attack speed of bronze axes. + bronzeAxeAtkSpeed = -3.0999999046325684 + #Attack damage modifier of bronze pickaxes. + bronzePickaxeDamage = 1 + #Attack speed of bronze pickaxes. + bronzePickaxeAtkSpeed = -2.799999952316284 + #Attack damage modifier of bronze hoes. + bronzeHoeDamage = -6 + #Attack speed of bronze hoes. + bronzeHoeAtkSpeed = 3.0 + #Maximum durability of bronze tools. + #Range: > 1 + bronzeToolMaxUses = 800 + #Efficiency of bronze tools. + bronzeEfficiency = 14.0 + #Harvest level of bronze paxels. + #Range: > 0 + bronzePaxelHarvestLevel = 3 + #Attack damage modifier of bronze paxels. + #Range: 0.0 ~ 3.4028234663852886E38 + bronzePaxelDamage = 8.0 + #Attack speed of bronze paxels. + bronzePaxelAtkSpeed = -2.4000000953674316 + #Efficiency of bronze paxels. + bronzePaxelEfficiency = 16.0 + #Natural enchantability factor of bronze paxels. + #Range: > 0 + bronzePaxelEnchantability = 14 + #Maximum durability of bronze paxels. + #Range: > 1 + bronzePaxelMaxUses = 1100 + #Harvest level of bronze tools. + #Range: > 0 + bronzeHarvestLevel = 2 + #Natural enchantability factor of bronze items. + #Range: > 0 + bronzeEnchantability = 10 + #Base armor toughness value of bronze armor. + #Range: 0.0 ~ 3.4028234663852886E38 + bronzeToughness = 0.0 + #Base armor knockback resistance value of bronze armor. + #Range: 0.0 ~ 3.4028234663852886E38 + bronzeKnockbackResistance = 0.0 + #Maximum durability of bronze boots. + #Range: > 1 + bronzeBootDurability = 455 + #Maximum durability of bronze leggings. + #Range: > 1 + bronzeLeggingDurability = 525 + #Maximum durability of bronze chestplates. + #Range: > 1 + bronzeChestplateDurability = 560 + #Maximum durability of bronze helmets. + #Range: > 1 + bronzeHelmetDurability = 385 + #Protection value of bronze boots. + #Range: > 0 + bronzeBootArmor = 2 + #Protection value of bronze leggings. + #Range: > 0 + bronzeLeggingArmor = 5 + #Protection value of bronze chestplates. + #Range: > 0 + bronzeChestplateArmor = 6 + #Protection value of bronze helmets. + #Range: > 0 + bronzeHelmetArmor = 3 + + # Material Settings for lapis_lazuli + [tools.lapis_lazuli] + #Base attack damage of lapis_lazuli items. + #Range: 0.0 ~ 3.4028234663852886E38 + lapis_lazuliAttackDamage = 2.0 + #Maximum durability of lapis_lazuli shields. + #Range: > 0 + lapis_lazuliShieldDurability = 582 + #Attack damage modifier of lapis_lazuli swords. + lapis_lazuliSwordDamage = 3 + #Attack speed of lapis_lazuli swords. + lapis_lazuliSwordAtkSpeed = -2.4000000953674316 + #Attack damage modifier of lapis_lazuli shovels. + #Range: 0.0 ~ 3.4028234663852886E38 + lapis_lazuliShovelDamage = 1.5 + #Attack speed of lapis_lazuli shovels. + lapis_lazuliShovelAtkSpeed = -3.0 + #Attack damage modifier of lapis_lazuli axes. + #Range: 0.0 ~ 3.4028234663852886E38 + lapis_lazuliAxeDamage = 6.0 + #Attack speed of lapis_lazuli axes. + lapis_lazuliAxeAtkSpeed = -3.0999999046325684 + #Attack damage modifier of lapis_lazuli pickaxes. + lapis_lazuliPickaxeDamage = 1 + #Attack speed of lapis_lazuli pickaxes. + lapis_lazuliPickaxeAtkSpeed = -2.799999952316284 + #Attack damage modifier of lapis_lazuli hoes. + lapis_lazuliHoeDamage = -2 + #Attack speed of lapis_lazuli hoes. + lapis_lazuliHoeAtkSpeed = -1.0 + #Maximum durability of lapis_lazuli tools. + #Range: > 1 + lapis_lazuliToolMaxUses = 200 + #Efficiency of lapis_lazuli tools. + lapis_lazuliEfficiency = 5.0 + #Harvest level of lapis_lazuli paxels. + #Range: > 0 + lapis_lazuliPaxelHarvestLevel = 2 + #Attack damage modifier of lapis_lazuli paxels. + #Range: 0.0 ~ 3.4028234663852886E38 + lapis_lazuliPaxelDamage = 6.0 + #Attack speed of lapis_lazuli paxels. + lapis_lazuliPaxelAtkSpeed = -2.4000000953674316 + #Efficiency of lapis_lazuli paxels. + lapis_lazuliPaxelEfficiency = 6.0 + #Natural enchantability factor of lapis_lazuli paxels. + #Range: > 0 + lapis_lazuliPaxelEnchantability = 10 + #Maximum durability of lapis_lazuli paxels. + #Range: > 1 + lapis_lazuliPaxelMaxUses = 250 + #Harvest level of lapis_lazuli tools. + #Range: > 0 + lapis_lazuliHarvestLevel = 2 + #Natural enchantability factor of lapis_lazuli items. + #Range: > 0 + lapis_lazuliEnchantability = 8 + #Base armor toughness value of lapis_lazuli armor. + #Range: 0.0 ~ 3.4028234663852886E38 + lapis_lazuliToughness = 0.0 + #Base armor knockback resistance value of lapis_lazuli armor. + #Range: 0.0 ~ 3.4028234663852886E38 + lapis_lazuliKnockbackResistance = 0.0 + #Maximum durability of lapis_lazuli boots. + #Range: > 1 + lapis_lazuliBootDurability = 169 + #Maximum durability of lapis_lazuli leggings. + #Range: > 1 + lapis_lazuliLeggingDurability = 195 + #Maximum durability of lapis_lazuli chestplates. + #Range: > 1 + lapis_lazuliChestplateDurability = 208 + #Maximum durability of lapis_lazuli helmets. + #Range: > 1 + lapis_lazuliHelmetDurability = 143 + #Protection value of lapis_lazuli boots. + #Range: > 0 + lapis_lazuliBootArmor = 2 + #Protection value of lapis_lazuli leggings. + #Range: > 0 + lapis_lazuliLeggingArmor = 6 + #Protection value of lapis_lazuli chestplates. + #Range: > 0 + lapis_lazuliChestplateArmor = 5 + #Protection value of lapis_lazuli helmets. + #Range: > 0 + lapis_lazuliHelmetArmor = 2 + + # Material Settings for osmium + [tools.osmium] + #Base attack damage of osmium items. + #Range: 0.0 ~ 3.4028234663852886E38 + osmiumAttackDamage = 4.0 + #Maximum durability of osmium shields. + #Range: > 0 + osmiumShieldDurability = 1344 + #Attack damage modifier of osmium swords. + osmiumSwordDamage = 3 + #Attack speed of osmium swords. + osmiumSwordAtkSpeed = -2.4000000953674316 + #Attack damage modifier of osmium shovels. + #Range: 0.0 ~ 3.4028234663852886E38 + osmiumShovelDamage = 1.5 + #Attack speed of osmium shovels. + osmiumShovelAtkSpeed = -3.0 + #Attack damage modifier of osmium axes. + #Range: 0.0 ~ 3.4028234663852886E38 + osmiumAxeDamage = 4.0 + #Attack speed of osmium axes. + osmiumAxeAtkSpeed = -3.0 + #Attack damage modifier of osmium pickaxes. + osmiumPickaxeDamage = 1 + #Attack speed of osmium pickaxes. + osmiumPickaxeAtkSpeed = -2.799999952316284 + #Attack damage modifier of osmium hoes. + osmiumHoeDamage = -4 + #Attack speed of osmium hoes. + osmiumHoeAtkSpeed = 1.0 + #Maximum durability of osmium tools. + #Range: > 1 + osmiumToolMaxUses = 500 + #Efficiency of osmium tools. + osmiumEfficiency = 10.0 + #Harvest level of osmium paxels. + #Range: > 0 + osmiumPaxelHarvestLevel = 3 + #Attack damage modifier of osmium paxels. + #Range: 0.0 ~ 3.4028234663852886E38 + osmiumPaxelDamage = 5.0 + #Attack speed of osmium paxels. + osmiumPaxelAtkSpeed = -2.4000000953674316 + #Efficiency of osmium paxels. + osmiumPaxelEfficiency = 12.0 + #Natural enchantability factor of osmium paxels. + #Range: > 0 + osmiumPaxelEnchantability = 16 + #Maximum durability of osmium paxels. + #Range: > 1 + osmiumPaxelMaxUses = 700 + #Harvest level of osmium tools. + #Range: > 0 + osmiumHarvestLevel = 2 + #Natural enchantability factor of osmium items. + #Range: > 0 + osmiumEnchantability = 12 + #Base armor toughness value of osmium armor. + #Range: 0.0 ~ 3.4028234663852886E38 + osmiumToughness = 1.0 + #Base armor knockback resistance value of osmium armor. + #Range: 0.0 ~ 3.4028234663852886E38 + osmiumKnockbackResistance = 0.0 + #Maximum durability of osmium boots. + #Range: > 1 + osmiumBootDurability = 390 + #Maximum durability of osmium leggings. + #Range: > 1 + osmiumLeggingDurability = 450 + #Maximum durability of osmium chestplates. + #Range: > 1 + osmiumChestplateDurability = 480 + #Maximum durability of osmium helmets. + #Range: > 1 + osmiumHelmetDurability = 330 + #Protection value of osmium boots. + #Range: > 0 + osmiumBootArmor = 3 + #Protection value of osmium leggings. + #Range: > 0 + osmiumLeggingArmor = 6 + #Protection value of osmium chestplates. + #Range: > 0 + osmiumChestplateArmor = 5 + #Protection value of osmium helmets. + #Range: > 0 + osmiumHelmetArmor = 3 + + # Material Settings for refined_glowstone + [tools.refined_glowstone] + #Base attack damage of refined_glowstone items. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_glowstoneAttackDamage = 5.0 + #Maximum durability of refined_glowstone shields. + #Range: > 0 + refined_glowstoneShieldDurability = 806 + #Attack damage modifier of refined_glowstone swords. + refined_glowstoneSwordDamage = 3 + #Attack speed of refined_glowstone swords. + refined_glowstoneSwordAtkSpeed = -2.4000000953674316 + #Attack damage modifier of refined_glowstone shovels. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_glowstoneShovelDamage = 1.5 + #Attack speed of refined_glowstone shovels. + refined_glowstoneShovelAtkSpeed = -3.0 + #Attack damage modifier of refined_glowstone axes. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_glowstoneAxeDamage = 3.0 + #Attack speed of refined_glowstone axes. + refined_glowstoneAxeAtkSpeed = -3.0999999046325684 + #Attack damage modifier of refined_glowstone pickaxes. + refined_glowstonePickaxeDamage = 1 + #Attack speed of refined_glowstone pickaxes. + refined_glowstonePickaxeAtkSpeed = -2.799999952316284 + #Attack damage modifier of refined_glowstone hoes. + refined_glowstoneHoeDamage = -5 + #Attack speed of refined_glowstone hoes. + refined_glowstoneHoeAtkSpeed = 2.0 + #Maximum durability of refined_glowstone tools. + #Range: > 1 + refined_glowstoneToolMaxUses = 300 + #Efficiency of refined_glowstone tools. + refined_glowstoneEfficiency = 14.0 + #Harvest level of refined_glowstone paxels. + #Range: > 0 + refined_glowstonePaxelHarvestLevel = 3 + #Attack damage modifier of refined_glowstone paxels. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_glowstonePaxelDamage = 4.0 + #Attack speed of refined_glowstone paxels. + refined_glowstonePaxelAtkSpeed = -2.4000000953674316 + #Efficiency of refined_glowstone paxels. + refined_glowstonePaxelEfficiency = 18.0 + #Natural enchantability factor of refined_glowstone paxels. + #Range: > 0 + refined_glowstonePaxelEnchantability = 22 + #Maximum durability of refined_glowstone paxels. + #Range: > 1 + refined_glowstonePaxelMaxUses = 450 + #Harvest level of refined_glowstone tools. + #Range: > 0 + refined_glowstoneHarvestLevel = 2 + #Natural enchantability factor of refined_glowstone items. + #Range: > 0 + refined_glowstoneEnchantability = 18 + #Base armor toughness value of refined_glowstone armor. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_glowstoneToughness = 0.0 + #Base armor knockback resistance value of refined_glowstone armor. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_glowstoneKnockbackResistance = 0.0 + #Maximum durability of refined_glowstone boots. + #Range: > 1 + refined_glowstoneBootDurability = 234 + #Maximum durability of refined_glowstone leggings. + #Range: > 1 + refined_glowstoneLeggingDurability = 270 + #Maximum durability of refined_glowstone chestplates. + #Range: > 1 + refined_glowstoneChestplateDurability = 288 + #Maximum durability of refined_glowstone helmets. + #Range: > 1 + refined_glowstoneHelmetDurability = 198 + #Protection value of refined_glowstone boots. + #Range: > 0 + refined_glowstoneBootArmor = 3 + #Protection value of refined_glowstone leggings. + #Range: > 0 + refined_glowstoneLeggingArmor = 6 + #Protection value of refined_glowstone chestplates. + #Range: > 0 + refined_glowstoneChestplateArmor = 7 + #Protection value of refined_glowstone helmets. + #Range: > 0 + refined_glowstoneHelmetArmor = 3 + + # Material Settings for refined_obsidian + [tools.refined_obsidian] + #Base attack damage of refined_obsidian items. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_obsidianAttackDamage = 10.0 + #Maximum durability of refined_obsidian shields. + #Range: > 0 + refined_obsidianShieldDurability = 2240 + #Attack damage modifier of refined_obsidian swords. + refined_obsidianSwordDamage = 3 + #Attack speed of refined_obsidian swords. + refined_obsidianSwordAtkSpeed = -2.4000000953674316 + #Attack damage modifier of refined_obsidian shovels. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_obsidianShovelDamage = 1.5 + #Attack speed of refined_obsidian shovels. + refined_obsidianShovelAtkSpeed = -3.0 + #Attack damage modifier of refined_obsidian axes. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_obsidianAxeDamage = 2.0 + #Attack speed of refined_obsidian axes. + refined_obsidianAxeAtkSpeed = -2.0 + #Attack damage modifier of refined_obsidian pickaxes. + refined_obsidianPickaxeDamage = 1 + #Attack speed of refined_obsidian pickaxes. + refined_obsidianPickaxeAtkSpeed = -2.799999952316284 + #Attack damage modifier of refined_obsidian hoes. + refined_obsidianHoeDamage = -10 + #Attack speed of refined_obsidian hoes. + refined_obsidianHoeAtkSpeed = 7.0 + #Maximum durability of refined_obsidian tools. + #Range: > 1 + refined_obsidianToolMaxUses = 2500 + #Efficiency of refined_obsidian tools. + refined_obsidianEfficiency = 20.0 + #Harvest level of refined_obsidian paxels. + #Range: > 0 + refined_obsidianPaxelHarvestLevel = 3 + #Attack damage modifier of refined_obsidian paxels. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_obsidianPaxelDamage = 4.0 + #Attack speed of refined_obsidian paxels. + refined_obsidianPaxelAtkSpeed = -2.4000000953674316 + #Efficiency of refined_obsidian paxels. + refined_obsidianPaxelEfficiency = 25.0 + #Natural enchantability factor of refined_obsidian paxels. + #Range: > 0 + refined_obsidianPaxelEnchantability = 50 + #Maximum durability of refined_obsidian paxels. + #Range: > 1 + refined_obsidianPaxelMaxUses = 3000 + #Harvest level of refined_obsidian tools. + #Range: > 0 + refined_obsidianHarvestLevel = 3 + #Natural enchantability factor of refined_obsidian items. + #Range: > 0 + refined_obsidianEnchantability = 40 + #Base armor toughness value of refined_obsidian armor. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_obsidianToughness = 4.0 + #Base armor knockback resistance value of refined_obsidian armor. + #Range: 0.0 ~ 3.4028234663852886E38 + refined_obsidianKnockbackResistance = 0.10000000149011612 + #Maximum durability of refined_obsidian boots. + #Range: > 1 + refined_obsidianBootDurability = 650 + #Maximum durability of refined_obsidian leggings. + #Range: > 1 + refined_obsidianLeggingDurability = 750 + #Maximum durability of refined_obsidian chestplates. + #Range: > 1 + refined_obsidianChestplateDurability = 800 + #Maximum durability of refined_obsidian helmets. + #Range: > 1 + refined_obsidianHelmetDurability = 550 + #Protection value of refined_obsidian boots. + #Range: > 0 + refined_obsidianBootArmor = 5 + #Protection value of refined_obsidian leggings. + #Range: > 0 + refined_obsidianLeggingArmor = 8 + #Protection value of refined_obsidian chestplates. + #Range: > 0 + refined_obsidianChestplateArmor = 12 + #Protection value of refined_obsidian helmets. + #Range: > 0 + refined_obsidianHelmetArmor = 5 + + # Material Settings for steel + [tools.steel] + #Base attack damage of steel items. + #Range: 0.0 ~ 3.4028234663852886E38 + steelAttackDamage = 4.0 + #Maximum durability of steel shields. + #Range: > 0 + steelShieldDurability = 1792 + #Attack damage modifier of steel swords. + steelSwordDamage = 3 + #Attack speed of steel swords. + steelSwordAtkSpeed = -2.4000000953674316 + #Attack damage modifier of steel shovels. + #Range: 0.0 ~ 3.4028234663852886E38 + steelShovelDamage = 1.5 + #Attack speed of steel shovels. + steelShovelAtkSpeed = -3.0 + #Attack damage modifier of steel axes. + #Range: 0.0 ~ 3.4028234663852886E38 + steelAxeDamage = 4.0 + #Attack speed of steel axes. + steelAxeAtkSpeed = -3.0 + #Attack damage modifier of steel pickaxes. + steelPickaxeDamage = 1 + #Attack speed of steel pickaxes. + steelPickaxeAtkSpeed = -2.799999952316284 + #Attack damage modifier of steel hoes. + steelHoeDamage = -4 + #Attack speed of steel hoes. + steelHoeAtkSpeed = 1.0 + #Maximum durability of steel tools. + #Range: > 1 + steelToolMaxUses = 850 + #Efficiency of steel tools. + steelEfficiency = 14.0 + #Harvest level of steel paxels. + #Range: > 0 + steelPaxelHarvestLevel = 3 + #Attack damage modifier of steel paxels. + #Range: 0.0 ~ 3.4028234663852886E38 + steelPaxelDamage = 8.0 + #Attack speed of steel paxels. + steelPaxelAtkSpeed = -2.4000000953674316 + #Efficiency of steel paxels. + steelPaxelEfficiency = 18.0 + #Natural enchantability factor of steel paxels. + #Range: > 0 + steelPaxelEnchantability = 14 + #Maximum durability of steel paxels. + #Range: > 1 + steelPaxelMaxUses = 1250 + #Harvest level of steel tools. + #Range: > 0 + steelHarvestLevel = 3 + #Natural enchantability factor of steel items. + #Range: > 0 + steelEnchantability = 10 + #Base armor toughness value of steel armor. + #Range: 0.0 ~ 3.4028234663852886E38 + steelToughness = 1.0 + #Base armor knockback resistance value of steel armor. + #Range: 0.0 ~ 3.4028234663852886E38 + steelKnockbackResistance = 0.0 + #Maximum durability of steel boots. + #Range: > 1 + steelBootDurability = 520 + #Maximum durability of steel leggings. + #Range: > 1 + steelLeggingDurability = 600 + #Maximum durability of steel chestplates. + #Range: > 1 + steelChestplateDurability = 640 + #Maximum durability of steel helmets. + #Range: > 1 + steelHelmetDurability = 440 + #Protection value of steel boots. + #Range: > 0 + steelBootArmor = 3 + #Protection value of steel leggings. + #Range: > 0 + steelLeggingArmor = 6 + #Protection value of steel chestplates. + #Range: > 0 + steelChestplateArmor = 7 + #Protection value of steel helmets. + #Range: > 0 + steelHelmetArmor = 3 + diff --git a/config/Mekanism/world.toml b/config/Mekanism/world.toml new file mode 100644 index 0000000000..41eb8c25a1 --- /dev/null +++ b/config/Mekanism/world.toml @@ -0,0 +1,131 @@ + +#World generation settings for Mekanism. This config is not synced from server to client +[world_generation] + #Allows chunks to retrogen Mekanism ore blocks. + enableRegeneration = false + #Change this value to cause Mekanism to regen its ore in all loaded chunks. + #Range: > 0 + userWorldGenVersion = 0 + + #Generation Settings for salt. + [world_generation.salt] + #Chance that salt generates in a chunk. + #Range: 1 ~ 65536 + perChunk = 2 + #Determines if salt should be added to world generation. + shouldGenerate = true + #Number of blocks to extend up and down when placing a vein of salt. + #Range: 0 ~ 127 + ySize = 1 + #Maximum number of blocks in a vein of salt. + #Range: 1 ~ 65536 + maxVeinSize = 6 + + #Generation Settings for tin ore. + [world_generation.tin] + #Chance that tin generates in a chunk. + #Range: 1 ~ 512 + perChunk = 14 + #Top offset for calculating height that veins of tin can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + topOffset = 0 + #Bottom offset for calculating height that veins of tin can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + bottomOffset = 0 + #Base maximum height (exclusive) that veins of tin can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + #Range: 1 ~ 256 + maxHeight = 60 + #Determines if tin ore should be added to world generation. + shouldGenerate = true + #Maximum number of blocks in a vein of tin. + #Range: 1 ~ 512 + maxVeinSize = 8 + + #Generation Settings for copper ore. + [world_generation.copper] + #Chance that copper generates in a chunk. + #Range: 1 ~ 512 + perChunk = 16 + #Top offset for calculating height that veins of copper can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + topOffset = 0 + #Bottom offset for calculating height that veins of copper can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + bottomOffset = 0 + #Base maximum height (exclusive) that veins of copper can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + #Range: 1 ~ 256 + maxHeight = 60 + #Determines if copper ore should be added to world generation. + shouldGenerate = true + #Maximum number of blocks in a vein of copper. + #Range: 1 ~ 512 + maxVeinSize = 8 + + #Generation Settings for osmium ore. + [world_generation.osmium] + #Chance that osmium generates in a chunk. + #Range: 1 ~ 512 + perChunk = 12 + #Top offset for calculating height that veins of osmium can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + topOffset = 0 + #Bottom offset for calculating height that veins of osmium can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + bottomOffset = 0 + #Base maximum height (exclusive) that veins of osmium can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + #Range: 1 ~ 256 + maxHeight = 60 + #Determines if osmium ore should be added to world generation. + shouldGenerate = true + #Maximum number of blocks in a vein of osmium. + #Range: 1 ~ 512 + maxVeinSize = 8 + + #Generation Settings for fluorite ore. + [world_generation.fluorite] + #Chance that fluorite generates in a chunk. + #Range: 1 ~ 512 + perChunk = 6 + #Top offset for calculating height that veins of fluorite can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + topOffset = 0 + #Bottom offset for calculating height that veins of fluorite can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + bottomOffset = 0 + #Base maximum height (exclusive) that veins of fluorite can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + #Range: 1 ~ 256 + maxHeight = 32 + #Determines if fluorite ore should be added to world generation. + shouldGenerate = true + #Maximum number of blocks in a vein of fluorite. + #Range: 1 ~ 512 + maxVeinSize = 12 + + #Generation Settings for uranium ore. + [world_generation.uranium] + #Chance that uranium generates in a chunk. + #Range: 1 ~ 512 + perChunk = 8 + #Top offset for calculating height that veins of uranium can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + topOffset = 0 + #Bottom offset for calculating height that veins of uranium can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + bottomOffset = 0 + #Base maximum height (exclusive) that veins of uranium can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + #Range: 1 ~ 256 + maxHeight = 60 + #Determines if uranium ore should be added to world generation. + shouldGenerate = true + #Maximum number of blocks in a vein of uranium. + #Range: 1 ~ 512 + maxVeinSize = 8 + + #Generation Settings for lead ore. + [world_generation.lead] + #Chance that lead generates in a chunk. + #Range: 1 ~ 512 + perChunk = 8 + #Top offset for calculating height that veins of lead can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + topOffset = 0 + #Bottom offset for calculating height that veins of lead can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + bottomOffset = 0 + #Base maximum height (exclusive) that veins of lead can spawn. Height is calculated by: random.nextInt(maxHeight - topOffset) + bottomOffset + #Range: 1 ~ 256 + maxHeight = 48 + #Determines if lead ore should be added to world generation. + shouldGenerate = true + #Maximum number of blocks in a vein of lead. + #Range: 1 ~ 512 + maxVeinSize = 8 + diff --git a/config/abnormals_core-common.toml b/config/abnormals_core-common.toml new file mode 100644 index 0000000000..2d246f2ddb --- /dev/null +++ b/config/abnormals_core-common.toml @@ -0,0 +1,18 @@ + +#Common only settings for Abnormals Core, this will affect all depending mods +[common] + #If Quark Sign Editing should be enabled; Default: True + quarkSignEditing = true + #If Quark Sign Editing requires an empty hand to edit; Default: False + signEditingRequiresEmptyHand = false + + #Compatibility with Quark's poisonous potatoes feature + [common.poisonousPotatoCompat] + #If growth stunting should give a booflo poison; Default: True + poisonEffect = true + #The chance to stunt booflo growth when feeding a poisonous potato; Default: 0.1 + #Range: 0.0 ~ 1.0 + poisonChance = 0.1 + #If booflos can be fed a poisonous potato to stunt their growth when Quark is installed; Default: True + poisonPotatoCompatEnabled = true + diff --git a/config/appleskin-client.toml b/config/appleskin-client.toml new file mode 100644 index 0000000000..92072e3f4e --- /dev/null +++ b/config/appleskin-client.toml @@ -0,0 +1,15 @@ + +[client] + #If true, shows the hunger (and saturation if showSaturationHudOverlay is true) that would be restored by food you are currently holding + showFoodValuesHudOverlay = true + #If true, shows your food exhaustion as a progress bar behind the hunger bars + showFoodExhaustionHudUnderlay = true + #If true, adds a line that shows your hunger, saturation, and exhaustion level in the F3 debug overlay + showFoodStatsInDebugOverlay = true + #If true, shows the hunger and saturation values of food in its tooltip while holding SHIFT + showFoodValuesInTooltip = true + #If true, shows the hunger and saturation values of food in its tooltip automatically (without needing to hold SHIFT) + showFoodValuesInTooltipAlways = true + #If true, shows your current saturation level overlayed on the hunger bar + showSaturationHudOverlay = true + diff --git a/config/bettercaves-1_16.toml b/config/bettercaves-1_16.toml new file mode 100644 index 0000000000..6034891833 --- /dev/null +++ b/config/bettercaves-1_16.toml @@ -0,0 +1,311 @@ + +["Better Caves"] + # List of dimensions that will have Better Caves. Ignored if Global Whitelisting is enabled. + # List must be comma-separated values enclosed in square brackets. + # Entries must have the mod namespace included. + # For example: "[minecraft:overworld, minecraft:the_nether, rats:ratlantis]" + # Default: "[minecraft:overworld]" + "Whitelisted Dimensions" = "[minecraft:overworld]" + # Automatically enables Better Caves in every possible dimension. + # If this is enabled, the Whitelisted Dimension IDs option is ignored. + # Default: false + "Enable Global Whitelist" = false + + ########################################################################################################### + ## Configure how bedrock generates. + ########################################################################################################### + ["Better Caves"."Bedrock Generation"] + # Replaces the usual bedrock generation pattern with flat layers. + # Activates in all whitelisted dimension, where applicable. The End is unaffected. + # Default: true + "Flatten Bedrock" = true + # The width of the bedrock layer. Only works if Flatten Bedrock is true. + #Range: 0 ~ 256 + "Bedrock Layer Width" = 1 + + ########################################################################################################### + ## Configure settings related to caves, caverns, ravines and more. + ########################################################################################################### + ["Better Caves"."Underground Generation"] + + ########################################################################################################### + ## Miscellaneous settings used in cave and cavern generation. + ########################################################################################################### + ["Better Caves"."Underground Generation".Miscellaneous] + # Set to true to enable flooded underground in ocean biomes. + # Default: true + "Enable Flooded Underground" = true + # Ignores surface detection for closing off caves and caverns, forcing them to spawn + # up until their max height. Useful for Nether-like dimensions with no real "surface". + # Default: false + "Override Surface Detection" = false + # Lava (or water in water regions) spawns at and below this y-coordinate. + # Default: 10 + #Range: 0 ~ 255 + "Liquid Altitude" = 10 + # Replace naturally generated floating gravel on the ocean floor with andesite. + # Can prevent lag due to cascading gravel falling into caverns under the ocean. + # Default: true + "Prevent Cascading Gravel" = true + # The block used for lava generation at and below the Liquid Altitude. + # Defaults to regular lava if an invalid block is given. + # Default: minecraft:lava + "Lava Block" = "minecraft:lava" + # The block used for water generation in water caves/caverns at and below the Liquid Altitude. + # Defaults to regular water if an invalid block is given. + # Default: minecraft:water + "Water Block" = "minecraft:water" + + ########################################################################################################### + ## Settings used in the generation of water regions. + ########################################################################################################### + ["Better Caves"."Underground Generation"."Water Regions"] + # Custom value for water region size. Smaller value = larger regions. This value is very sensitive to change. + # ONLY WORKS IF Water Region Size IS Custom. + # Provided values: + # Small: 0.008 + # Medium: 0.004 + # Large: 0.0028 + # ExtraLarge: 0.001 + # Default: 0.004 + #Range: 0.0 ~ 0.05 + "Water Region Size Custom Value" = 0.004 + # Percent chance of a region having water instead of lava at low altitudes. + # Default: 40% + #Range: 0.0 ~ 100.0 + "Water Region Spawn Chance" = 40.0 + # Determines how large water regions are. + # Default: Medium (recommended). + "Water Region Size" = "Medium" + + ########################################################################################################### + ## Settings used in the generation of caves. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caves] + # Percent chance of caves spawning in a given region. + # Default: caves spawn in 100% of regions. + #Range: 0.0 ~ 100.0 + "Cave Spawn Chance" = 100.0 + # Determines how large cave regions are. + # Controls how long a cave system of a certain cave type extends before intersecting with a cave system of another type. + # Larger = more cave interconnectivity for a given area, but less variation. + # Accepted values: Small, Medium, Large, ExtraLarge, Custom + # Default: Small (recommended). + "Cave Region Size" = "Small" + # Custom value for cave region size. Smaller value = larger regions. This value is very sensitive to change. + # ONLY WORKS IF Cave Region Size IS Custom. + # Provided values: + # Small: 0.008 + # Medium: 0.005 + # Large: 0.0032 + # ExtraLarge: 0.001 + # Default: 0.008 + #Range: 0.0 ~ 0.05000000074505806 + "Cave Region Size Custom Value" = 0.00800000037997961 + + ########################################################################################################### + ## Settings used in the generation of vanilla-like caves near the surface. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caves."Surface Caves"] + # The minimum y-coordinate at which surface caves can generate. + # Default: 40 + #Range: 0 ~ 255 + "Surface Cave Minimum Altitude" = 40 + # Set to true to enable vanilla-like caves which provide nice, natural-looking openings at the surface. + # Default: true + "Enable Surface Caves" = true + # The maximum y-coordinate at which surface caves can generate. + # Default: 128 + #Range: 0 ~ 255 + "Surface Cave Maximum Altitude" = 128 + # The density of surface caves. Higher = more caves, closer together. + # Default: 17 + #Range: 0 ~ 100 + "Surface Cave Density" = 17 + + ########################################################################################################### + ## Settings used in the generation of type 1 caves, which are more worm-like. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caves."Type 1 Caves"] + # The maximum y-coordinate at which type 1 caves can generate. + # Default: 80 + #Range: 0 ~ 255 + "Type 1 Cave Maximum Altitude" = 80 + # Stretches caves horizontally. Lower value = wider caves. + # Default: 1.6 (recommended) + #Range: 0.0 ~ 100.0 + "Compression - Horizontal" = 1.6 + # The minimum y-coordinate at which type 1 caves can generate. + # Default: 1 + #Range: 0 ~ 255 + "Type 1 Cave Minimum Altitude" = 1 + # The depth from a given point on the surface at which type 1 caves start to close off. + # Will use the Max Cave Altitude instead of surface height if it is lower. + # Will use the Max Cave Altitude no matter what if Override Surface Detection is enabled. + # Default: 15 (recommended) + #Range: 0 ~ 255 + "Type 1 Cave Surface Cutoff Depth" = 15 + # Stretches caves vertically. Lower value = taller caves with steeper drops. + # Default: 5.0 (recommended) + #Range: 0.0 ~ 100.0 + "Compression - Vertical" = 5.0 + # Determines how frequently Type 1 Caves spawn. 0 = will not spawn at all. + # Default: 10 + #Range: 0 ~ 10 + "Type 1 Cave Priority" = 10 + + ########################################################################################################### + ## Settings used in the generation of type 2 caves, which tend to be more open and spacious. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caves."Type 2 Caves"] + # The minimum y-coordinate at which type 2 caves can generate. + # Default: 1 + #Range: 0 ~ 255 + "Type 2 Cave Minimum Altitude" = 1 + # The maximum y-coordinate at which type 2 caves can generate. + # Default: 80 + #Range: 0 ~ 255 + "Type 2 Cave Maximum Altitude" = 80 + # Stretches caves horizontally. Lower value = wider caves. + # Default: 0.9 (recommended) + #Range: 0.0 ~ 100.0 + "Compression - Horizontal" = 0.9 + # The depth from a given point on the surface at which type 2 caves start to close off. + # Will use the Max Cave Altitude instead of surface height if it is lower. + # Will use the Max Cave Altitude no matter what if Override Surface Detection is enabled. + # Default: 15 (recommended) + #Range: 0 ~ 255 + "Type 2 Cave Surface Cutoff Depth" = 15 + # Stretches caves vertically. Lower value = taller caves with steeper drops. + # Default: 2.2 (recommended) + #Range: 0.0 ~ 100.0 + "Compression - Vertical" = 2.2 + # Determines how frequently Type 2 Caves spawn. 0 = will not spawn at all. + # Default: 5 + #Range: 0 ~ 10 + "Type 2 Cave Priority" = 5 + + ########################################################################################################### + ## Settings controlling vanilla Minecraft cave generation. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caves."Vanilla Caves"] + # The maximum y-coordinate at which vanilla caves can generate. + # Default: 128 + #Range: 0 ~ 255 + "Vanilla Cave Maximum Altitude" = 128 + # The density of vanilla caves. Higher = more caves, closer together. + # Default: 14 (value used in vanilla) + #Range: 0 ~ 100 + "Vanilla Cave Density" = 14 + # Determines how frequently vanilla caves spawn. 0 = will not spawn at all. + # Default: 0 + #Range: 0 ~ 10 + "Vanilla Cave Priority" = 0 + # The minimum y-coordinate at which vanilla caves can generate. + # Default: 8 + #Range: 0 ~ 255 + "Vanilla Cave Minimum Altitude" = 8 + + ########################################################################################################### + ## Settings used in the generation of caverns. Caverns are spacious caves at low altitudes. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caverns] + # Custom value for cavern region size. Only works if Cavern Region Size is set to Custom. Smaller value = larger regions. This value is very sensitive to change. + # Provided values: + # Small: 0.01 + # Medium: 0.007 + # Large: 0.005 + # ExtraLarge: 0.001 + # Default: 0.01 + #Range: 0.0 ~ 0.05 + "Cavern Region Size Custom Value" = 0.01 + # Percent chance of caverns spawning in a given region. + # Default: caverns spawn in 25% of regions. + #Range: 0.0 ~ 100.0 + "Cavern Spawn Chance" = 25.0 + # Determines how large cavern regions are. This controls the average size of caverns. + # Accepted values: Small, Medium, Large, ExtraLarge, Custom + # Default: Small (recommended). + "Cavern Region Size" = "Small" + + ########################################################################################################### + ## Settings used in the generation of Floored Caverns found at low altitudes. + ## These have much more ground to walk on than Liquid Caverns. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caverns."Floored Caverns"] + # Stretches caverns horizontally. Lower value = more open caverns with larger features. + # Default: 0.7 + #Range: 0.0 ~ 100.0 + "Compression - Horizontal" = 0.7 + # Determines how frequently Floored Caverns spawn. 0 = will not spawn at all. + # Default: 10 + #Range: 0 ~ 10 + "Floored Cavern Priority" = 10 + # Stretches caverns vertically. Lower value = more open caverns with larger features. + # Default: 1.3 + #Range: 0.0 ~ 100.0 + "Compression - Vertical" = 1.3 + # The minimum y-coordinate at which Floored Caverns can generate. + # Default: 1 + #Range: 0 ~ 255 + "Floored Cavern Minimum Altitude" = 1 + # The maximum y-coordinate at which Floored Caverns can generate. + # Caverns will attempt to close off anyway if this value is greater than the surface's altitude. + # Default: 35 + #Range: 0 ~ 255 + "Floored Cavern Maximum Altitude" = 35 + + ########################################################################################################### + ## Settings used in the generation of Liquid Caverns found at low altitudes. + ## These are caverns where the floor is predominantly water or lava. + ########################################################################################################### + ["Better Caves"."Underground Generation".Caverns."Liquid Caverns"] + # Stretches caverns horizontally. Lower value = more open caverns with larger features. + # Default: 0.7 + #Range: 0.0 ~ 100.0 + "Compression - Horizontal" = 0.7 + # Determines how frequently Liquid Caverns spawn. 0 = will not spawn at all. + # Default: 10 + #Range: 0 ~ 10 + "Liquid Cavern Priority" = 10 + # Stretches caverns vertically. Lower value = more open caverns with larger features. + # Default: 1.3 + #Range: 0.0 ~ 100.0 + "Compression - Vertical" = 1.3 + # The minimum y-coordinate at which Liquid Caverns can generate. + # Default: 1 + #Range: 0 ~ 255 + "Liquid Cavern Minimum Altitude" = 1 + # The maximum y-coordinate at which Liquid Caverns can generate. + # Caverns will attempt to close off anyway if this value is greater than the surface's altitude. + # Default: 35 + #Range: 0 ~ 255 + "Liquid Cavern Maximum Altitude" = 35 + + ########################################################################################################### + ## Settings used for ravine generation. + ########################################################################################################### + ["Better Caves"."Underground Generation".Ravines] + # Set to true to enable flooded ravines in ocean biomes. + # Default: true + "Enable Flooded Ravines" = true + # Set to true to enable ravine generation. + # Default: true + "Enable Ravines" = true + + ########################################################################################################### + ## Don't mess with these settings for normal gameplay. + ########################################################################################################### + ["Better Caves"."DEBUG Settings"] + # The visualizer creates worlds where there are no blocks except those indicating where caves + # and caverns would be carved out in a regular world. This is useful for visualizing the kinds of + # caves and caverns your current config options will create. + # Type 1 Cave: Wooden Planks + # Type 2 Cave: Cobblestone + # Lava Cavern: Redstone Block + # Floored Cavern: Gold Block + # Surface Cave: Emerald Block + # Vanilla Cave: Bricks + # Default: false + "Enable DEBUG Visualizer" = false + diff --git a/config/bettercaves/README.txt b/config/bettercaves/README.txt new file mode 100644 index 0000000000..6f6a401142 --- /dev/null +++ b/config/bettercaves/README.txt @@ -0,0 +1,12 @@ +This directory is for adding YUNG's Better Caves configurations specific to certain dimensions. +Starting with Minecraft 1.16, this directory serves as the base directory for all future versions. + +For example, to add a dimension-specific config to the Nether in 1.16, you need to first create a +directory named 1_16 in this folder. +(This will be created for you the first time you run YUNG's Better Caves for 1.16). +Then, in the 1_16 folder, create a config file named DIM_minecraft-the_nether.toml. + +NOTE -- YOU MUST HAVE THE DIMENSIONS YOU WANT TO USE WHITELISTED (OR HAVE GLOBAL WHITELISTING ENABLED) +IN THE BASE CONFIG FILE FOR THIS TO WORK. + +FOR MORE INFORMATION, CHECK OUT THE WIKI -- https://github.com/yungnickyoung/YUNGs-Better-Caves/wiki \ No newline at end of file diff --git a/config/biomesoplenty/biomes.json b/config/biomesoplenty/biomes.json new file mode 100644 index 0000000000..1e8855c8b0 --- /dev/null +++ b/config/biomesoplenty/biomes.json @@ -0,0 +1,291 @@ +{ + "standard_weights": { + "biomesoplenty:alps": { + "weight": 5 + }, + "biomesoplenty:bayou": { + "weight": 7 + }, + "biomesoplenty:bog": { + "weight": 3 + }, + "biomesoplenty:boreal_forest": { + "weight": 7 + }, + "biomesoplenty:brushland": { + "weight": 5 + }, + "biomesoplenty:chaparral": { + "weight": 5 + }, + "biomesoplenty:cherry_blossom_grove": { + "weight": 1 + }, + "biomesoplenty:cold_desert": { + "weight": 7 + }, + "biomesoplenty:coniferous_forest": { + "weight": 10 + }, + "biomesoplenty:crystalline_chasm": { + "weight": 5 + }, + "biomesoplenty:dead_forest": { + "weight": 2 + }, + "biomesoplenty:floodplain": { + "weight": 5 + }, + "biomesoplenty:fungal_jungle": { + "weight": 1 + }, + "biomesoplenty:ghost_forest": { + "weight": 2 + }, + "biomesoplenty:grassland": { + "weight": 5 + }, + "biomesoplenty:grove": { + "weight": 7 + }, + "biomesoplenty:highland": { + "weight": 3 + }, + "biomesoplenty:lavender_field": { + "weight": 5 + }, + "biomesoplenty:lush_grassland": { + "weight": 7 + }, + "biomesoplenty:lush_swamp": { + "weight": 3 + }, + "biomesoplenty:mangrove": { + "weight": 10 + }, + "biomesoplenty:maple_woods": { + "weight": 3 + }, + "biomesoplenty:marsh": { + "weight": 5 + }, + "biomesoplenty:meadow": { + "weight": 7 + }, + "biomesoplenty:mire": { + "weight": 3 + }, + "biomesoplenty:mystic_grove": { + "weight": 1 + }, + "biomesoplenty:ominous_woods": { + "weight": 1 + }, + "biomesoplenty:outback": { + "weight": 7 + }, + "biomesoplenty:overgrown_cliffs": { + "weight": 3 + }, + "biomesoplenty:poppy_field": { + "weight": 2 + }, + "biomesoplenty:prairie": { + "weight": 10 + }, + "biomesoplenty:rainforest": { + "weight": 1 + }, + "biomesoplenty:redwood_forest": { + "weight": 3 + }, + "biomesoplenty:scrubland": { + "weight": 7 + }, + "biomesoplenty:seasonal_forest": { + "weight": 5 + }, + "biomesoplenty:shield": { + "weight": 5 + }, + "biomesoplenty:shrubland": { + "weight": 5 + }, + "biomesoplenty:silkglade": { + "weight": 1 + }, + "biomesoplenty:snowy_coniferous_forest": { + "weight": 5 + }, + "biomesoplenty:snowy_forest": { + "weight": 3 + }, + "biomesoplenty:steppe": { + "weight": 3 + }, + "biomesoplenty:temperate_rainforest": { + "weight": 3 + }, + "biomesoplenty:tropical_rainforest": { + "weight": 10 + }, + "biomesoplenty:tundra": { + "weight": 7 + }, + "biomesoplenty:undergrowth": { + "weight": 10 + }, + "biomesoplenty:visceral_heap": { + "weight": 9 + }, + "biomesoplenty:wasteland": { + "weight": 10 + }, + "biomesoplenty:wetland": { + "weight": 7 + }, + "biomesoplenty:withered_abyss": { + "weight": 7 + }, + "biomesoplenty:woodland": { + "weight": 3 + } + }, + "technical_biome_toggles": { + "biomesoplenty:alps_foothills": { + "enabled": true + }, + "biomesoplenty:gravel_beach": { + "enabled": true + }, + "biomesoplenty:orchard": { + "enabled": true + }, + "biomesoplenty:origin_beach": { + "enabled": true + }, + "biomesoplenty:redwood_forest_edge": { + "enabled": true + }, + "biomesoplenty:tropic_beach": { + "enabled": true + }, + "biomesoplenty:volcano_edge": { + "enabled": true + } + }, + "sub_biome_weights": { + "biomesoplenty:fir_clearing": { + "weight": 100, + "rarity": 0.38 + }, + "biomesoplenty:flower_meadow": { + "weight": 100, + "rarity": 0.5 + }, + "biomesoplenty:highland_moor": { + "weight": 100, + "rarity": 0.75 + }, + "biomesoplenty:oasis": { + "weight": 100, + "rarity": 0.1 + }, + "biomesoplenty:pasture": { + "weight": 100, + "rarity": 1.0 + }, + "biomesoplenty:pumpkin_patch": { + "weight": 100, + "rarity": 0.45 + }, + "biomesoplenty:snowy_fir_clearing": { + "weight": 100, + "rarity": 0.5 + }, + "biomesoplenty:temperate_rainforest_hills": { + "weight": 100, + "rarity": 0.8 + }, + "biomesoplenty:xeric_shrubland": { + "weight": 100, + "rarity": 1.0 + } + }, + "island_biome_toggles": { + "biomesoplenty:origin_hills": { + "enabled": true + }, + "biomesoplenty:rainbow_valley": { + "enabled": true + }, + "biomesoplenty:tropics": { + "enabled": true + }, + "biomesoplenty:volcano": { + "enabled": true + } + }, + "vanilla_biome_weights": { + "minecraft:badlands_plateau": { + "weight": 10 + }, + "minecraft:basalt_deltas": { + "weight": 10 + }, + "minecraft:birch_forest": { + "weight": 7 + }, + "minecraft:crimson_forest": { + "weight": 10 + }, + "minecraft:dark_forest": { + "weight": 5 + }, + "minecraft:desert": { + "weight": 15 + }, + "minecraft:forest": { + "weight": 10 + }, + "minecraft:giant_tree_taiga": { + "weight": 5 + }, + "minecraft:jungle": { + "weight": 15 + }, + "minecraft:mountains": { + "weight": 7 + }, + "minecraft:nether_wastes": { + "weight": 10 + }, + "minecraft:plains": { + "weight": 10 + }, + "minecraft:savanna": { + "weight": 10 + }, + "minecraft:snowy_taiga": { + "weight": 10 + }, + "minecraft:snowy_tundra": { + "weight": 10 + }, + "minecraft:soul_sand_valley": { + "weight": 10 + }, + "minecraft:swamp": { + "weight": 7 + }, + "minecraft:taiga": { + "weight": 10 + }, + "minecraft:warped_forest": { + "weight": 10 + }, + "minecraft:wooded_badlands_plateau": { + "weight": 3 + } + } +} \ No newline at end of file diff --git a/config/biomesoplenty/client.toml b/config/biomesoplenty/client.toml new file mode 100644 index 0000000000..b5321e0811 --- /dev/null +++ b/config/biomesoplenty/client.toml @@ -0,0 +1,6 @@ + +#Client-related options. +[gui] + #Select the Biomes O' Plenty world type by default. + use_world_type = true + diff --git a/config/biomesoplenty/generation.toml b/config/biomesoplenty/generation.toml new file mode 100644 index 0000000000..7ed88c6e13 --- /dev/null +++ b/config/biomesoplenty/generation.toml @@ -0,0 +1,18 @@ + +#World generation related options. +[overworld] + #Type of rainfall zones to use during biome placement. + #Allowed Values: SMALL_ZONES, MEDIUM_ZONES, LARGE_ZONES, RANDOM + rainfall_variation_scheme = "MEDIUM_ZONES" + #Enhance vanilla biomes by adding additional decoration. + enhance_vanilla_biomes = true + #The size of generated biomes. + #Allowed Values: TINY, SMALL, MEDIUM, LARGE, HUGE + biome_size = "MEDIUM" + #Type of temperature zones to use during biome placement. + #Allowed Values: LATITUDE, SMALL_ZONES, MEDIUM_ZONES, LARGE_ZONES, RANDOM + temperature_variation_scheme = "MEDIUM_ZONES" + #The size of generated rivers. + #Allowed Values: TINY, SMALL, MEDIUM, LARGE, HUGE + river_size = "MEDIUM" + diff --git a/config/botanypots-client.toml b/config/botanypots-client.toml new file mode 100644 index 0000000000..97c5239043 --- /dev/null +++ b/config/botanypots-client.toml @@ -0,0 +1,10 @@ + +#Client side configurations for the mod. Modpacks should not ship non-default versions of this file! +[client] + #Whether or not crops should render in pots. + renderCrop = true + #Whether or not the growth animation should be played. + useGrowthAnimation = true + #Whether or not the soil in pots should be rendered. + renderSoil = true + diff --git a/config/conjurer_illager-common.toml b/config/conjurer_illager-common.toml new file mode 100644 index 0000000000..1aeefcd008 --- /dev/null +++ b/config/conjurer_illager-common.toml @@ -0,0 +1,16 @@ + +[theatre] + #Spacing between structures + #Range: > 1 + spacing = 40 + #Offsets the spacing of the structures randomly + #Range: > 0 + offset = 10 + #How should the code treate biomes? true = whitelist, false = blacklist. Biomes defined with ! do the opposite. + is_whitelist = true + #A biome filter to determine where the structure should generate. Works with the biome dictionary (#overworld) and "not" statements (!plains). These can be combined (!#nether). Operates in the order presented. So "#forest, !flower_forest" will add all forests and then remove the flower forest. + biomes = "dark_forest" + #Chance of generating in an allowed chunk + #Range: 0.0 ~ 1.0 + probability = 0.5 + diff --git a/config/cookingforblockheads-client.toml b/config/cookingforblockheads-client.toml new file mode 100644 index 0000000000..7eacf95b16 --- /dev/null +++ b/config/cookingforblockheads-client.toml @@ -0,0 +1,3 @@ +#Set to false if you don't want ingredients to be marked with a special icon in the recipe book. +showIngredientIcon = true + diff --git a/config/cookingforblockheads-common.toml b/config/cookingforblockheads-common.toml new file mode 100644 index 0000000000..ca59ab5641 --- /dev/null +++ b/config/cookingforblockheads-common.toml @@ -0,0 +1,20 @@ +#If true, a cow can be squished into a Milk Jar by dropping an anvil on top. +cowJarEnabled = true +#The amount of milk the cow in a jar generates per tick. +#Range: 0.0 ~ 3.4028234663852886E38 +cowJarMilkPerTick = 0.5 +#Set this to true if you'd like the sink to require water to be piped in, instead of providing infinite of it. +sinkRequiresWater = false +#Enabling this will make the kitchen counters have twice as much inventory space. +largeCounters = false +#Set this to true if you'd like to disallow automation of the oven (pipes and such won't be able to insert/extract) +disallowOvenAutomation = false +#The fuel multiplier for the cooking oven. Higher values means fuel lasts longer, 1.0 is furnace default. +#Range: 0.10000000149011612 ~ 2.0 +ovenFuelTimeMultiplier = 0.33000001311302185 +#The cooking time multiplier for the cooking oven. Higher values means it will take longer. +#Range: 0.25 ~ 9.0 +ovenCookTimeMultiplier = 1.0 +#Set this to true if you'd like the oven to only accept cooking oil as fuel (requires Pam's Harvestcraft) +ovenRequiresCookingOil = false + diff --git a/config/cosmeticarmorreworked-client.toml b/config/cosmeticarmorreworked-client.toml new file mode 100644 index 0000000000..10671191f9 --- /dev/null +++ b/config/cosmeticarmorreworked-client.toml @@ -0,0 +1,22 @@ + +#These settings only affects client +[Client] + #The horizontal pixel distance from the origin point of player inventory gui + #Range: > -2147483648 + CosArmorGuiButton_Left = 65 + #The vertical pixel distance from the origin point of player inventoy gui + #Range: > -2147483648 + CosArmorGuiButton_Top = 67 + #Whether or not to hide the button for toggling the mod temporarily on client side + CosArmorToggleButton_Hidden = false + #The horizontal pixel distance from the origin point of player inventory gui + #Range: > -2147483648 + CosArmorToggleButton_Left = 59 + #Whether or not to add buttons to CurioSlots for toggling visibility for that slot + CosArmorToggleButton_Curios = true + #Whether or not to hide the button for opening CosmeticArmorInventory + CosArmorGuiButton_Hidden = false + #The vertical pixel distance from the origin point of player inventory gui + #Range: > -2147483648 + CosArmorToggleButton_Top = 72 + diff --git a/config/cosmeticarmorreworked-common.toml b/config/cosmeticarmorreworked-common.toml new file mode 100644 index 0000000000..054db940f3 --- /dev/null +++ b/config/cosmeticarmorreworked-common.toml @@ -0,0 +1,6 @@ + +#These settings affects both server and client +[Common] + #Whether or not to keep items in cosmetic armor slots in the event of player death + CosArmorKeepThroughDeath = false + diff --git a/config/curios-client.toml b/config/curios-client.toml new file mode 100644 index 0000000000..1bdeaae855 --- /dev/null +++ b/config/curios-client.toml @@ -0,0 +1,21 @@ + +#Client only settings, mostly things related to rendering +[client] + #The corner for the Curios GUI button + #Allowed Values: TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT + buttonCorner = "TOP_LEFT" + #The X-Offset for the Curios GUI button + #Range: -100 ~ 100 + buttonXOffset = 0 + #The Y-Offset for the Creative Curios GUI button + #Range: -100 ~ 100 + creativeButtonYOffset = 0 + #Set to true to enable rendering curios + renderCurios = true + #The X-Offset for the Creative Curios GUI button + #Range: -100 ~ 100 + creativeButtonXOffset = 0 + #The Y-Offset for the Curios GUI button + #Range: -100 ~ 100 + buttonYOffset = 0 + diff --git a/config/dankstorage-client.toml b/config/dankstorage-client.toml new file mode 100644 index 0000000000..d8502ffaf4 --- /dev/null +++ b/config/dankstorage-client.toml @@ -0,0 +1,5 @@ + +[client] + #Whether to display the preview of the item in the dank, disable if you have optifine + preview = true + diff --git a/config/decorative_blocks-common.toml b/config/decorative_blocks-common.toml new file mode 100644 index 0000000000..240487ee2e --- /dev/null +++ b/config/decorative_blocks-common.toml @@ -0,0 +1,6 @@ + +#Decorative Blocks Configs +[general] + #Bonfire Activator (define a resource location + "bonfire activator" = "minecraft:blaze_powder" + diff --git a/config/defaultoptions-common.toml b/config/defaultoptions-common.toml new file mode 100644 index 0000000000..35597626d7 --- /dev/null +++ b/config/defaultoptions-common.toml @@ -0,0 +1,6 @@ +#The default difficulty selected for newly created worlds. +#Allowed Values: PEACEFUL, EASY, NORMAL, HARD +defaultDifficulty = "NORMAL" +#Set to true if the difficulty for new world's should be locked ot the specific default. This cannot be unlocked by players without external tools! Probably a bad idea. I don't recommend. Why am I adding this option? +lockDifficulty = false + diff --git a/config/defaultoptions/keybindings.txt b/config/defaultoptions/keybindings.txt new file mode 100644 index 0000000000..01558ad8c1 --- /dev/null +++ b/config/defaultoptions/keybindings.txt @@ -0,0 +1,171 @@ +key_key.attack:key.mouse.left:NONE +key_key.use:key.mouse.right:NONE +key_key.forward:key.keyboard.w:NONE +key_key.left:key.keyboard.a:NONE +key_key.back:key.keyboard.s:NONE +key_key.right:key.keyboard.d:NONE +key_key.jump:key.keyboard.space:NONE +key_key.sneak:key.keyboard.left.shift:NONE +key_key.sprint:key.keyboard.left.control:NONE +key_key.drop:key.keyboard.q:NONE +key_key.inventory:key.keyboard.e:NONE +key_key.chat:key.keyboard.t:NONE +key_key.playerlist:key.keyboard.tab:NONE +key_key.pickItem:key.mouse.middle:NONE +key_key.command:key.keyboard.slash:NONE +key_key.screenshot:key.keyboard.f2:NONE +key_key.togglePerspective:key.keyboard.f5:NONE +key_key.smoothCamera:key.keyboard.unknown:NONE +key_key.fullscreen:key.keyboard.f11:NONE +key_key.spectatorOutlines:key.keyboard.unknown:NONE +key_key.swapHands:key.keyboard.f:NONE +key_key.saveToolbarActivator:key.keyboard.unknown:NONE +key_key.loadToolbarActivator:key.keyboard.unknown:NONE +key_key.advancements:key.keyboard.l:NONE +key_key.hotbar.1:key.keyboard.1:NONE +key_key.hotbar.2:key.keyboard.2:NONE +key_key.hotbar.3:key.keyboard.3:NONE +key_key.hotbar.4:key.keyboard.4:NONE +key_key.hotbar.5:key.keyboard.5:NONE +key_key.hotbar.6:key.keyboard.6:NONE +key_key.hotbar.7:key.keyboard.7:NONE +key_key.hotbar.8:key.keyboard.8:NONE +key_key.hotbar.9:key.keyboard.9:NONE +key_key.lightoverlay-forge.enable_overlay:key.keyboard.f7:NONE +key_key.lightoverlay-forge.increase_reach:key.keyboard.unknown:NONE +key_key.lightoverlay-forge.decrease_reach:key.keyboard.unknown:NONE +key_key.lightoverlay-forge.increase_line_width:key.keyboard.unknown:NONE +key_key.lightoverlay-forge.decrease_line_width:key.keyboard.unknown:NONE +key_key.dismount:key.keyboard.left.shift:NONE +key_key.narrator:key.keyboard.b:CONTROL +key_key.findme.search:key.keyboard.y:NONE +key_key.ma-enchants.key.excavate:key.keyboard.grave.accent:NONE +key_Strip World:key.keyboard.delete:NONE +key_Dress World:key.keyboard.insert:NONE +key_toolbelt.binding.access:key.keyboard.v:NONE +key_toolbelt.binding.restock:key.keyboard.v:SHIFT +key_key.toggleLiquids:key.keyboard.unknown:NONE +key_key.toggleVisible:key.keyboard.unknown:NONE +key_key.run:key.keyboard.p:NONE +key_key.mekanism.mode:key.keyboard.n:NONE +key_key.mekanism.armor_mode:key.keyboard.g:NONE +key_key.mekanism.feet_mode:key.keyboard.h:NONE +key_key.next_image:key.keyboard.down:NONE +key_key.previous_image:key.keyboard.up:NONE +key_oreexcavation.key.excavate:key.keyboard.grave.accent:NONE +key_oreexcavation.key.shape_toggle:key.keyboard.unknown:NONE +key_oreexcavation.key.shape_edit:key.keyboard.unknown:NONE +key_key.buildinggadgets.settings_menu:key.keyboard.g:NONE +key_key.buildinggadgets.range:key.keyboard.r:NONE +key_key.buildinggadgets.undo:key.keyboard.u:NONE +key_key.buildinggadgets.anchor:key.keyboard.h:NONE +key_key.buildinggadgets.fuzzy:key.keyboard.unknown:NONE +key_key.buildinggadgets.connected_area:key.keyboard.unknown:NONE +key_key.buildinggadgets.rotate_mirror:key.keyboard.unknown:NONE +key_key.buildinggadgets.material_list:key.keyboard.m:NONE +key_key.inventorysorter.itemout:key.mouse.102:NONE +key_key.inventorysorter.itemin:key.mouse.100:NONE +key_key.inventorysorter.sort:key.mouse.middle:NONE +key_key.simplybackpacks.backpackpickup.desc:key.keyboard.unknown:NONE +key_key.simplybackpacks.backpackopen.desc:key.keyboard.unknown:NONE +key_fpsreducer.key.openGui:key.keyboard.end:NONE +key_key.curios.open.desc:key.keyboard.unknown:NONE +key_keys.servertabinfo.show:key.keyboard.left.control:NONE +key_keys.servertabinfo.show2:key.keyboard.right.control:NONE +key_key.refinedstorage.focusSearchBar:key.keyboard.tab:NONE +key_key.refinedstorage.clearGridCraftingMatrix:key.keyboard.x:CONTROL +key_key.refinedstorage.openWirelessGrid:key.keyboard.unknown:NONE +key_key.refinedstorage.openWirelessFluidGrid:key.keyboard.unknown:NONE +key_key.refinedstorage.openWirelessCraftingMonitor:key.keyboard.unknown:NONE +key_key.refinedstorage.openPortableGrid:key.keyboard.unknown:NONE +key_key.death_history:key.keyboard.unknown:NONE +key_key.toastcontrol.clear:key.keyboard.j:NONE +key_dropoff:key.keyboard.unknown:NONE +key_dropoff:key.keyboard.unknown:NONE +key_neat.keybind.toggle:key.keyboard.0:NONE +key_key.ironjetpacks.engine:key.keyboard.v:NONE +key_key.ironjetpacks.hover:key.keyboard.g:NONE +key_quark.emote.no:key.keyboard.unknown:NONE +key_quark.emote.yes:key.keyboard.unknown:NONE +key_quark.emote.wave:key.keyboard.unknown:NONE +key_quark.emote.salute:key.keyboard.unknown:NONE +key_quark.emote.cheer:key.keyboard.unknown:NONE +key_quark.emote.clap:key.keyboard.unknown:NONE +key_quark.emote.think:key.keyboard.unknown:NONE +key_quark.emote.point:key.keyboard.unknown:NONE +key_quark.emote.shrug:key.keyboard.unknown:NONE +key_quark.emote.headbang:key.keyboard.unknown:NONE +key_quark.emote.weep:key.keyboard.unknown:NONE +key_quark.emote.facepalm:key.keyboard.unknown:NONE +key_quark.keybind.patreon_emote.dance:key.keyboard.unknown:NONE +key_quark.keybind.patreon_emote.tpose:key.keyboard.unknown:NONE +key_quark.keybind.patreon_emote.dab:key.keyboard.unknown:NONE +key_quark.keybind.patreon_emote.jet:key.keyboard.unknown:NONE +key_quark.keybind.patreon_emote.exorcist:key.keyboard.unknown:NONE +key_quark.keybind.patreon_emote.zombie:key.keyboard.unknown:NONE +key_quark.keybind.back:key.mouse.4:NONE +key_quark.keybind.lock_rotation:key.keyboard.k:NONE +key_quark.keybind.transfer_insert:key.keyboard.unknown:NONE +key_quark.keybind.transfer_extract:key.keyboard.unknown:NONE +key_quark.keybind.change_hotbar:key.keyboard.z:NONE +key_quark.keybind.sort_player:key.keyboard.unknown:NONE +key_key.dankstorage.construction:key.keyboard.i:NONE +key_quark.keybind.sort_container:key.keyboard.unknown:NONE +key_quark.keybind.camera_mode:key.keyboard.f12:NONE +key_key.caelus.toggle.desc:key.keyboard.unknown:NONE +key_key.caelus.trigger.desc:key.keyboard.unknown:NONE +key_key.invtweaks_sort_player.desc:key.keyboard.unknown:NONE +key_key.invtweaks_sort_inventory.desc:key.keyboard.unknown:NONE +key_key.invtweaks_sort_either.desc:key.keyboard.unknown:NONE +key_key.ftbquests.quests:key.keyboard.unknown:NONE +key_key.ftbchunks.map:key.keyboard.unknown:NONE +key_key.refinedstorageaddons.openWirelessCraftingGrid:key.keyboard.g:CONTROL +key_cos.key.opencosarmorinventory:key.keyboard.unknown:NONE +key_key.give.give:key.keyboard.unknown:NONE +key_key.trashslot.toggle:key.keyboard.t:NONE +key_key.trashslot.delete:key.keyboard.delete:NONE +key_key.trashslot.deleteAll:key.keyboard.delete:SHIFT +key_key.craftingtweaks.rotate:key.keyboard.unknown:NONE +key_key.craftingtweaks.rotate_counter_clockwise:key.keyboard.unknown:NONE +key_key.craftingtweaks.balance:key.keyboard.unknown:NONE +key_key.craftingtweaks.spread:key.keyboard.unknown:NONE +key_key.craftingtweaks.clear:key.keyboard.unknown:NONE +key_key.craftingtweaks.force_clear:key.keyboard.unknown:NONE +key_key.craftingtweaks.toggleButtons:key.keyboard.unknown:NONE +key_key.craftingtweaks.compressOne:key.keyboard.k:CONTROL +key_key.craftingtweaks.compressStack:key.keyboard.k:NONE +key_key.craftingtweaks.compressAll:key.keyboard.k:SHIFT +key_key.craftingtweaks.decompressOne:key.keyboard.unknown:NONE +key_key.craftingtweaks.decompressStack:key.keyboard.unknown:NONE +key_key.craftingtweaks.decompressAll:key.keyboard.unknown:NONE +key_key.craftingtweaks.refill_last:key.keyboard.tab:NONE +key_key.craftingtweaks.refill_last_stack:key.keyboard.tab:NONE +key_key.modularrouters.configure:key.keyboard.c:NONE +key_key.modularrouters.moduleInfo:key.keyboard.i:NONE +key_key.jei.toggleOverlay:key.keyboard.o:CONTROL +key_key.jei.focusSearch:key.keyboard.f:CONTROL +key_key.jei.toggleCheatMode:key.keyboard.unknown:NONE +key_key.jei.toggleEditMode:key.keyboard.unknown:NONE +key_key.jei.showRecipe:key.keyboard.r:NONE +key_key.jei.showUses:key.keyboard.u:NONE +key_key.jei.recipeBack:key.keyboard.backspace:NONE +key_key.jei.previousPage:key.keyboard.page.up:NONE +key_key.jei.nextPage:key.keyboard.page.down:NONE +key_key.jei.bookmark:key.keyboard.a:NONE +key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown:NONE +key_key.journeymap.zoom_in:key.keyboard.equal:NONE +key_key.journeymap.zoom_out:key.keyboard.minus:NONE +key_key.journeymap.minimap_type:key.keyboard.left.bracket:NONE +key_key.journeymap.minimap_preset:key.keyboard.backslash:NONE +key_key.journeymap.create_waypoint:key.keyboard.b:NONE +key_key.journeymap.toggle_waypoints:key.keyboard.z:NONE +key_key.journeymap.fullscreen_create_waypoint:key.keyboard.b:NONE +key_key.journeymap.fullscreen_chat_position:key.keyboard.c:NONE +key_key.journeymap.map_toggle_alt:key.keyboard.j:NONE +key_key.journeymap.fullscreen_waypoints:key.keyboard.b:CONTROL +key_key.journeymap.minimap_toggle_alt:key.keyboard.j:CONTROL +key_key.journeymap.fullscreen_options:key.keyboard.o:NONE +key_key.journeymap.fullscreen.north:key.keyboard.up:NONE +key_key.journeymap.fullscreen.south:key.keyboard.down:NONE +key_key.journeymap.fullscreen.east:key.keyboard.right:NONE +key_key.journeymap.fullscreen.west:key.keyboard.left:NONE diff --git a/config/ding.toml b/config/ding.toml new file mode 100644 index 0000000000..e561e297c1 --- /dev/null +++ b/config/ding.toml @@ -0,0 +1,33 @@ + +#Configs related to how ding works +[ding] + #Resource Location based name of the sound file to play when Minecraft finishes loading. + #EG: "ui.button.click" or "entity.experience_orb.pickup" + # + #This can also be a mod sound if the mod is installed. + #EG: "modname:modsound.boing" + # + #If you want to use external sounds, consider looking into the mod Additional Resources + name = "entity.experience_orb.pickup" + #Pitch of the sound (when the world loads) + #Range: 0.0 ~ 10.0 + pitchWorld = 1.0 + #Pitch of the sound (when Minecraft loads) + #Range: 0.0 ~ 10.0 + pitch = 1.0 + #Play sound on... + #0 = Nothing (why install the mod though?) + #1 = MC load + #2 = World load + #3 = MC and World load + #Range: 0 ~ 3 + playOn = 1 + #Resource Location based name of the sound file to play when the world finishes loading. + #EG: "ui.button.click" or "entity.experience_orb.pickup" + # + #This can also be a mod sound if the mod is installed. + #EG: "modname:modsound.boing" + # + #If you want to use external sounds, consider looking into the mod Additional Resources + nameWorld = "entity.experience_orb.pickup" + diff --git a/config/dogslie.toml b/config/dogslie.toml new file mode 100644 index 0000000000..0539ce0194 --- /dev/null +++ b/config/dogslie.toml @@ -0,0 +1,19 @@ + +#General settings +[general] + #Allow the mod to attempt to add support for mod wolves? (Still doesn't allow support for Doggy Talents) + attemptModWolfSupport = true + #Poses for lying down that are enabled. If the mod can't find compatible poses, it will randomly pick one set. + enabledPoses = ["forelegStraight", "forelegSprawled", "forelegSprawledBack", "forelegSkewed", "forelegSide", "hindlegStraight", "hindlegStraightBack", "hindlegSprawled", "hindlegSprawledBack", "hindlegSide"] + #Time to spend sitting (in ticks) before dogs lie down. + #Range: 1 ~ 6000000 + timeBeforeLie = 300 + #Range for target to get to dog before dog gets up (in blocks) + #Range: 0.0 ~ 32.0 + rangeBeforeGettingUp = 3.0 + #Do dogs spawn into the world lying down if they are already sitting. + dogsSpawnLying = true + #Who the dog gets up to + #Allowed Values: NOBODY, OWNER, PLAYERS, ANY_LIVING_ENTITY + getsUpTo = "OWNER" + diff --git a/config/dungeons_plus-common.toml b/config/dungeons_plus-common.toml new file mode 100644 index 0000000000..63c85ceb4c --- /dev/null +++ b/config/dungeons_plus-common.toml @@ -0,0 +1,76 @@ + +[tower] + #Spacing between structures + #Range: > 1 + spacing = 25 + #Offsets the spacing of the structures randomly + #Range: > 0 + offset = 6 + #How should the code treate biomes? true = whitelist, false = blacklist. Biomes defined with ! do the opposite. + is_whitelist = true + #A biome filter to determine where the structure should generate. Works with the biome dictionary (#overworld) and "not" statements (!plains). These can be combined (!#nether). Operates in the order presented. So "#forest, !flower_forest" will add all forests and then remove the flower forest. + biomes = "plains, forest, dark_forest, birch_forest, mountains" + #Chance of generating in an allowed chunk + #Range: 0.0 ~ 1.0 + probability = 0.75 + +[leviathan] + #Spacing between structures + #Range: > 1 + spacing = 36 + #Offsets the spacing of the structures randomly + #Range: > 0 + offset = 8 + #How should the code treate biomes? true = whitelist, false = blacklist. Biomes defined with ! do the opposite. + is_whitelist = true + #A biome filter to determine where the structure should generate. Works with the biome dictionary (#overworld) and "not" statements (!plains). These can be combined (!#nether). Operates in the order presented. So "#forest, !flower_forest" will add all forests and then remove the flower forest. + biomes = "desert" + #Chance of generating in an allowed chunk + #Range: 0.0 ~ 1.0 + probability = 1.0 + +[snowy_temple] + #Spacing between structures + #Range: > 1 + spacing = 36 + #Offsets the spacing of the structures randomly + #Range: > 0 + offset = 8 + #How should the code treate biomes? true = whitelist, false = blacklist. Biomes defined with ! do the opposite. + is_whitelist = true + #A biome filter to determine where the structure should generate. Works with the biome dictionary (#overworld) and "not" statements (!plains). These can be combined (!#nether). Operates in the order presented. So "#forest, !flower_forest" will add all forests and then remove the flower forest. + biomes = "snowy_tundra, snowy_taiga" + #Chance of generating in an allowed chunk + #Range: 0.0 ~ 1.0 + probability = 1.0 + +[bigger_dungeon] + #Spacing between structures + #Range: > 1 + spacing = 12 + #Offsets the spacing of the structures randomly + #Range: > 0 + offset = 5 + #How should the code treate biomes? true = whitelist, false = blacklist. Biomes defined with ! do the opposite. + is_whitelist = false + #A biome filter to determine where the structure should generate. Works with the biome dictionary (#overworld) and "not" statements (!plains). These can be combined (!#nether). Operates in the order presented. So "#forest, !flower_forest" will add all forests and then remove the flower forest. + biomes = "mushroom_fields, mushroom_field_shore" + #Chance of generating in an allowed chunk + #Range: 0.0 ~ 1.0 + probability = 0.4 + +[end_ruins] + #Spacing between structures + #Range: > 1 + spacing = 24 + #Offsets the spacing of the structures randomly + #Range: > 0 + offset = 8 + #How should the code treate biomes? true = whitelist, false = blacklist. Biomes defined with ! do the opposite. + is_whitelist = true + #A biome filter to determine where the structure should generate. Works with the biome dictionary (#overworld) and "not" statements (!plains). These can be combined (!#nether). Operates in the order presented. So "#forest, !flower_forest" will add all forests and then remove the flower forest. + biomes = "end_highlands, end_midlands" + #Chance of generating in an allowed chunk + #Range: 0.0 ~ 1.0 + probability = 0.8 + diff --git a/config/dwarfcoal-common.toml b/config/dwarfcoal-common.toml new file mode 100644 index 0000000000..6862b2d394 --- /dev/null +++ b/config/dwarfcoal-common.toml @@ -0,0 +1,5 @@ + +[General] + #Dwarf Coal Burn Time + burnTime = 200 + diff --git a/config/engineersdecor-client.toml b/config/engineersdecor-client.toml new file mode 100644 index 0000000000..10476e2e4f --- /dev/null +++ b/config/engineersdecor-client.toml @@ -0,0 +1,11 @@ + +#Settings not loaded on servers. +[client] + + #Opt-out settings + [client.optout] + #Disable CTRL-SHIFT item tooltip display. + without_tooltips = false + #Disable all TERs (tile entity renderers). + without_ters = false + diff --git a/config/engineersdecor-common.toml b/config/engineersdecor-common.toml new file mode 100644 index 0000000000..01b7629d09 --- /dev/null +++ b/config/engineersdecor-common.toml @@ -0,0 +1,166 @@ + +#Settings affecting the logical server side, but are also configurable in single player. +[server] + + #Opt-out settings + [server.optout] + #Disable check valve, and redstone controlled valves. + without_valves = false + #Disable the small solar panel. + without_solar_panel = false + #Disable all mod stairs blocks. + without_stairs = false + #Disable IE concrete wall. + without_ie_concrete_wall = false + #Disable possibility to sit on stools and chairs. + without_chair_sitting = false + #Disable horizontal half-block slab. + without_slabs = false + #Disable all mod wall blocks. + without_walls = false + #Disable decorative sign plates (caution, hazards, etc). + without_sign_plates = false + #Disable the factory hopper. + without_factory_hopper = false + #Prevent blocks from being opt'ed by registry name ('*' wildcard matching, comma separated list, whitespaces ignored. Evaluated before all other opt-out checks. You must match the whole name, means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' includes everything that has 'wood' or 'steel' in the registry name.The matching result is also traced in the log file. + pattern_includes = "" + #Disable history refabrication feature of the treated wood crafting table. + without_crafting_table_history = false + #Disable small lab furnace. + without_lab_furnace = false + #Disable light sources + without_light_sources = false + #Disable the small milking machine. + without_milking_machine = false + #Disable treated wood table, stool, windowsill, etc. + without_treated_wood_furniture = false + #Disable the passive fluid accumulator. + without_passive_fluid_accumulator = false + #Disable the factory placer. + without_factory_placer = false + #Disable metal tables, etc. + without_metal_furniture = false + #Disable the small mineral smelter. + without_mineral_smelter = false + #Disable poles of any material. + without_poles = false + #Disable clinker bricks and derived blocks. + without_clinker_bricks = false + #Disable all fences and fence gates. + without_fences = false + #Disable that mobs will sit on chairs and stools. + without_mob_chair_sitting = false + #Disable rebar concrete and derived blocks. + without_rebar_concrete = false + #Disable labeled crate. + without_labeled_crate = false + #Opt-out any block by its registry name ('*' wildcard matching, comma separated list, whitespaces ignored. You must match the whole name, means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' excludes everything that has 'wood' or 'steel' in the registry name. The matching result is also traced in the log file. + pattern_excludes = "" + #Disable stackable 1/8 block slices. + without_halfslabs = false + #Disable horizontal supports like the double-T support. + without_hsupports = false + #Disable the factory dropper. + without_factory_dropper = false + #Disable slag bricks and derived blocks. + without_slag_bricks = false + #Disable gas concrete and derived blocks. + without_gas_concrete = false + #Disable the small tree cutter. + without_tree_cutter = false + #Disable treated wood window, etc. + without_windows = false + #Disable item disposal/trash/void incinerator device. + without_waste_incinerator = false + #Disable the small block breaker. + without_block_breaker = false + #Disable treated wood crafting table. + without_crafting_table = false + #Disable ladders + without_ladders = false + #Disable panzer glass and derived blocks. + without_panzer_glass = false + #Disable floor gratings. + without_floor_grating = false + #Disable the speed boost of ladders in this mod. + without_ladder_speed_boost = false + #Disable the small fluid collection funnel. + without_fluid_funnel = false + #Disable all internal recipes, allowing to use alternative pack recipes. + without_recipes = false + #Disable small electrical pass-through furnace. + without_electrical_furnace = false + + #Miscellaneous settings + [server.miscellaneous] + #Disable directly picking up layers from slabs and slab slices by left clicking while looking up/down. + without_direct_slab_pickup = false + #Enables experimental features. Use at own risk. + with_experimental = false + #Enable that devices are dropped as item also in creative mode, allowing to relocate them with contents and settings. + with_creative_mode_device_drops = false + + #Tweaks + [server.tweaks] + #Defines how much time the Small Block Breaker needs at least, better said it's an offset: 'reluctance' * hardness + min_time, you change the 'min_time' here, value in ticks.The config value can be changed on-the-fly for tuning. + #Range: 10 ~ 100 + block_breaker_min_breaking_time = 15 + #Enables small quick-move arrows from/to player/block storage. Makes the UI a bit too busy, therefore disabled by default. + with_crafting_quickmove_buttons = false + #Defines how much RF power the Small Tree Cutter requires to magnificently increase the processing speed. The config value can be changed on-the-fly for tuning. + #Range: 4 ~ 1024 + tree_cuttter_energy_consumption = 64 + #Defines, in percent, how fast the electrical furnace smelts compared to a vanilla furnace. 100% means vanilla furnace speed, 150% means the electrical furnace is faster. The value can be changed on-the-fly for tuning. + #Range: 50 ~ 800 + e_furnace_speed_percent = 200 + #Defines if the electrical furnace automatically pulls items from an inventory at the input side.The config value can be changed on-the-fly for tuning. + e_furnace_automatic_pulling = false + #Defines how much time the Small Milking Machine needs work. Note this is a permanent standby power, not only when the device does something. Use zero to disable energy dependency and energy handling of the machine. The config value can be changed on-the-fly for tuning. + #Range: 0 ~ 1024 + milking_machine_energy_consumption = 0 + #Defines how many millibuckets can be transferred (per tick) through the valves. That is technically the 'storage size' specified for blocks that want to fill fluids into the valve (the valve has no container and forward that to the output block), The value can be changed on-the-fly for tuning. + #Range: 1 ~ 32000 + pipevalve_max_flowrate = 1000 + #Defines how much RF power the Small Block Breaker requires to magnificently increase the processing speed. The config value can be changed on-the-fly for tuning. + #Range: 4 ~ 1024 + block_breaker_power_consumption = 64 + #Defines, in percent, how high the probability is that a mob sits on a chair when colliding with it. Can be changed on-the-fly for tuning. + #Range: 0.0 ~ 80.0 + chair_mob_sitting_probability_percent = 10.0 + #Defines, in percent, how fuel efficient the lab furnace is, compared to a vanilla furnace. 100% means vanilla furnace consumiton, 200% means the lab furnace needs about half the fuel of a vanilla furnace, The value can be changed on-the-fly for tuning. + #Range: 50 ~ 400 + furnace_fuel_efficiency_percent = 100 + #Defines how much RF per tick the the electrical furnace consumed (average) for smelting. The feeders transferring items from/to adjacent have this consumption/8 for each stack transaction. The default value is only slightly higher than a furnace with an IE external heater (and no burning fuel inside).The config value can be changed on-the-fly for tuning. + #Range: 8 ~ 4096 + e_furnace_power_consumption = 16 + #Defines the peak power production (at noon) of the Small Solar Panel. Note that the agerage power is much less, as no power is produced at all during the night, and the power curve is nonlinear rising/falling during the day. Bad weather conditions also decrease the production. The config value can be changed on-the-fly for tuning. + #Range: 2 ~ 4096 + small_solar_panel_peak_production = 45 + #Defines how much time the Small Tree Cutter needs to cut a tree without RF power. The value is in seconds. With energy it is 6 times faster. The config value can be changed on-the-fly for tuning. + #Range: 10 ~ 240 + tree_cuttter_cutting_time_needed = 60 + #Defines how many millibuckets per redstone signal strength can be transferred per tick through the analog redstone controlled valves. Note: power 0 is always off, power 15 is always the max flow rate. Between power 1 and 14 this scaler will result in a flow = 'redstone slope' * 'current redstone power'. The value can be changed on-the-fly for tuning. + #Range: 1 ~ 32000 + pipevalve_redstone_gain = 20 + #Disables increasing/decreasing the crafting grid items by scrolling over the crafting result slot. + without_crafting_mouse_scrolling = false + #Defines the energy consumption (per tick) for speeding up the smelting process. If IE is installed, an external heater has to be inserted into an auxiliary slot of the lab furnace. The power source needs to be able to provide at least 4 times this consumption (fixed threshold value). The value can be changed on-the-fly for tuning. The default value corresponds to the IE heater consumption. + #Range: 2 ~ 1024 + furnace_boost_energy_consumption = 24 + #Defines, in percent, probable it is that a mob leaves a chair when sitting on it. The 'dice is rolled' about every 20 ticks. There is also a minimum Sitting time of about 3s. The config value can be changed on-the-fly for tuning. + #Range: 0.001 ~ 10.0 + chair_mob_standup_probability_percent = 1.0 + #Defines (for each individual cow) the minimum time between milking. + #Range: 1000 ~ 24000 + milking_machine_milking_delay = 4000 + #Defines if the Small Block Breaker does not work without RF power. + block_breaker_requires_power = false + #Defines, in percent, how fast the lab furnace smelts compared to a vanilla furnace. 100% means vanilla furnace speed, 150% means the lab furnace is faster. The value can be changed on-the-fly for tuning. + #Range: 50 ~ 800 + furnace_smelting_speed_percent = 130 + #Defines how much time the Small Block Breaker needs per block hardness, means: 'reluctance' * hardness + min_time, you change the 'reluctance' here.The unit is ticks/hardness. The config value can be changed on-the-fly for tuning. + #Range: 5 ~ 50 + block_breaker_reluctance = 17 + #Defines if the Small Tree Cutter does not work without RF power. + tree_cuttter_requires_power = false + diff --git a/config/engineerstools-common.toml b/config/engineerstools-common.toml new file mode 100644 index 0000000000..d3f5a12faa --- /dev/null +++ b/config/engineerstools-common.toml @@ -0,0 +1 @@ + diff --git a/config/farmingforblockheads-client.toml b/config/farmingforblockheads-client.toml new file mode 100644 index 0000000000..459d5eb83a --- /dev/null +++ b/config/farmingforblockheads-client.toml @@ -0,0 +1,3 @@ +#Set this to true if you're a modpack dev to see Farming for Blockheads registry warnings in chat. Errors will always display. +showRegistryWarnings = false + diff --git a/config/farmingforblockheads-common.toml b/config/farmingforblockheads-common.toml new file mode 100644 index 0000000000..56a685ffc4 --- /dev/null +++ b/config/farmingforblockheads-common.toml @@ -0,0 +1,24 @@ + +#Common config for Farming for Blockheads +[common] + #The range within animals can be fed by the feeding trough. + #Range: 1 ~ 16 + feedingTroughRange = 8 + #The chance for Fertilized Farmland to turn back into regular Farmland (per provided bonus). + #Range: 0.0 ~ 1.0 + fertilizerRegressionChance = 0.0 + #The chance to get a bonus growth when using Red Fertilizer. + #Range: 0.0 ~ 1.0 + fertilizerBonusGrowthChance = 1.0 + #List of names the merchant can have. + merchantNames = ["Swap-O-Matic", "Emerald Muncher", "Weathered Salesperson"] + #The range at which the chicken nest picks up laid eggs. + #Range: 1 ~ 16 + chickenNestRange = 8 + #The maximum amount of animals (per type) until the feeding trough stops feeding. + #Range: > 1 + feedingTroughMaxAnimals = 8 + #The chance to get a bonus crop when using Green Fertilizer. + #Range: 0.0 ~ 1.0 + fertilizerBonusCropChance = 1.0 + diff --git a/config/farmingforblockheads/MarketRegistry.json b/config/farmingforblockheads/MarketRegistry.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/config/farmingforblockheads/MarketRegistry.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/config/fastbench.cfg b/config/fastbench.cfg new file mode 100644 index 0000000000..cb5ad230fe --- /dev/null +++ b/config/fastbench.cfg @@ -0,0 +1,8 @@ +# Configuration file + +general { + # If the recipe book is removed from the game. Server-enforced. [default: true] + B:"Remove Recipe Book"=true +} + + diff --git a/config/fluidtank-common.toml b/config/fluidtank-common.toml new file mode 100644 index 0000000000..ba19bdc292 --- /dev/null +++ b/config/fluidtank-common.toml @@ -0,0 +1,23 @@ + +#Settings for FluidTank. +[common] + #Show tank info on TOP tooltip. + showTOP = true + #True to enable waila and top to show tank info. + showToolTipOnMods = true + #False to disable rainbow renderer for pipe. + enablePipeRainbowRenderer = false + #Default color of pipe. Works only if 'enablePipeRainbowRenderer' is false. + pipeColor = -251658241 + #True to show invisible tank in creative tabs. Recipe and block aren't removed. + showInvisibleTankInTab = false + #True to allow fluid supplier to work. + enableFluidSupplier = true + #Remove all recipe to make tanks. + RemoveRecipe = false + + #Recipe settings + [common.recipe] + #True to use easy recipe. + easyRecipe = false + diff --git a/config/fml.toml b/config/fml.toml new file mode 100644 index 0000000000..9671985a4b --- /dev/null +++ b/config/fml.toml @@ -0,0 +1,8 @@ +# Enable forge global version checking +versionCheck = true +# does the splashscreen run +splashscreen = true +defaultConfigPath = "defaultconfigs" +# max threads for parallel loading : -1 uses Runtime#availableProcessors +maxThreads = -1 + diff --git a/config/forge-client.toml b/config/forge-client.toml new file mode 100644 index 0000000000..e3f5b1b72c --- /dev/null +++ b/config/forge-client.toml @@ -0,0 +1,24 @@ + +#Client only settings, mostly things related to rendering +[client] + #Disable culling of hidden faces next to stairs and slabs. Causes extra rendering, but may fix some resource packs that exploit this vanilla mechanic. + disableStairSlabCulling = false + #Toggle off to make missing model text in the gui fit inside the slot. + zoomInMissingModelTextInGui = false + #Enable Forge to queue all chunk updates to the Chunk Update thread. + #May increase FPS significantly, but may also cause weird rendering lag. + #Not recommended for computers without a significant number of cores available. + alwaysSetupTerrainOffThread = false + #EXPERIMENTAL: Enable the Forge block rendering pipeline - fixes the lighting of custom models. + experimentalForgeLightPipelineEnabled = false + #Enable the Forge block rendering pipeline - fixes the lighting of custom models. + forgeLightPipelineEnabled = true + #When enabled, Forge will show any warnings that occurred during loading. + showLoadWarnings = true + #Enable uploading cloud geometry to the GPU for faster rendering. + forgeCloudsEnabled = true + #When enabled, makes specific reload tasks such as language changing quicker to run. + selectiveResourceReloadEnabled = true + #Set to true to use a combined DEPTH_STENCIL attachment instead of two separate ones. + useCombinedDepthStencilAttachment = false + diff --git a/config/fpsreducer/fpsreducer-client.toml b/config/fpsreducer/fpsreducer-client.toml new file mode 100644 index 0000000000..33751fdcda --- /dev/null +++ b/config/fpsreducer/fpsreducer-client.toml @@ -0,0 +1,117 @@ + +#General options +[general] + #Reference position of HUD. + #Range: 1 ~ 8 + hudReferencePos = 3 + #Frame rate during reducing. + #Range: 1 ~ 60 + idleFps = 10 + #Suppress master volume if the window is inactive. + suppressSound = true + #Frame rate during GUI screen(Inventory/Menu) is opened.(0:OFF) + #Range: 0 ~ 60 + guiScreenFps = 0 + #Enable FPS Reducer features. + enableFpsReducer = true + #Waiting time(sec) until reducing FPS. (0:OFF) + #Range: 0 ~ 86400 + waitingTime = 300 + #HUD scale (default: 1.0) + #Range: 0.1 ~ 2.0 + hudScale = 1.0 + #Detect movement of player position. (0:OFF, 1:Riding/Flying, 2:Always) + #Range: 0 ~ 2 + detectMoving = 1 + #Ignore the mouse button holding. + ignoreHoldButton = false + #HUD information (0:off, 1:FPS/CPU(long), 1:FPS/CPU(short), 3:FPS/CPU(2lines), 4:FPS only, 5:CPU only) + #Range: 0 ~ 5 + hudInfo = 0 + #Behavior of HUD display when a chat window opened. (0:keep to display, 1:off, 2:dodge a chat box) + #Range: 0 ~ 2 + hudBehindChatBox = 2 + #Force reducing FPS if the window is inactive. + reducingInBackground = true + #Suppression master volume ratio in inactive (0-100). + #Range: 0 ~ 100 + suppressedVolume = 20 + +#Extra options +[extra] + #HUD color + hudColor = "f0f0f0" + #HUD color for FPS display in GUI screen(inventory and menu). + hudGuiModeColor = "00f0f0" + #Allow player configuration mode. + allowPlayerConfig = true + #CPU usage type. (0:one processor basis, 1:all processors basis) + #Range: 0 ~ 1 + cpuUsageType = 0 + #Which thread's CPU usage should be calculated. (0:client thread only, 1:entire Minecraft process including server threads) + #Range: 0 ~ 1 + cpuUsageThread = 0 + #Reduced fps HUD color + hudReductionColor = "00f000" + +#Debug options +[debug] + #Show event log on the game screen. + logInChat = false + #Enable debug log + debugLog = false + +#HUD offsets from reference positions at the screen edge. +[hud_offset] + #Range: > -2147483648 + bottomRight_Y = -2 + #Range: > -2147483648 + bottomRight_X = -2 + #Range: > -2147483648 + bottomLeft_Y = -2 + #Range: > -2147483648 + bottomCenter_X = 0 + #Range: > -2147483648 + bottomLeft_X = 2 + #Range: > -2147483648 + bottomCenter_Y = -2 + #Range: > -2147483648 + topCenter_Y = 2 + #Range: > -2147483648 + topCenter_X = 0 + #Range: > -2147483648 + topLeft_Y = 2 + #Range: > -2147483648 + centerRight_Y = 0 + #Range: > -2147483648 + topLeft_X = 2 + #Range: > -2147483648 + centerRight_X = -2 + #Range: > -2147483648 + centerLeft_Y = 0 + #Range: > -2147483648 + topRight_Y = 2 + #Range: > -2147483648 + centerLeft_X = 2 + #Range: > -2147483648 + topRight_X = -2 + +#Alignments of HUD strings. +[hud_alignment] + #Range: 0 ~ 2 + bottomLeft = 0 + #Range: 0 ~ 2 + centerLeft = 0 + #Range: 0 ~ 2 + bottomCenter = 2 + #Range: 0 ~ 2 + bottomRight = 1 + #Range: 0 ~ 2 + topLeft = 0 + #Range: 0 ~ 2 + topRight = 1 + #Range: 0 ~ 2 + centerRight = 1 + #Range: 0 ~ 2 + topCenter = 2 + diff --git a/config/gravestone-client.toml b/config/gravestone-client.toml new file mode 100644 index 0000000000..f04ec5bd7d --- /dev/null +++ b/config/gravestone-client.toml @@ -0,0 +1,9 @@ +#The names of the Dimensions for the Death Note +dimension_names = ["minecraft:overworld=Overworld", "minecraft:nether=Nether", "minecraft:the_end=The End"] +#The date format outputted by clicking the gravestone or displayed in the death note +grave_date_format = "yyyy/MM/dd HH:mm:ss" +#If this is set to true the players head will be rendered on the gravestone when there is a full block under it +render_skull = true +#The color of the text at the gravestone (Hex RGB) +grave_text_color = "FFFFFF" + diff --git a/config/inventoryessentials-client.toml b/config/inventoryessentials-client.toml new file mode 100644 index 0000000000..d0fa716caf --- /dev/null +++ b/config/inventoryessentials-client.toml @@ -0,0 +1,12 @@ + +#Configuration for Inventory Essentials +[client] + #Should holding shift and moving your mouse over items quick-transfer them without requiring each to be clicked? + enableShiftDrag = true + #Should ctrl-clicking only move one item at a time instead of the full stack? + enableSingleTransfer = true + #Use the client implementation even on servers that have the mod installed - only useful for development purposes. + forceClientImplementation = false + #Should shift-ctrl-clicking move all items of the same type at once? + enableBulkTransfer = true + diff --git a/config/invtweaks-client.toml b/config/invtweaks-client.toml new file mode 100644 index 0000000000..fc50464026 --- /dev/null +++ b/config/invtweaks-client.toml @@ -0,0 +1,98 @@ + +#Sorting customization +[sorting] + #Rules for sorting + #Each element is of the form + #A-D is the row from top to bottom + #1-9 is the column from left to right + #POS denotes the target slots + #Exs. POS = D3 means 3rd slot of hotbar + # POS = B means 2nd row, left to right + # POS = 9 means 9th column, bottom to top + # POS = A1-C9 means slots A1,A2,…,A9,B1,…,B9,C1,…,C9 + # POS = A9-C1 means slots A9,A8,…,A1,B9,…,B1,C9,…,C1 + #Append v to POS of the form A1-C9 to move in columns instead of rows + #Append r to POS of the form B or 9 to reverse slot order + #CATEGORY is the item category to designate the slots to + #CATEGORY = /LOCKED prevents slots from moving in sorting + #CATEGORY = /FROZEN has the effect of /LOCKED and, in addition, ignores slot in auto-refill + #CATEGORY = /OTHER covers all remaining items after other rules are exhausted + rules = ["D /LOCKED", "A1-C9 /OTHER"] + + #Custom settings per GUI + #x = x-position of external sort button relative to GUI top left + #y = same as above except for the y-position + #Omit x and y to leave position unchanged + #sortRange = slots to sort + #E.g. sortRange = "5,0-2" sorts slots 5,0,1,2 in that order + #sortRange = "" disables sorting for that container + #Out-of-bound slots are ignored + #Omit sortRange to leave as default + [[sorting.containerOverrides]] + containerClass = "com.tfar.craftingstation.CraftingStationContainer" + sortRange = "" + + #Categor(y/ies) for sorting + # + #name: the name of the category + # + #spec: + #Each element denotes a series of semicolon-separated clauses + #Items need to match all clauses of at least one element + #Items matching earlier elements are earlier in order + #A clause of the form /tag: matches a tag + #Clauses /instanceof: or /class: check if item is + #instance of class or exactly of that class respectively + #Specifying an item's registry name as a clause checks for that item + #Prepending an exclamation mark at the start of a clause inverts it + [[sorting.category]] + name = "sword" + spec = ["/instanceof:net.minecraft.item.SwordItem"] + + [[sorting.category]] + name = "axe" + spec = ["/instanceof:net.minecraft.item.AxeItem"] + + [[sorting.category]] + name = "pickaxe" + spec = ["/instanceof:net.minecraft.item.PickaxeItem"] + + [[sorting.category]] + name = "shovel" + spec = ["/instanceof:net.minecraft.item.ShovelItem"] + + [[sorting.category]] + name = "acceptableFood" + spec = ["/instanceof:net.minecraft.item.Food; !minecraft:rotten_flesh; !minecraft:spider_eye; !minecraft:poisonous_potato; !minecraft:pufferfish"] + + [[sorting.category]] + name = "torch" + spec = ["minecraft:torch"] + + [[sorting.category]] + name = "cheapBlocks" + spec = ["/tag:forge:cobblestone", "/tag:forge:dirt"] + + [[sorting.category]] + name = "blocks" + spec = ["/instanceof:net.minecraft.item.BlockItem"] + +#Tweaks +[tweaks] + #0 = disable buttons (i.e. keybind only) + #1 = buttons for player sorting only + #2 = buttons for external sorting only + #3 = all buttons enabled (default) + #Range: 0 ~ 3 + enableButtons = 3 + #Enable auto-refill + autoRefill = true + #0 = disable sorting + #1 = player sorting only + #2 = external sorting only + #3 = all sorting enabled (default) + #Range: 0 ~ 3 + enableSort = 3 + #Enable a quick view of how many items that you're currently holding exists in your inventory by displaying it next your hotbar. + quickView = true + diff --git a/config/kleeslabs-common.toml b/config/kleeslabs-common.toml new file mode 100644 index 0000000000..2816da2bbb --- /dev/null +++ b/config/kleeslabs-common.toml @@ -0,0 +1,10 @@ + +#KleeSlabs settings +[common] + #If Require Sneaking is enabled. Set this to true to invert the sneaking check for breaking only half a slab. + invertSneak = false + #IDs of mods whose compatibility should be disabled. + disabledCompat = [] + #Set this to true to only break half a slab when the player is sneaking. + requireSneak = false + diff --git a/config/lightoverlay.properties b/config/lightoverlay.properties new file mode 100644 index 0000000000..98aebfbaff --- /dev/null +++ b/config/lightoverlay.properties @@ -0,0 +1,18 @@ +# Light Overlay Config +reach=12 +crossLevel=7 +secondaryLevel=-1 +caching=false +showNumber=false +smoothLines=true +underwater=false +lineWidth=1 +yellowColorRed=255 +yellowColorGreen=255 +yellowColorBlue=0 +redColorRed=255 +redColorGreen=0 +redColorBlue=0 +secondaryColorRed=0 +secondaryColorGreen=0 +secondaryColorBlue=255 \ No newline at end of file diff --git a/config/maessentials.toml b/config/maessentials.toml new file mode 100644 index 0000000000..bea22b01c3 --- /dev/null +++ b/config/maessentials.toml @@ -0,0 +1,175 @@ + +[afk] + auto = true + #Range: > 0 + auto_kick = 0 + #Range: > 1 + auto_time = 600 + +#Command Config +[Commands] + + [Commands.broadcast] + #Enable command: /broadcast + enable = true + + [Commands.repair] + #Enable command: /repair + enable = true + + [Commands.endc] + #Enable command: /endc + enable = false + + [Commands.back] + #Range: > 0 + death_custom_cooldown = 0 + #Range: > 0 + delay = 3 + #Enable command: /back + enable = true + #Range: > 0 + cooldown = 180 + enable_on_death = true + + [Commands.speed] + #Range: 0 ~ 50 + max_walk_speed = 20 + #Enable command: /speed + enable = true + #Range: 0 ~ 50 + max_fly_speed = 20 + + [Commands.head] + #Enable command: /head + enable = true + + [Commands.warps] + #Range: > 0 + delay = 3 + #Enable commands: /setwarp, /delwarp, /warp + enable = true + #Range: > 0 + cooldown = 300 + + [Commands.top] + #Enable command: /top + enable = true + + [Commands.kickall] + #Enable command: /kickall + enable = true + + [Commands.weather] + #Enable commands: /sun, /rain, /thunder + enable = true + + [Commands.heal] + #Enable command: /heal + enable = true + + [Commands.homes] + #Range: > 0 + delay = 3 + #Enable commands: /sethome, /delhome, /home + enable = true + #Range: > 0 + cooldown = 300 + #Range: > 1 + limit = 1 + #Range: > 1 + limit_op = 5 + + [Commands.hat] + #Enable command: /hat + enable = true + + [Commands.up] + #Enable command: /up + enable = false + + [Commands.tempban] + #Enable command: /check + enable = true + + [Commands.rndtp] + #Range: > 0 + delay = 3 + #Enable command: /rndtp + enable = true + #Range: > 0 + cooldown = 10 + #Range: 50 ~ 999 + range_min = 500 + #Range: > 1000 + range_max = 2000 + + [Commands.tpa] + #Range: > 0 + delay = 3 + #Enable commands: /tpa, /tpahere, /tpaccept, /tpdeny + enable = true + #Range: > 0 + cooldown = 180 + #Range: > 0 + timeout = 20 + + [Commands.gm] + #Enable command: /gm + enable = true + + [Commands.suicide] + enable_player = true + #Enable command: /suicide + enable = true + #Range: > 0 + cooldown_player = 20 + + [Commands.afk] + #Range: > 0 + cooldown = 30 + command = true + + [Commands.mute] + #Enable commands: /mute, /unmute + enable = true + + [Commands.kits] + #Enable command: /kit + enable = false + starting_kit = false + starting_kit_name = "tools" + + [Commands.trash] + #Enable command: /trash + enable = true + + [Commands.invsee] + #Enable command: /invsee + enable = true + + [Commands.fly] + #Enable command: /fly + enable = true + + [Commands.tpall] + #Enable command: /tpall + enable = true + + [Commands.spawn] + #Range: > 0 + delay = 3 + #Enable commands: /spawn, /setspawn + enable = true + #Range: > 0 + cooldown = 300 + force_spawn_on_death = false + + [Commands.time] + #Enable commands: /day, /night + enable = true + + [Commands.god] + #Enable command: /god + enable = true + diff --git a/config/modnametooltip-client.toml b/config/modnametooltip-client.toml new file mode 100644 index 0000000000..fdd854bd7f --- /dev/null +++ b/config/modnametooltip-client.toml @@ -0,0 +1,6 @@ + +[formatting] + #How the mod name should be formatted in the tooltip. Leave blank to disable. Valid values: + #black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, gold, gray, dark_gray, blue, green, aqua, red, light_purple, yellow, white, obfuscated, bold, strikethrough, underline, italic + modNameFormat = "blue italic" + diff --git a/config/packmenu.cfg b/config/packmenu.cfg new file mode 100644 index 0000000000..68d44e5554 --- /dev/null +++ b/config/packmenu.cfg @@ -0,0 +1,105 @@ +# Configuration file + +"forge info" { + # The X offset for this element. [range: -1000 ~ 1000, default: 0] + I:"X Offset"=0 + + # The Y Offset for this element. [range: -1000 ~ 1000, default: 0] + I:"Y Offset"=0 +} + + +general { + # If forge information is drawn at the top center. This includes beta and update warnings. [default: true] + B:"Draw Forge Info"=false + + # If the "Java Edition" text is drawn. [default: true] + B:"Draw Java Edition"=false + + # If the vanilla panorama, and it's fade-in, are rendered. Enabling this disables the use of the custom background options. [default: false] + B:"Draw Panorama"=true + + # If the splash text is drawn. [default: true] + B:"Draw Splash"=false + + # If the title (the giant minecraft text) is drawn. [default: true] + B:"Draw Title"=false + + # If the resource pack is loaded from /resources instead of /resources.zip [default: false] + B:"Folder Pack"=false +} + + +"java edition text" { + # The X offset for this element. [range: -1000 ~ 1000, default: 0] + I:"X Offset"=0 + + # The Y Offset for this element. [range: -1000 ~ 1000, default: 0] + I:"Y Offset"=0 +} + + +logo { + # The anchor point of the logo. The types of anchor points are available on the wiki. [default: DEFAULT_LOGO] + S:"Anchor Point"=TOP_LEFT + + # The height of the logo. [range: 0 ~ 500000, default: 0] + I:Height=100 + + # The height of the logo's texture. [range: 0 ~ 500000, default: 0] + I:"Texture Height"=100 + + # The location of the logo texture. Must be a png file. Should contain the extension. [default: ] + S:"Texture Path"=enigmatica:textures/logo.png + + # The width of the logo's texture. [range: 0 ~ 500000, default: 0] + I:"Texture Width"=400 + + # The width of the logo. [range: 0 ~ 500000, default: 0] + I:Width=400 + + # The X offset of the logo. [range: -500000 ~ 500000, default: 0] + I:"X Offset"=0 + + # The Y offset of the logo. [range: -500000 ~ 500000, default: 0] + I:"Y Offset"=15 +} + + +slideshow { + # How long between slideshow transitions. [range: 1 ~ 1000000, default: 200] + I:Duration=200 + + # The list of textures to be displayed on the slideshow. If empty, the slideshow is ignored. [default: ] + S:Textures < + > + + # How long the slideshow transition lasts. [range: 1 ~ 1000000, default: 20] + I:"Transition Duration"=20 +} + + +"splash text" { + # The color of the splash text. [range: -2147483647 ~ 2147483647, default: -256] + I:Color=-256 + + # The rotation value of the splash text. [range: -360.0 ~ 360.0, default: -20.0] + S:Rotation=-20.0 + + # The X offset for this element. [range: -1000 ~ 1000, default: 0] + I:"X Offset"=0 + + # The Y Offset for this element. [range: -1000 ~ 1000, default: 0] + I:"Y Offset"=0 +} + + +title { + # The X offset for this element. [range: -1000 ~ 1000, default: 0] + I:"X Offset"=0 + + # The Y Offset for this element. [range: -1000 ~ 1000, default: 0] + I:"Y Offset"=0 +} + + diff --git a/config/passthroughsigns-common.toml b/config/passthroughsigns-common.toml new file mode 100644 index 0000000000..a6d273c6a0 --- /dev/null +++ b/config/passthroughsigns-common.toml @@ -0,0 +1,15 @@ + +[general] + #Whether to ignore banners when attached to an interactable block or not. + "Ignore banners" = true + #Whether to ignore wall signs when attached to an interactable block or not. + "Ignore wall signs" = true + #Whether shift-click is required to ignore signs, when Quark is installed. + "Shift-click to ignore signs (Quark)" = false + #Whether to ignore paintings when attached to an interactable block or not. + "Ignore paintings" = true + #Disable default behaviour of item frames rotation display, when not sneaking (Recommended when ignoring item frames is enabled) + "Turn off item rotation" = true + #Whether to ignore item frames when attached to an interactable block or not. + "Ignore item frames" = true + diff --git a/config/patchouli-client.toml b/config/patchouli-client.toml new file mode 100644 index 0000000000..f634f74e9b --- /dev/null +++ b/config/patchouli-client.toml @@ -0,0 +1,13 @@ + +[client] + #Set this to true to disable advancement locking for ALL books, making all entries visible at all times. Config Flag: advancements_disabled + "Disable Advancement Locking" = false + #Set this to true to use Shift instead of Ctrl for the inventory quick lookup feature. + quickLookupShift = false + #Granular list of Book ID's to disable advancement locking for, e.g. [ "botania:lexicon" ]. Config Flags: advancements_disabled_ + no_advancement_books = [] + #Set this to the ID of a book to have it show up in players' inventories, replacing the recipe book. + "Inventory Button Book" = "" + #Enable testing mode. By default this doesn't do anything, but you can use the config flag in your books if you want. Config Flag: testing_mode + "Testing Mode" = false + diff --git a/config/pitg-common.toml b/config/pitg-common.toml new file mode 100644 index 0000000000..c0fac206d8 --- /dev/null +++ b/config/pitg-common.toml @@ -0,0 +1,8 @@ + +#Glazing Tool settings +[glazing_tool] + #Enable alternate green dye + green_dye_enabled = true + #Enable the glazing tool + glazing_tool_enabled = true + diff --git a/config/prettybeaches-common.toml b/config/prettybeaches-common.toml new file mode 100644 index 0000000000..57747c1d59 --- /dev/null +++ b/config/prettybeaches-common.toml @@ -0,0 +1,8 @@ + +#Configuration for Pretty Beaches +[common] + #Whether the flooding of adjacent air blocks should be animated or instant. + animatedFlooding = true + #List of blocks that should be affected by the adjusted water physics. + affectedBlocks = ["minecraft:sand"] + diff --git a/config/productivebees-server.toml b/config/productivebees-server.toml new file mode 100644 index 0000000000..71f2893d2d --- /dev/null +++ b/config/productivebees-server.toml @@ -0,0 +1,177 @@ + +[General] + #Comma separated list of block names to exclude from the list of woodchips + woodChipLogsBlacklist = "atmospheric:crustose_log,forbidden_arcanus:edelwood_log" + #How many ticks it takes for process a recipe in the centrifuge. Default 300. + #Range: > 20 + centrifugeProcessingTime = 300 + #Use items to change the type of a bee. + #If false, productive bees can only be obtained through breeding. Default false. + enableItemConverting = false + #Cooldown for when an abandoned nest will spawn a new inhabitant + #Range: > 20 + nestRepopulationCooldown = 36000 + #Bees will create combs instead of raw resource. Combs will need to be processed in a centrifuge. Default true. + enableCombProduce = true + #How often should a bee attempt to generate items while in the hive. Default 500. + #Range: > 20 + itemTickRate = 500 + +["Bee attributes"] + #Number of ticks between effects on nearby entities + #Range: > 20 + ticks = 2337 + #Chance that a bee will take damage while leashed in a hostile environment + #Range: 0.0 ~ 1.0 + damageChance = 0.1 + #Chance to increase behavior (nocturnal trait) while leashed in a hostile environment. + #Range: 0.0 ~ 1.0 + behaviorChance = 0.1 + #Chance to increase tolerance (rain or thunder tolerance trait) while leashed in a hostile environment. + #Range: 0.0 ~ 1.0 + toleranceChance = 0.1 + +[Worldgen] + "enable_productivebees:acacia_wood_nest" = true + "enable_productivebees:gravel_nest" = true + "enable_productivebees:glowstone_nest" = true + "enable_productivebees:end_stone_nest" = true + "enable_productivebees:jungle_wood_nest" = true + "enable_productivebees:sugar_cane_nest" = true + "enable_productivebees:nether_quartz_nest" = true + "enable_productivebees:coarse_dirt_nest" = true + "enable_productivebees:stone_nest" = true + "enable_productivebees:nether_brick_nest" = true + "enable_productivebees:snow_nest" = true + "enable_productivebees:sand_nest" = true + "enable_productivebees:obsidian_nest" = true + "enable_productivebees:slimy_nest" = true + #Which nests should generate in the world. Nest will still be craftable and attract bees when placed in the world. + "enable_productivebees:oak_wood_nest" = true + "enable_productivebees:spruce_wood_nest" = true + "enable_productivebees:birch_wood_nest" = true + "enable_productivebees:dark_oak_wood_nest" = true + +[Bees] + #Production chance for productivebees:glowing_bee + #Range: 0.0 ~ 1.0 + "productivebees:glowing_bee" = 0.65 + #Range: 0.0 ~ 1.0 + spawnUndeadBeesChance = 0.01 + #Production chance for productivebees:gold_bee + #Range: 0.0 ~ 1.0 + "productivebees:gold_bee" = 0.65 + #Production chance for productivebees:copper_bee + #Range: 0.0 ~ 1.0 + "productivebees:copper_bee" = 0.65 + #Production chance for productivebees:brass_bee + #Range: 0.0 ~ 1.0 + "productivebees:brass_bee" = 0.65 + #Production chance for productivebees:emerald_bee + #Range: 0.0 ~ 1.0 + "productivebees:emerald_bee" = 0.65 + #Production chance for productivebees:iron_bee + #Range: 0.0 ~ 1.0 + "productivebees:iron_bee" = 0.65 + #Production chance for productivebees:redstone_bee + #Range: 0.0 ~ 1.0 + "productivebees:redstone_bee" = 0.65 + #Production chance for productivebees:invar_bee + #Range: 0.0 ~ 1.0 + "productivebees:invar_bee" = 0.65 + #Production chance for productivebees:bronze_bee + #Range: 0.0 ~ 1.0 + "productivebees:bronze_bee" = 0.65 + #Production chance for productivebees:electrum_bee + #Range: 0.0 ~ 1.0 + "productivebees:electrum_bee" = 0.65 + #Production chance for productivebees:coal_bee + #Range: 0.0 ~ 1.0 + "productivebees:coal_bee" = 0.65 + #Production chance for productivebees:tungsten_bee + #Range: 0.0 ~ 1.0 + "productivebees:tungsten_bee" = 0.65 + #Production chance for productivebees:titanium_bee + #Range: 0.0 ~ 1.0 + "productivebees:titanium_bee" = 0.65 + #Production chance for productivebees:creeper_bee + #Range: 0.0 ~ 1.0 + "productivebees:creeper_bee" = 0.65 + #Production chance for productivebees:lead_bee + #Range: 0.0 ~ 1.0 + "productivebees:lead_bee" = 0.65 + #Production chance for productivebees:radioactive_bee + #Range: 0.0 ~ 1.0 + "productivebees:radioactive_bee" = 0.65 + #Production chance for productivebees:lumber_bee + #Range: 0.0 ~ 1.0 + "productivebees:lumber_bee" = 0.65 + #Production chance for productivebees:magmatic_bee + #Range: 0.0 ~ 1.0 + "productivebees:magmatic_bee" = 0.65 + #Production chance for productivebees:amber_bee + #Range: 0.0 ~ 1.0 + "productivebees:amber_bee" = 0.65 + #Production chance for vanilla bees + #Range: 0.0 ~ 1.0 + "minecraft:bee" = 0.65 + #Production chance for productivebees:lapis_bee + #Range: 0.0 ~ 1.0 + "productivebees:lapis_bee" = 0.65 + #Production chance for productivebees:steel_bee + #Range: 0.0 ~ 1.0 + "productivebees:steel_bee" = 0.65 + #Production chance for productivebees:slimy_bee + #Range: 0.0 ~ 1.0 + "productivebees:slimy_bee" = 0.65 + #Production chance for productivebees:draconic_bee + #Range: 0.0 ~ 1.0 + "productivebees:draconic_bee" = 0.65 + #Production chance for productivebees:osmium_bee + #Range: 0.0 ~ 1.0 + "productivebees:osmium_bee" = 0.65 + #Production chance for productivebees:dye_bee + #Range: 0.0 ~ 1.0 + "productivebees:dye_bee" = 0.65 + #Production chance for productivebees:wither_bee + #Range: 0.0 ~ 1.0 + "productivebees:wither_bee" = 0.65 + #Production chance for productivebees:blazing_bee + #Range: 0.0 ~ 1.0 + "productivebees:blazing_bee" = 0.65 + #Production chance for productivebees:nickel_bee + #Range: 0.0 ~ 1.0 + "productivebees:nickel_bee" = 0.65 + #Production chance for productivebees:skeletal_bee + #Range: 0.0 ~ 1.0 + "productivebees:skeletal_bee" = 0.65 + #Production chance for productivebees:zinc_bee + #Range: 0.0 ~ 1.0 + "productivebees:zinc_bee" = 0.65 + #Production chance for productivebees:silver_bee + #Range: 0.0 ~ 1.0 + "productivebees:silver_bee" = 0.65 + #Production chance for productivebees:zombie_bee + #Range: 0.0 ~ 1.0 + "productivebees:zombie_bee" = 0.65 + #Production chance for productivebees:ender_bee + #Range: 0.0 ~ 1.0 + "productivebees:ender_bee" = 0.65 + #Production chance for productivebees:diamond_bee + #Range: 0.0 ~ 1.0 + "productivebees:diamond_bee" = 0.65 + #Production chance for productivebees:tin_bee + #Range: 0.0 ~ 1.0 + "productivebees:tin_bee" = 0.65 + #Spawn skeletal and zombie bees as night? + spawnUndeadBees = true + #Production chance for productivebees:aluminium_bee + #Range: 0.0 ~ 1.0 + "productivebees:aluminium_bee" = 0.65 + #Production chance for productivebees:platinum_bee + #Range: 0.0 ~ 1.0 + "productivebees:platinum_bee" = 0.65 + #Production chance for productivebees:quartz_bee + #Range: 0.0 ~ 1.0 + "productivebees:quartz_bee" = 0.65 + diff --git a/config/randompatches.toml b/config/randompatches.toml new file mode 100644 index 0000000000..c9b57c9c7b --- /dev/null +++ b/config/randompatches.toml @@ -0,0 +1,112 @@ +# RandomPatches configuration + +# Options related to the movement speed limits. +[speedLimits] + # The maximum player elytra speed. + # The vanilla default is 300.0. + # Min: 1.0 + # Max: 3.4028234663852886E38 + # Default: 1000000.0 + maxPlayerElytraSpeed = 1000000.0 + # The maximum player vehicle speed. + # The vanilla default is 100.0. + # Min: 1.0 + # Max: 1.7976931348623157E308 + # Default: 1000000.0 + maxPlayerVehicleSpeed = 1000000.0 + # The maximum player speed. + # The vanilla default is 100.0. + # Min: 1.0 + # Max: 3.4028234663852886E38 + # Default: 1000000.0 + maxPlayerSpeed = 1000000.0 + +# Options related to the disconnect timeouts. +[timeouts] + # The interval at which the server sends the KeepAlive packet. + # Min: 1 + # Max: 2147483647 + # Default: 15 + keepAlivePacketInterval = 15 + # The read timeout in seconds. + # This is the time it takes for a player to be disconnected after not responding to a KeepAlive packet. + # This value is automatically rounded up to a product of keepAlivePacketInterval. + # Min: 1 + # Max: 2147483647 + # Default: 90 + readTimeout = 360 + # The login timeout in seconds. + # Min: 1 + # Max: 2147483647 + # Default: 900 + loginTimeout = 900 + +# Options related to client-sided features. +[client] + # Forces Minecraft to show the title screen after disconnecting rather than the Multiplayer or Realms menu. + # Default: false + forceTitleScreenOnDisconnect = false + # Whether to remove the glowing effect from potions. + # Default: false + removePotionGlint = false + # The framerate limit slider step size. + # If this is set to 10.0, vanilla behavior is not changed. + # Min: 4.9E-324 + # Max: 260.0 + # Default: 1.0 + framerateLimitSliderStepSize = 1.0 + + # Options related to the Minecraft window. + [client.window] + # The path to the 256x256 window icon which is used on Mac OS X. + # Leave this, the 16x16 icon and the 32x32 icon blank to use the default icon. + # Default: + icon256 = "openloader/resources/enigmatica/assets/enigmatica/textures/icon.png" + # The path to the 16x16 Minecraft window icon. + # Leave this and the 32x32 icon blank to use the default icon. + # Default: + icon16 = "openloader/resources/enigmatica/assets/enigmatica/textures/icon.png" + # The path to the 32x32 Minecraft window icon. + # Leave this and the 16x16 icon blank to use the default icon. + # Default: + icon32 = "openloader/resources/enigmatica/assets/enigmatica/textures/icon.png" + # The Minecraft window title. + # The Minecraft version is provided as an argument. + # Default: Minecraft* %s + title = "Enigmatica 6" + # The Minecraft window title. + # The Minecraft version and current activity are provided as arguments. + # For example: "RandomPatches - %2$s" + # Default: Minecraft* %s - %s + titleWithActivity = "Enigmatica 6 - %2$s" + +# Options related to boats. +[boats] + # Prevents underwater boat passengers from being ejected after 60 ticks (3 seconds). + # Default: false + preventUnderwaterBoatPassengerEjection = false + # The buoyancy of boats when they are under flowing water. + # The vanilla default is -0.0007. + # Min: -1.7976931348623157E308 + # Max: 1.7976931348623157E308 + # Default: 0.023 + underwaterBoatBuoyancy = 0.023 + +# Options that don't fit into any other categories. +[misc] + # The packet size limit. + # The vanilla limit is 2097152. + # Min: 257 + # Max: 2147483647 + # Default: 16777216 + packetSizeLimit = 16777216 + # Enables the portal bucket replacement fix for Nether portals. + # Default: false + portalBucketReplacementFixForNetherPortals = false + # Whether skull stacking requires the same textures or just the same player profile. + # Default: true + skullStackingRequiresSameTextures = true + # Enables the /rpreload command. + # Default: true + rpreload = true + diff --git a/config/rats-client.toml b/config/rats-client.toml new file mode 100644 index 0000000000..3f39b65a77 --- /dev/null +++ b/config/rats-client.toml @@ -0,0 +1,9 @@ + +[general] + #True if player UI has plague hearts render when the effect is active. + "Plague Heart Overlay" = true + #Skip experimental GUI settings from vanilla when loading a world. + "Skip Experimental Settings GUI" = true + #True if rats flutes can occasionally make a funny sound. + "Funny Rat Flute Sound" = true + diff --git a/config/rats-common.toml b/config/rats-common.toml new file mode 100644 index 0000000000..bdb5d70415 --- /dev/null +++ b/config/rats-common.toml @@ -0,0 +1,157 @@ + +[general] + #True if cheese can be created in cauldrons + Cheesemaking = true + #True if rats are to spawn naturally + "Spawn Rats" = true + #How much kRF (1000 RF) a rat with an extreme energy transfer upgrade can transport at a time. + #Range: > 1 + "Rat RF Transfer Rate Extreme (kRF)" = 100000 + #Ratlantean Automaton Attack Damage + #Range: 0.0 ~ 3.4028234663852886E38 + "Ratlantean Automaton Attack Damage" = 6.0 + #Black Death Attack Damage + #Range: 0.0 ~ 3.4028234663852886E38 + "Black Death Automaton Attack Damage" = 4.0 + #percent chance for piper to drop hat on death + #Range: 0.0 ~ 1.0 + "Pied Piper Hat Drop Rate" = 0.09000000357627869 + #percent chance for a husk or jungle skeleton to spawn with an archeologist hat + #Range: 0.0 ~ 1.0 + "Archeologist Hat Spawn Rate" = 0.11999999731779099 + #percent chance for plague rat to drop plague essence on death + #Range: 0.0 ~ 1.0 + "Plague Essence Drop Rate" = 0.10000000149011612 + #Neo-Ratlantean Attack Damage + #Range: 0.0 ~ 3.4028234663852886E38 + "Neo-Ratlantean Automaton Attack Damage" = 8.0 + #1/This number chance for a rat to drop a Token + #Range: > 1 + "Rat Token Drop Rate" = 10000 + #True if plague doctor huts can spawn in villages + "Village Plague Doctors" = true + #True if wild rats contaminate food when they steal from chests + "Rats Contaminate Food" = true + #Black Death Max Health + #Range: 0.0 ~ 3.4028234663852886E38 + "Black Death Max Health" = 400.0 + #True if loot from rats can spawn in chests + "Add Loot" = true + #Ratlantis Dimension ID + #Range: > -2147483648 + "Ratlantis Dimension ID" = -8 + #True if garbage heaps can spawn in villages + "Village Garbage Heap" = true + #True if Ratlantis dimension is disabled - alternative methods of getting resources will be provided. WARNING: Leave the dimension and restart the game before changing this. You must be fun at parties. + "Disable Ratlantis" = false + #How much kRF (1000 RF) a rat with a basic energy transfer upgrade can transport at a time. + #Range: > 1 + "Rat RF Transfer Rate Basic (kRF)" = 100 + #Flying Dutchrat Attack Damage + #Range: 0.0 ~ 3.4028234663852886E38 + "Flying Dutchrat Automaton Attack Damage" = 10.0 + #Distance that untamed rats will immediately despawn. For Vanilla mobs, this is 128 blocks. + #Range: 0.0 ~ 3.4028234663852886E38 + "Rat Immediate Despawn Distance" = 144.0 + #A seperate random roll that only spawns pipers if a one-out-of-X chance, x being this number. raise this number to make them more rare. + #Range: > 0 + "Piper Spawn Decrease" = 5 + #How much kRF (1000 RF) a rat with an advanced energy transfer upgrade can transport at a time. + #Range: > 1 + "Rat RF Transfer Rate Advanced (kRF)" = 500 + #When a rat is farther than its potential despawn distance, a random roll is taken to see if it despawns. Lower this number will make rats more likely to despawn. + #Range: > 1 + "Rat Potential Despawn Chance" = 800 + #True if wild rats will steal from chests + "Rats Steal From Chests" = true + #True if rats should rarely make a funny noise when creating rats nuggets. + "Rat Fart Noises" = true + #The time in ticks(20 per second) it takes for milk to turn into cheese in a cauldron + #Range: 20 ~ 1000000 + "Milk Curdling Time" = 150 + #Neo-Ratlantean Max Health + #Range: 0.0 ~ 3.4028234663852886E38 + "Neo-Ratlantean Max Health" = 300.0 + #True if iron golems will attack wild rats + "Golems Target Rats" = true + #True if Pied Pipers can only spawn in the Overworld(0) dimension. + "Pied Piper Spawn In Overworld Only" = true + #A seperate random roll that only spawns rats if a one-out-of-X chance, x being this number. raise this number to make them more rare. + #Range: > 0 + "Rat Spawn Decrease" = 5 + #True if tamed rats will destroy crops when they harvest them + "Rats Break Crops on Harvest" = true + #Flying Dutchrat Max Health + #Range: 0.0 ~ 3.4028234663852886E38 + "Flying Dutchrat Max Health" = 400.0 + #Percentage for every random tick to spawn a rat for a garbage pile. + #Range: 0.0 ~ 1.0 + "Garbage Pile Spawn Chance" = 0.15000000596046448 + #True if rats can dig holes + "Rats Dig Holes" = true + #Ratlantean Automaton Max Health + #Range: 0.0 ~ 3.4028234663852886E38 + "Ratlantean Automaton Max Health" = 600.0 + #True if Plastic item is disabled - alternative methods of getting rat cage deco will be provided. WARNING: Leave the restard the game after changing this. You must be fun at parties. + "Disable Plastic" = false + #How many blocks the Lumberjack Rat is able to destroy when felling a tree. Be careful when changing this to a large number. + #Range: > 0 + "Rat Upgrade Lumberjack: Max Tree Blocks" = 10000 + #True if wild rats will destroy and eat crops + "Rats Raid Crops" = true + #Rats will continue to breed in cages until there are this many rats in one cage block + #Range: 1 ~ 10000 + "Rat Cage Max Occupancy" = 5 + #Distance that untamed rats could possibly despawn. For Vanilla mobs, this is 32 blocks. + #Range: 0.0 ~ 3.4028234663852886E38 + "Rat Potential Despawn Distance" = 32.0 + #True if pet shops can spawn in villages + "Village Pet Shops" = true + #True if demon rats are to spawn naturally in the nether + "Spawn Demon Rats" = true + #True if infected mobs with plague can spread it by interacting or attacking. + "Other Mobs can spread Plague" = true + #True if rats flutes can occasionally make a funny sound. + "Funny Rat Flute Sound" = true + #True if Pied Pipers are to spawn naturally + "Spawn Piper" = true + #The how many chunks away can a rat here a rat flute + #Range: 1 ~ 100 + "Rat Flute Distance" = 2 + #Rats will conduct expensive CPU operations like looking for crops or chests, once every this number of ticks(with added standard deviation for servers) + #Range: 1 ~ 10000 + "Rat Upgrade Delay" = 100 + #What Dimension ID you are teleported to upon leaving Ratlantis + #Range: > -2147483648 + "Ratlantis Portal Exit Dimension ID" = 0 + #True if rats can only spawn in the Overworld(0) dimension. + "Rats Spawn In Overworld Only" = false + #Largest possible radius for tamed rats conducting their searches for items, harvests, etc. + #Range: > 1 + "Max Rat Radius" = 32 + #The weight of pied pipers in vanilla's spawn rate + #Range: 1 ~ 300 + "Pied Piper Spawn Weight" = 6 + #The max block hardness that rats are allowed to dig through. (Dirt = 0.5F, Cobblestone = 2.0F, Obsidian = 50.0F) + #Range: 0.0 ~ 1000000.0 + "Rat Dig Strength" = 4.0 + #True if plague rats are to spawn naturally + "Plague Rats" = true + #True if rats should spawn like monsters. False if they should only spawn once per world, like pigs and sheep. + "Rats Spawn Like Monsters" = true + #How much kRF (1000 RF) a rat with an elite energy transfer upgrade can transport at a time. + #Range: > 1 + "Rat RF Transfer Rate Elite (kRF)" = 1000 + #percent chance for plague rat to drop plague tome on death + #Range: 0.0 ~ 1.0 + "Plague Tome Drop Rate" = 0.0035000001080334187 + #How far away from players the Rat Upgrade: Voodoo Doll is effective. + #Range: 0.0 ~ 3.4028234663852886E38 + "Voodoo Doll Rat distance" = 32.0 + #Default radius for tamed rats conducting their searches for items, harvests, etc. + #Range: > 1 + "Default Rat Radius" = 16 + #The weight of rats in vanilla's spawn rate + #Range: 1 ~ 300 + "Rat Spawn Weight" = 80 + diff --git a/config/rsgauges-common.toml b/config/rsgauges-common.toml new file mode 100644 index 0000000000..d3f5a12faa --- /dev/null +++ b/config/rsgauges-common.toml @@ -0,0 +1 @@ + diff --git a/config/serverconfigupdater-common.toml b/config/serverconfigupdater-common.toml new file mode 100644 index 0000000000..e65813d12f --- /dev/null +++ b/config/serverconfigupdater-common.toml @@ -0,0 +1,18 @@ + +["Add New Version"] + #ModID's of the ServerConfigs that will be deleted when a world with a version lower than this version is loaded the first time. Comma Separated list. (ServerConfig without -server.toml) + toDelete = "" + #Version Number. VersionNumbers are simple Integers. Use a number larger than the last version. + #Range: > 0 + newVersion = 0 + +["File Deleter"] + #By default Folders are only deleted if they are empty. Set to true to change that. + deleteFoldersWithContent = false + #This is intended for deleting datapacks and/or craft tweaker scripts. The file will be deleted every launch if it exists! No access to saves or world folder. Specify the path to the file. Comma Separated List. Example: scripts/badscript.zs + filesToDelete = "" + +["Version History"] + #Editing these values will not affect any worlds that are already on that version. + history = "" + diff --git a/config/storagedrawers-common.toml b/config/storagedrawers-common.toml new file mode 100644 index 0000000000..9f429153ab --- /dev/null +++ b/config/storagedrawers-common.toml @@ -0,0 +1,30 @@ + +[General] + #List of rules in format "domain:item1, domain:item2, n". + #Causes a compacting drawer convert n of item1 into 1 of item2. + compactingRules = ["minecraft:clay, minecraft:clay_ball, 4"] + enableUI = true + debugTrace = false + enableItemConversion = true + enableSidedInput = true + #The number of item stacks held in a basic unit of storage. + #1x1 drawers hold 8 units, 1x2 drawers hold 4 units, 2x2 drawers hold 2 units. + #Half-depth drawers hold half those amounts. + baseStackStorage = 4 + enableExtraCompactingRules = true + #Range: 1 ~ 50 + controllerRange = 12 + enableSidedOutput = true + +[StorageUpgrades] + level2Mult = 4 + #Storage upgrades multiply storage capacity by the given amount. + #When multiple storage upgrades are used together, their multipliers are added before being applied. + level1Mult = 2 + level3Mult = 8 + level5Mult = 32 + level4Mult = 16 + +[Integration] + wailaStackRemainder = true + diff --git a/config/structure_gel-common.toml b/config/structure_gel-common.toml new file mode 100644 index 0000000000..e510f07423 --- /dev/null +++ b/config/structure_gel-common.toml @@ -0,0 +1,5 @@ + +[features] + #Adds more vanilla structures to the list of structures that lakes cannot generate inside of. Only villages when set to false. Requires reload. + extra_lake_proofing = true + diff --git a/config/theoneprobe-client.toml b/config/theoneprobe-client.toml new file mode 100644 index 0000000000..71a3bdab15 --- /dev/null +++ b/config/theoneprobe-client.toml @@ -0,0 +1,107 @@ +#Show tank setting (0 = not, 1 = always, 2 = sneak) +showTankSetting = "EXTENDED" +#The distance to the top side of the screen. Use -1 if you don't want to set this +#Range: -1 ~ 10000 +boxTopY = 5 +#The distance to the right side of the screen. Use -1 if you don't want to set this +#Range: -1 ~ 10000 +boxRightX = -1 +#The maximum packet size to send an itemstack from client to server. Reduce this if you have issues with network lag caused by TOP +#Range: -1 ~ 32768 +maxPacketToServer = 20000 +#Reveal monster eggs (0 = not, 1 = always, 2 = sneak) +showSilverfish = "NOT" +#Distance at which the probe works +#Range: 0.1 ~ 200.0 +probeDistance = 6.0 +#Show brewing stand setting (0 = not, 1 = always, 2 = sneak) +showBrewStandSetting = "NORMAL" +#Show if the block can be harvested (0 = not, 1 = always, 2 = sneak) +showCanBeHarvested = "NORMAL" +#Show the growth level of crops (0 = not, 1 = always, 2 = sneak) +showCropPercentage = "NORMAL" +#0 means don't show break progress, 1 is show as bar, 2 is show as text +#Range: 0 ~ 2 +showBreakProgress = 1 +#Show mod name (0 = not, 1 = always, 2 = sneak) +showModName = "NORMAL" +#The distance to the left side of the screen. Use -1 if you don't want to set this +#Range: -1 ~ 10000 +boxLeftX = -1 +#The amount of milliseconds to wait before updating probe information from the server +#Range: 10 ~ 100000 +timeout = 300 +#Thickness of the border of the box (0 to disable) +#Range: 0 ~ 20 +boxThickness = 0 +#Show redstone (0 = not, 1 = always, 2 = sneak) +showRedstone = "NORMAL" +#Show harvest level (0 = not, 1 = always, 2 = sneak) +showHarvestLevel = "NORMAL" +#Color of the border of the chest contents box (0 to disable) +chestContentsBorderColor = "ff006699" +#Show horse stats setting (0 = not, 1 = always, 2 = sneak) +showHorseStatSetting = "EXTENDED" +#How much the border should be offset (i.e. to create an 'outer' border) +#Range: 0 ~ 20 +boxOffset = 0 +#If true show liquid information when the probe hits liquid first +showLiquids = false +#true means shows harvestability with vanilla style icons +harvestStyleVanilla = true +#Show lever/comparator/repeater settings (0 = not, 1 = always, 2 = sneak) +showLeverSetting = "NORMAL" +#Show mob spawner setting (0 = not, 1 = always, 2 = sneak) +showMobSpawnerSetting = "NORMAL" +#Toggle default probe visibility (client can override) +isVisible = true +#The amount of milliseconds to wait before showing a 'fetch from server' info on the client (if the server is slow to respond) (-1 to disable this feature) +#Range: -1 ~ 100000 +waitingForServerTimeout = 2000 +#Show animal owner setting (0 = not, 1 = always, 2 = sneak) +showAnimalOwnerSetting = "EXTENDED" +#If true then the probe hotkey must be held down to show the tooltip +holdKeyToMakeVisible = false +#Color of the box (0 to disable) +boxFillColor = "0" +#Show chest contents in detail (0 = not, 1 = always, 2 = sneak), used only if number of items is below 'showItemDetailThresshold' +showChestContentsDetailed = "EXTENDED" +#The scale of the tooltips, 1 is default, 2 is smaller +#Range: 0.4 ~ 5.0 +tooltipScale = 1.2000000476837158 +#Show mob health (0 = not, 1 = always, 2 = sneak) +showMobHealth = "NORMAL" +#Show mob potion effects (0 = not, 1 = always, 2 = sneak) +showMobPotionEffects = "EXTENDED" +#The distance to the bottom side of the screen. Use -1 if you don't want to set this +#Range: -1 ~ 10000 +boxBottomY = -1 +#Color of the border of the box (0 to disable) +boxBorderColor = "0" +#Show chest contents (0 = not, 1 = always, 2 = sneak) +showChestContents = "EXTENDED" +#Show time to adulthood for baby mobs (0 = not, 1 = always, 2 = sneak) +showMobGrowth = "NORMAL" + +[style] + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + ModName = "blue,italic" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Warning = "yellow" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Obsolete = "gray,strikethrough" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Progress = "white" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Label = "gray" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Error = "red,bold" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + InfoImportant = "blue" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Info = "white" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Ok = "green" + #Text style. Use a comma delimited list with colors like: 'red', 'green', 'blue', ... or style codes like 'underline', 'bold', 'italic', 'strikethrough', ..." + Name = "white" + diff --git a/config/theoneprobe-common.toml b/config/theoneprobe-common.toml new file mode 100644 index 0000000000..c5abfce183 --- /dev/null +++ b/config/theoneprobe-common.toml @@ -0,0 +1,53 @@ +#If true show the color of the collar of a wolf +showCollarColor = true +#The maximum amount of slots (empty or not) to show without sneaking +#Range: 0 ~ 1000 +showSmallChestContentsWithoutSneaking = 3 +#How much time (ms) to wait before reporting an exception again +#Range: 1 ~ 10000000 +loggingThrowableTimeout = 20000 +#If true equal stacks will be compacted in the chest contents overlay +compactEqualStacks = true +#Alternate color for the tank bar +tankbarAlternateFilledColor = "ff000043" +#How to display tank contents: 0 = do not show, 1 = show in a bar, 2 = show as text +#Range: 0 ~ 2 +showTank = 1 +#If true there will be a readme note for first-time players +spawnNote = false +#A list of blocks for which we don't show chest contents automatically except if sneaking +dontShowContentsUnlessSneaking = [] +#Format for displaying RF +rfFormat = "COMPACT" +#If true the probe will automatically show extended information if it is in your main hand (so not required to sneak) +extendedInMain = false +#Color for the RF bar +rfbarFilledColor = "ffdd0000" +#Color for the tank bar border +tankbarBorderColor = "ff555555" +#Color for the RF bar border +rfbarBorderColor = "ff555555" +#A list of blocks for which we automatically show chest contents even if not sneaking +showContentsWithoutSneaking = ["storagedrawers:basicdrawers", "storagedrawersextra:extra_drawers"] +#If true show debug info with creative probe +showDebugInfo = true +#Format for displaying tank contents +tankFormat = "COMPACT" +#How to display RF: 0 = do not show, 1 = show in a bar, 2 = show as text +#Range: 0 ~ 2 +showRF = 1 +#If true there will be a bauble version of the probe if baubles is present +supportBaubles = true +#Alternate color for the RF bar +rfbarAlternateFilledColor = "ff430000" +#If the number of items in an inventory is lower or equal then this number then more info is shown +#Range: 0 ~ 20 +showItemDetailThresshold = 4 +#Is the probe needed to show the tooltip? 0 = no, 1 = yes, 2 = yes and clients cannot override, 3 = probe needed for extended info only +#Range: 0 ~ 3 +needsProbe = 0 +#Color for the tank bar +tankbarFilledColor = "ff0000dd" +#A list of blocks for which we don't send NBT over the network. This is mostly useful for blocks that have HUGE NBT in their pickblock (itemstack) +dontSendNBT = [] + diff --git a/config/toastcontrol-common.toml b/config/toastcontrol-common.toml new file mode 100644 index 0000000000..89f258b1fc --- /dev/null +++ b/config/toastcontrol-common.toml @@ -0,0 +1,48 @@ + +#Client Configuration +[client] + + [client.debug] + #If toast classes are printed when they are shown. + print_classes = false + + [client.blocked_toasts] + #If recipe toasts are blocked. + recipes = true + #If all vanilla toasts are blocked. + global_vanilla = false + #If advancement toasts are blocked. + advancements = true + #If system toasts are blocked. + system = false + #If all non-vanilla toasts are blocked. + global_modded = false + #If all toasts are blocked. + global = false + #If tutorial toasts are blocked. + tutorial = true + #Toast Classes that are blocked from being shown. + blocked_classes = [] + + [client.visual_options] + #If toasts are translucent. + translucent = true + #How many toasts will be displayed on screen at once. + #Range: 1 ~ 7 + toast_count = 3 + #How long a toast must be on the screen for, in ticks. Use 0 to use the default time. + #Range: 0 ~ 4000 + force_time = 0 + #If toasts automatically pop into the screen without animations. + no_slide = false + #The Y offset for toasts to be drawn at. + #Range: -8192 ~ 8192 + y_offset = 0 + #If toasts show on the left of the screen. + start_left = false + #If toasts are transparent. Overrides translucency. + transparent = false + #The X offset for toasts to be drawn at. + #Range: -8192 ~ 8192 + x_offset = 0 + diff --git a/config/tramplestopper-common.toml b/config/tramplestopper-common.toml new file mode 100644 index 0000000000..7c5b4db07e --- /dev/null +++ b/config/tramplestopper-common.toml @@ -0,0 +1,16 @@ + +[general] + #Level of Feather Falling needed + #Range: 1 ~ 3 + level = 1 + #At how many blocks should trampling stop start + #Range: 0.0 ~ 256.0 + blocks = 0.0 + #When should farmland get trampled + #Never: Never trampled farmland + #Always: It Always get trampled + #Default: Normal behavior + #Feather Falling: Does not get trampled with you have feather falling boots + #Allowed Values: FEATHER_FALLING, NEVER, ALWAYS + type = "FEATHER_FALLING" + diff --git a/config/trashslot-client.toml b/config/trashslot-client.toml new file mode 100644 index 0000000000..ccf7056ab2 --- /dev/null +++ b/config/trashslot-client.toml @@ -0,0 +1,6 @@ + +#Client only settings +[client] + #This causes the deletion slot to delete items instantly, similar to Creative Mode. + instantDeletion = false + diff --git a/config/uteamcore-client.toml b/config/uteamcore-client.toml new file mode 100644 index 0000000000..87798b80d4 --- /dev/null +++ b/config/uteamcore-client.toml @@ -0,0 +1,6 @@ + +#Client configuration settings +[client] + #If you have discord installed it will show your some details about your game as rich presence + discordRichPresence = true + diff --git a/config/waystones-client.toml b/config/waystones-client.toml new file mode 100644 index 0000000000..b579e71000 --- /dev/null +++ b/config/waystones-client.toml @@ -0,0 +1,16 @@ + +[client] + #If enabled, the text overlay on waystones will no longer always render at full brightness. + disableTextGlow = false + #The y position of the warp button in the inventory. + teleportButtonY = 60 + #The volume of the sound played when teleporting. + #Range: 0.0 ~ 1.0 + soundVolume = 0.3499999940395355 + #The x position of the warp button in the inventory. + teleportButtonX = 58 + #If enabled, a JourneyMap waypoint will be created when activating a waystone. + createJourneyMapWaypoint = false + #If enabled, activated waystones will not emit particles. + disableParticles = false + diff --git a/config/waystones-common.toml b/config/waystones-common.toml new file mode 100644 index 0000000000..f1843f4c8a --- /dev/null +++ b/config/waystones-common.toml @@ -0,0 +1,15 @@ + +[common] + + [common.worldgen] + #Set to 'DEFAULT' to only generate the normally textured waystones. Set to 'MOSSY' or 'SANDY' to generate all as that variant. Set to 'BIOME' to make the style depend on the biome it is generated in. + #Allowed Values: DEFAULT, MOSSY, SANDY, BIOME + worldGenStyle = "BIOME" + #EXPERIMENTAL: Set to true if waystones should be added to the generation of villages. NOTE THAT THIS IS CURRENTLY NOT LIMITED TO ONLY ONE WAYSTONE, THEREFORE IT IS NOT RECOMMENDED RIGHT NOW. + addVillageStructure = true + #Approximate chunk distance between waystones generated freely in world generation. Set to 0 to disable generation. + #Range: > 0 + worldGenFrequency = 0 + #The Name Generator will pick from these names until they have all been used, then it will generate random ones again. + customWaystoneNames = ["Sandy City", "Chocolate Island", "Sahara", "The Perimeter"] + diff --git a/config/waystones-server.toml b/config/waystones-server.toml new file mode 100644 index 0000000000..b6a7e30d53 --- /dev/null +++ b/config/waystones-server.toml @@ -0,0 +1,77 @@ + +#These options will be synced to joining clients. +[server] + + #These options apply to teleporting using the scroll items. + [server.scrolls] + #The time in ticks it takes to use a scroll. This is the charge-up time when holding right-click. + #Range: 1 ~ 127 + scrollUseTime = 32 + + #These options apply to the optional Waystones button displayed in the inventory. + [server.inventoryButton] + #Set to 'NONE' for no inventory button. Set to 'NEAREST' for an inventory button that teleports to the nearest waystone. Set to 'ANY' for an inventory button that opens the waystone selection menu. Set to a waystone name for an inventory button that teleports to a specifically named waystone. + inventoryButton = "NONE" + #The multiplier applied to the base xp cost when teleporting via the inventory button. + #Range: 0.0 ~ Infinity + inventoryButtonXpCostMultiplier = 1.0 + #The cooldown between usages of the inventory button in seconds. + #Range: > 0 + inventoryButtonCooldown = 300 + + #These options apply to teleporting using the Warp Stone item. + [server.warpStone] + #The cooldown between usages of the warp stone in seconds. This is bound to the player, not the item, so multiple warp stones share the same cooldown. + #Range: > 0 + warpStoneCooldown = 300 + #The time in ticks that it takes to use a warp stone. This is the charge-up time when holding right-click. + #Range: 1 ~ 127 + warpStoneUseTime = 32 + #The multiplier applied to the base xp cost when teleporting using a Warp Stone item (not the Waystone block, John) + #Range: 0.0 ~ Infinity + warpStoneXpCostMultiplier = 1.0 + + #These options define restrictions when managing waystones. + [server.restrictions] + #If enabled, only creative players can place, edit or break waystones. This does NOT disable the crafting recipe. + restrictToCreative = false + #If enabled, waystones generated in worldgen are unbreakable. + generatedWaystonesUnbreakable = false + #If enabled, only the owner of a waystone (the one who placed it) can rename it. + restrictRenameToOwner = false + + #Note: Base XP cost is based on the distance travelled. + [server.baseXpCost] + #The maximum base xp cost (may be exceeded by multipliers defined below) + #Range: 1.0 ~ Infinity + maximumXpCost = 3.0 + #The amount of blocks per xp level requirement. If set to 500, the base xp cost for travelling 1000 blocks will be 2 levels. + #Range: > 1 + blocksPerXPLevel = 500 + + #These options apply to teleporting between dimensions. + [server.dimensionalWarp] + #The base xp level cost when travelling between dimensions. Ignores block distance. + #Range: > 0 + dimensionalWarpXpCost = 3 + #Set to 'ALLOW' to allow dimensional warp in general. Set to 'GLOBAL_ONLY' to restrict dimensional warp to global waystones. Set to 'DENY' to disallow all dimensional warps. + #Allowed Values: ALLOW, GLOBAL_ONLY, DENY + dimensionalWarp = "ALLOW" + + #These options apply to teleporting from one waystone to another by right-clicking it. + [server.waystoneToWaystone] + #The multiplier applied to the base xp cost when teleporting from one waystone to another. + #Range: 0.0 ~ Infinity + waystoneXpCostMultiplier = 1.0 + + #These options apply to the global waystones. + [server.globalWaystones] + #Set to false to allow non-creative players to make waystones globally activated. + globalWaystoneRequiresCreative = true + #The multiplier applied to the cooldown when teleporting to a global waystone via inventory button or warp stone. + #Range: 0.0 ~ Infinity + globalWaystoneCooldownMultiplier = 1.0 + #The multiplier applied to the base xp cost when teleporting to a global waystone through any method. + #Range: 0.0 ~ Infinity + globalWaystonesXpCostMultiplier = 1.0 + diff --git a/config/worldstripper-common.toml b/config/worldstripper-common.toml new file mode 100644 index 0000000000..b29f3262ee --- /dev/null +++ b/config/worldstripper-common.toml @@ -0,0 +1,31 @@ + +#Config file for World Stripper +[common] + #Sets the amount of chunks to strip / dress on X-axis + #Range: 1 ~ 256 + chunkRadiusX = 3 + #Sets the amount of chunks to strip / dress on Z-axis + #Range: 1 ~ 256 + chunkRadiusZ = 3 + #Replaces every block removed by the stripper with this block + replacementBlock = "minecraft:air" + #Profile 3 - A list of blocks to strip away from the world + profile3 = ["minecraft:dirt", "minecraft:grass", "minecraft:grass_path", "minecraft:tall_grass", "minecraft:grass_block", "minecraft:stone", "minecraft:diorite", "minecraft:granite", "minecraft:andesite", "minecraft:gravel", "minecraft:sand", "minecraft:sandstone", "minecraft:oak_log", "minecraft:dark_oak_log", "minecraft:spruce_log", "minecraft:birch_log", "minecraft:jungle_log", "minecraft:acacia_log", "minecraft:oak_leaves", "minecraft:dark_oak_leaves", "minecraft:spruce_leaves", "minecraft:birch_leaves", "minecraft:jungle_leaves", "minecraft:acacia_leaves", "minecraft:water", "minecraft:flowing_water", "minecraft:lava", "minecraft:flowing_lava", "minecraft:netherrack", "minecraft:end_stone", "minecraft:podzol", "minecraft:bamboo", "minecraft:seagrass", "minecraft:tall_seagrass"] + #Profile 4 - A list of blocks to strip away from the world + profile4 = ["minecraft:dirt", "minecraft:grass", "minecraft:grass_path", "minecraft:tall_grass", "minecraft:grass_block", "minecraft:stone", "minecraft:diorite", "minecraft:granite", "minecraft:andesite", "minecraft:gravel", "minecraft:sand", "minecraft:sandstone", "minecraft:oak_log", "minecraft:dark_oak_log", "minecraft:spruce_log", "minecraft:birch_log", "minecraft:jungle_log", "minecraft:acacia_log", "minecraft:oak_leaves", "minecraft:dark_oak_leaves", "minecraft:spruce_leaves", "minecraft:birch_leaves", "minecraft:jungle_leaves", "minecraft:acacia_leaves", "minecraft:water", "minecraft:flowing_water", "minecraft:lava", "minecraft:flowing_lava", "minecraft:netherrack", "minecraft:end_stone", "minecraft:podzol", "minecraft:bamboo", "minecraft:seagrass", "minecraft:tall_seagrass"] + #Profile 1 - A list of blocks to strip away from the world + profile1 = ["minecraft:dirt", "minecraft:grass", "minecraft:grass_path", "minecraft:tall_grass", "minecraft:grass_block", "minecraft:stone", "minecraft:diorite", "minecraft:granite", "minecraft:andesite", "minecraft:gravel", "minecraft:sand", "minecraft:sandstone", "minecraft:oak_log", "minecraft:dark_oak_log", "minecraft:spruce_log", "minecraft:birch_log", "minecraft:jungle_log", "minecraft:acacia_log", "minecraft:oak_leaves", "minecraft:dark_oak_leaves", "minecraft:spruce_leaves", "minecraft:birch_leaves", "minecraft:jungle_leaves", "minecraft:acacia_leaves", "minecraft:water", "minecraft:flowing_water", "minecraft:lava", "minecraft:flowing_lava", "minecraft:netherrack", "minecraft:end_stone", "minecraft:podzol", "minecraft:bamboo", "minecraft:seagrass", "minecraft:tall_seagrass"] + #Profile 2 - A list of blocks to strip away from the world + profile2 = ["minecraft:dirt", "minecraft:grass", "minecraft:grass_path", "minecraft:tall_grass", "minecraft:grass_block", "minecraft:stone", "minecraft:diorite", "minecraft:granite", "minecraft:andesite", "minecraft:gravel", "minecraft:sand", "minecraft:sandstone", "minecraft:oak_log", "minecraft:dark_oak_log", "minecraft:spruce_log", "minecraft:birch_log", "minecraft:jungle_log", "minecraft:acacia_log", "minecraft:oak_leaves", "minecraft:dark_oak_leaves", "minecraft:spruce_leaves", "minecraft:birch_leaves", "minecraft:jungle_leaves", "minecraft:acacia_leaves", "minecraft:water", "minecraft:flowing_water", "minecraft:lava", "minecraft:flowing_lava", "minecraft:netherrack", "minecraft:end_stone", "minecraft:podzol", "minecraft:bamboo", "minecraft:seagrass", "minecraft:tall_seagrass"] + #Selected Profile + #Range: 1 ~ 5 + selectedProfile = 1 + #Profile 5 - A list of blocks to strip away from the world + profile5 = ["minecraft:dirt", "minecraft:grass", "minecraft:grass_path", "minecraft:tall_grass", "minecraft:grass_block", "minecraft:stone", "minecraft:diorite", "minecraft:granite", "minecraft:andesite", "minecraft:gravel", "minecraft:sand", "minecraft:sandstone", "minecraft:oak_log", "minecraft:dark_oak_log", "minecraft:spruce_log", "minecraft:birch_log", "minecraft:jungle_log", "minecraft:acacia_log", "minecraft:oak_leaves", "minecraft:dark_oak_leaves", "minecraft:spruce_leaves", "minecraft:birch_leaves", "minecraft:jungle_leaves", "minecraft:acacia_leaves", "minecraft:water", "minecraft:flowing_water", "minecraft:lava", "minecraft:flowing_lava", "minecraft:netherrack", "minecraft:end_stone", "minecraft:podzol", "minecraft:bamboo", "minecraft:seagrass", "minecraft:tall_seagrass"] + #Flag 1 will cause a block update. Flag 2 will send the change to clients. Flag 4 will prevent the block from + #being re-rendered, if this is a client world. Flag 8 will force any re-renders to run on the main thread instead + #of the worker pool, if this is a client world and flag 4 is clear. Flag 16 will prevent observers from seeing this change + #Flags can be added together to obtain multiple flag properties + #Range: 1 ~ 16 + blockStateFlag = 3 + diff --git a/config/xaerominimap.txt b/config/xaerominimap.txt new file mode 100644 index 0000000000..c97f788572 --- /dev/null +++ b/config/xaerominimap.txt @@ -0,0 +1,92 @@ +#CONFIG ONLY OPTIONS +ignoreUpdate:0 +updateNotification:true +settingsButton:false +allowWrongWorldTeleportation:false +differentiateByServerAddress:true +#INGAME SETTINGS (DO NOT EDIT!) +minimap:true +caveMaps:1 +caveZoom:2 +showPlayers:true +showHostile:true +showMobs:true +showItems:true +showOther:true +showOtherTeam:true +showWaypoints:true +showIngameWaypoints:true +displayRedstone:true +deathpoints:true +oldDeathpoints:true +distance:1 +showCoords:true +lockNorth:true +zoom:1 +mapSize:-1 +entityAmount:1 +chunkGrid:-1 +slimeChunks:false +playersColor:10 +mobsColor:15 +hostileColor:4 +itemsColor:14 +otherColor:5 +otherTeamColor:9 +mapSafeMode:false +minimapOpacity:100.0 +waypointsScale:1.0 +antiAliasing:true +blockColours:0 +lighting:true +dotsScale:1.5 +compassOverWaypoints:false +showBiome:true +showEntityHeight:true +showFlowers:true +keepWaypointNames:false +waypointsDistance:0.0 +waypointsDistanceMin:0.0 +waypointTp:tp @s +arrowScale:1.5 +arrowColour:0 +smoothDots:true +playerHeads:false +heightLimit:20 +worldMap:true +terrainDepth:true +terrainSlopes:true +terrainSlopesExperiment:false +mainEntityAs:0 +blockTransparency:true +waypointOpacityIngame:80 +waypointOpacityMap:90 +hideWorldNames:1 +openSlimeSettings:true +alwaysShowDistance:false +playerNames:true +showLightLevel:false +renderLayerIndex:1 +crossDimensionalTp:true +mpCrossDimensionalTp:false +showTime:0 +biomeColorsVanillaMode:false +lookingAtAngle:20 +lookingAtAngleVertical:180 +centeredEnlarged:false +zoomedOutEnlarged:false +entityNametags:true +minimapTextAlign:0 +showAngles:false +waypointsMutualEdit:true +compass:true +caveMapsDepth:30 +hideWaypointCoordinates:false +renderAllSets:false +playerArrowOpacity:100 +interface:dummy:0:0:false:false:true:false +interface:dummy:0:135:false:false:false:false +interface:dummy:120:0:true:false:false:false +interface:dummy:0:50:true:false:false:false +interface:gui.xaero_minimap:0:0:false:false:true:false +#WAYPOINTS HAVE BEEN MOVED TO xaerowaypoints.txt! diff --git a/config/xaeropatreon.txt b/config/xaeropatreon.txt new file mode 100644 index 0000000000..da260c59e2 --- /dev/null +++ b/config/xaeropatreon.txt @@ -0,0 +1 @@ +showCapes:true diff --git a/config/xaeroworldmap.txt b/config/xaeroworldmap.txt new file mode 100644 index 0000000000..f3054e90c5 --- /dev/null +++ b/config/xaeroworldmap.txt @@ -0,0 +1,19 @@ +ignoreUpdate:48 +updateNotification:false +differentiateByServerAddress:true +debug:false +lighting:true +colours:0 +loadChunks:true +updateChunks:true +terrainSlopes:true +terrainDepth:true +footsteps:true +flowers:true +compression:false +coordinates:true +biomeColorsVanillaMode:false +waypoints:true +renderArrow:true +displayZoom:true +globalVersion:24 diff --git a/defaultconfigs/comforts-server.toml b/defaultconfigs/comforts-server.toml new file mode 100644 index 0000000000..d36f59eb73 --- /dev/null +++ b/defaultconfigs/comforts-server.toml @@ -0,0 +1,18 @@ + +[server] + #Set to true to automatically use sleeping bags when placed + autoUse = true + #Set to true to prevent sleeping depending on how long you previously slept + wellRested = false + #If well rested is true, this value is used to determine how long you need before being able to sleep again (larger numbers = can sleep sooner) + #Range: 1.0 ~ 20.0 + sleepyFactor = 2.0 + #Set to true to enable sleeping in hammocks at night + nightHammocks = false + #The chance that a sleeping bag will break upon usage + #Range: 0.0 ~ 1.0 + sleepingBagBreakage = 0.0 + #List of debuffs to apply to players after using the sleeping bag + #Format: [effect] [duration(secs)] [power] + sleepingBagDebuffs = [] + diff --git a/defaultconfigs/cosmeticarmorreworked-server.toml b/defaultconfigs/cosmeticarmorreworked-server.toml new file mode 100644 index 0000000000..598ed6ac57 --- /dev/null +++ b/defaultconfigs/cosmeticarmorreworked-server.toml @@ -0,0 +1,6 @@ + +#These settings affects both server and client, they will also be synced from server to client +[Server] + #Whether or not to disable the RecipeBook in the CosmeticArmorInventory + CosArmorDisableRecipeBook = false + diff --git a/defaultconfigs/culinaryconstruct-server.toml b/defaultconfigs/culinaryconstruct-server.toml new file mode 100644 index 0000000000..92d382afe9 --- /dev/null +++ b/defaultconfigs/culinaryconstruct-server.toml @@ -0,0 +1,14 @@ + +[server] + #The maximum amount of food that a single sandwich can give + #Range: 1 ~ 100 + maxFoodPerSandwich = 10 + #Blacklist ingredients with more than this max saturation modifier, -1 to disable + #Range: -1.0 ~ 100.0 + maxIngredientSaturation = -1.0 + #Blacklist ingredients with more than this max food value, -1 to disable + #Range: -1 ~ 100 + maxIngredientFood = -1 + #List of items to blacklist as ingredients + ingredientBlacklist = [] + diff --git a/defaultconfigs/curios-server.toml b/defaultconfigs/curios-server.toml new file mode 100644 index 0000000000..b10203c26a --- /dev/null +++ b/defaultconfigs/curios-server.toml @@ -0,0 +1,3 @@ +#List of curio slot type settings +curiosSettings = [] + diff --git a/defaultconfigs/dangerousstonecutter-server.toml b/defaultconfigs/dangerousstonecutter-server.toml new file mode 100644 index 0000000000..66fa6f52a0 --- /dev/null +++ b/defaultconfigs/dangerousstonecutter-server.toml @@ -0,0 +1,4 @@ + +[general] + "Cutting damage" = 3 + diff --git a/defaultconfigs/dankstorage-server.toml b/defaultconfigs/dankstorage-server.toml new file mode 100644 index 0000000000..53a358c8f2 --- /dev/null +++ b/defaultconfigs/dankstorage-server.toml @@ -0,0 +1,29 @@ + +[server] + #Stack limit of first dank storage + #Range: > 1 + stacklimit1 = 256 + #Stack limit of second dank storage + #Range: > 1 + stacklimit2 = 1024 + #Stack limit of third dank storage + #Range: > 1 + stacklimit3 = 4096 + #Stack limit of fourth dank storage + #Range: > 1 + stacklimit4 = 16384 + #Stack limit of fifth dank storage + #Range: > 1 + stacklimit5 = 65536 + #Stack limit of sixth dank storage + #Range: > 1 + stacklimit6 = 262144 + #Stack limit of seventh dank storage + #Range: > 1 + stacklimit7 = 2147483647 + #Tags that are eligible for conversion, input as a list of resourcelocation, eg 'forge:ingots/iron' + "convertible tags" = ["forge:ingots/iron", "forge:ingots/gold", "forge:ores/coal", "forge:ores/diamond", "forge:ores/emerald", "forge:ores/gold", "forge:ores/iron", "forge:ores/lapis", "forge:ores/redstone", "forge:gems/amethyst", "forge:gems/peridot", "forge:gems/ruby", "forge:ingots/copper", "forge:ingots/lead", "forge:ingots/nickel", "forge:ingots/silver", "forge:ingots/tin", "forge:ores/copper", "forge:ores/lead", "forge:ores/ruby", "forge:ores/silver", "forge:ores/tin"] + #Use Share Tag instead of full NBT to reduce the chance of NBT oversending causing clients to be disconnected. Warning: this will cause the Dank + #Storage to wipe it's items in Creative Mode. There is nothing I can do about this as it is a vanilla bug. + useShareTag = false + diff --git a/defaultconfigs/engineerstools-server.toml b/defaultconfigs/engineerstools-server.toml new file mode 100644 index 0000000000..609b6eba25 --- /dev/null +++ b/defaultconfigs/engineerstools-server.toml @@ -0,0 +1,47 @@ + +#Settings affecting the logical server side, also valid for single player games. +[server] + + #Opt-out settings + [server.optout] + #Opt-out any block by its registry name ('*' wildcard matching, comma separated list, whitespaces ignored. You must match the whole name, means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' excludes everything that has 'wood' or 'steel' in the registry name. The matching result is also traced in the log file. + pattern_excludes = "" + #Prevent blocks from being opt'ed by registry name ('*' wildcard matching, comma separated list, whitespaces ignored. Evaluated before all other opt-out checks. You must match the whole name, means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' includes everything that has 'wood' or 'steel' in the registry name.The matching result is also traced in the log file. + pattern_includes = "" + #Completely disable the crushing hammer. + without_crushing_hammer = false + #Completely disable the REDIA tool. + without_redia_tool = false + #Completely disable the Auto Stim Pack. + without_stimpack = false + #Completely disable the Diving Air Capsule. + without_diving_capsule = false + #Completely disable the Ariadne Coal. + without_ariadne_coal = false + #Completely disable the Sleeping Bag. + without_sleeping_bag = false + #Completely disable the Muslee Bar and Muslee Bar Press. + without_musli_bar = false + #Completely disable the Material Box. + without_material_box = false + + #Miscellaneous settings + [server.miscellaneous] + #Enables experimental features. Use at own risk. + with_experimental = false + + #Settings to tweak the performance, or use cases normally no change should be required here. + [server.tweaks] + #Durability (maximum item damage) of the REDIA tool. + #Range: 750 ~ 4000 + redia_tool_durability = 3000 + #Durability of the REDIA tool in percent, which the tool has when it is crafted. Allows to tune initial repairing investments for getting efficiency and furtune. + #Range: 50 ~ 100 + redia_tool_initial_durability_percent = 100 + #Defines the efficiency scaling depending on the durability. Ten values have to given as integer numbers, (between 0 and 4), and the curve must be rising left-to-right. 0 corresponds to vanilla diamond tools. The first number specifies the efficiency between 0% and 10% durability, second 10% to 20%, last 90% to 100%. + redia_tool_efficiency_curve = "0,1,1,2,2,3,3,3,3,4" + #Defines the fortune depending on the durability. Ten values have to given as integer numbers, (between 0 and 3), and the curve must be rising left-to-right. The first number specifies the furtune between 0% and 10% durability, second 10% to 20%, last 90% to 100%. + redia_tool_furtune_curve = "0,0,0,0,1,1,1,1,2,3" + #Disable the REDIA tool feature to prevent accidentally hitting own pets, villagers, or bloody zombie pigmen. + without_safe_attacking = false + diff --git a/defaultconfigs/fastleafdecay-server.toml b/defaultconfigs/fastleafdecay-server.toml new file mode 100644 index 0000000000..b0df373aa0 --- /dev/null +++ b/defaultconfigs/fastleafdecay-server.toml @@ -0,0 +1,7 @@ +#Minimum time in ticks for leaf decay. Must be lower than MaximumDecayTime! +#Range: > 0 +MinimumDecayTime = 4 +#Maximum time in ticks for leaf decay. Must be higher than MinimumDecayTime! +#Range: > 0 +MaximumDecayTime = 11 + diff --git a/defaultconfigs/forge-server.toml b/defaultconfigs/forge-server.toml new file mode 100644 index 0000000000..94aa530b63 --- /dev/null +++ b/defaultconfigs/forge-server.toml @@ -0,0 +1,30 @@ + +#Server configuration settings +[server] + #The time in ticks the server will wait when a dimension was queued to unload. This can be useful when rapidly loading and unloading dimensions, like e.g. throwing items through a nether portal a few time per second. + #Range: > 0 + dimensionUnloadQueueDelay = 0 + #Base zombie summoning spawn chance. Allows changing the bonus zombie summoning mechanic. + #Range: 0.0 ~ 1.0 + zombieBaseSummonChance = 0.1 + #Chance that a zombie (or subclass) is a baby. Allows changing the zombie spawning mechanic. + #Range: 0.0 ~ 1.0 + zombieBabyChance = 0.05 + #Set this to true to remove any Entity that throws an error in its update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES. + removeErroringEntities = false + #Set this to true to check the entire entity's collision bounding box for ladders instead of just the block they are in. Causes noticeable differences in mechanics so default is vanilla behavior. Default: false. + fullBoundingBoxLadders = false + #Fix advancement loading to use a proper topological sort. This may have visibility side-effects and can thus be turned off if needed for data-pack compatibility. + fixAdvancementLoading = true + #Log cascading chunk generation issues during terrain population. + logCascadingWorldGeneration = true + #Vanilla will treat crafting recipes using empty tags as air, and allow you to craft with nothing in that slot. This changes empty tags to use BARRIER as the item. To prevent crafting with air. + treatEmptyTagsAsAir = false + #Controls the number threshold at which Packet51 is preferred over Packet52, default and minimum 64, maximum 1024. + #Range: 64 ~ 1024 + clumpingThreshold = 64 + #Set this to true to remove any TileEntity that throws an error in its update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES. + removeErroringTileEntities = false + #Fix vanilla issues that cause worldgen cascading. This DOES change vanilla worldgen so DO NOT report bugs related to world differences if this flag is on. + fixVanillaCascading = false + diff --git a/defaultconfigs/gravestone-server.toml b/defaultconfigs/gravestone-server.toml new file mode 100644 index 0000000000..93978954e7 --- /dev/null +++ b/defaultconfigs/gravestone-server.toml @@ -0,0 +1,15 @@ +#If this is set to true every living entity will generate a gravestone +enable_living_entity_graves = false +#If this is set to true you get a death note after you died +enable_death_note = true +#The blocks that can be replaced with a grave when someone dies there +replaceable_blocks = ["minecraft:tall_grass", "minecraft:grass", "minecraft:water", "minecraft:lava", "minecraft:dandelion", "minecraft:lilac", "minecraft:rose_bush", "minecraft:peony", "minecraft:sunflower", "minecraft:poppy", "minecraft:blue_orchid", "minecraft:azure_bluet", "minecraft:oxeye_daisy", "minecraft:orange_tulip", "minecraft:pink_tulip", "minecraft:red_tulip", "minecraft:white_tulip", "minecraft:allium", "minecraft:fern", "minecraft:large_fern", "minecraft:spruce_sapling", "minecraft:acacia_sapling", "minecraft:birch_sapling", "minecraft:dark_oak_sapling", "minecraft:jungle_sapling", "minecraft:oak_sapling", "minecraft:brown_mushroom", "minecraft:red_mushroom", "minecraft:snow", "minecraft:vine", "minecraft:dead_bush", "minecraft:fire"] +#If this is set to true the death note will be taken out of your inventory when you destroyed the gravestone +remove_death_note = false +#If this is set to true only the player that owns the gravestone and the admins can break the gravestone +only_owners_can_break = false +#If this is set to true a ghost of the dead player will be spawned when the gravestone is broken +spawn_ghost = false +#If this is set to true the ghost of the dead player will defend him +friendly_ghost = true + diff --git a/defaultconfigs/ma-enchants-server.toml b/defaultconfigs/ma-enchants-server.toml new file mode 100644 index 0000000000..aba5c5ffb8 --- /dev/null +++ b/defaultconfigs/ma-enchants-server.toml @@ -0,0 +1,73 @@ + +[curse_breaking] + enable = true + +[curse_butterfingers] + enable = true + +[curse_aquaphobia] + enable = true + +[curse_death] + enable = true + +[reinforced_tip] + enable = true + +[stone_mending] + enable = true + +[lumberjack] + enable = true + +[momentum] + enable = true + +[butchering] + enable = true + +[true_shot] + enable = true + +[quick_draw] + enable = true + +[floating] + enable = true + +[paralysis] + enable = true + +[detonation] + enable = true + +[combo] + enable = true + +[faster_attack] + enable = true + +[lifesteal] + enable = true + +[ice_aspect] + enable = true + +[wisdom] + enable = true + +[blazing_walker] + enable = true + +[step_assist] + enable = true + +[night_vision] + enable = true + +[multi_jump] + enable = true + +[timeless] + enable = true + diff --git a/defaultconfigs/morevanillalib-server.toml b/defaultconfigs/morevanillalib-server.toml new file mode 100644 index 0000000000..8302a2d6ff --- /dev/null +++ b/defaultconfigs/morevanillalib-server.toml @@ -0,0 +1,183 @@ + +[features] + #If set true, tools may drop an item when they'll be used. + extraDrop = true + #If set true, bone axe and sword make extra damage against special mobs. + extraDamage = true + #If set to true the corresponding ore of the tool drops an additional resource. + doubleDrop = true + #If set to true paper tools may hurt you. + damageByPaperTools = true + #If set true, (wither) skeletons will drop their head with a defined chance if killed with bone axe or sword. + headDrop = true + #If set true, glowstone tools will always drop 4 glowstone dust when breaking glowstone blocks. + glowstoneDrops = true + #If set true, using Fiery tools to mine blocks will smelt them. + autoSmelt = true + + [features.doubleDropBool] + #Diamond available for hammers/excavators + diamond = true + coal = true + quartz = true + lapis = true + emerald = true + redstone = true + +[chances] + + [chances.doubleDropValue] + #Default 1 = 0.1% + #Range: 0 ~ 1000 + diamond = 1 + #Range: 0 ~ 1000 + coal = 500 + #Range: 0 ~ 1000 + quartz = 500 + #Range: 0 ~ 1000 + lapis = 500 + #Default 1 = 0.1% + #Range: 0 ~ 1000 + emerald = 1 + #Range: 0 ~ 1000 + redstone = 500 + + [chances.extraDropValue] + #Sets the chance of an extra drop when using a tool. [Default 5 = 0.5%] + #Range: 0 ~ 1000 + extraDrop = 5 + #Sets the chance of extra damage when using bone axe or sword on a (wither) skeleton. [Default 200 = 20%] + #Range: 0 ~ 1000 + extraDamage = 200 + #Sets the chance to take an half heart damage if using paper tools. [Default 100 = 10%] + #Range: > 0 + damageByPaperTools = 100 + #Sets the chance of an head drop when using bone axe or sword. [Default 50 = 5%] + #Range: 0 ~ 1000 + headDrop = 50 + +[amounts] + #The maximum amount of damage. Default: 5 = 2.5 hearts + #Range: > 0 + maxPaperDamage = 5 + #The minimum amount of damage. Default: 1 = 0.5 hearts + #Range: > 0 + minPaperDamage = 1 + + [amounts.durabilities] + #Range: > 1 + prismarine = 265 + #Range: > 1 + nether = 280 + #Range: > 1 + obsidian = 1337 + #Range: > 1 + fiery = 148 + #Range: > 1 + quartz = 137 + #The durability of the tools + #Range: > 1 + bone = 206 + #Range: > 1 + ender = 1859 + #Range: > 1 + glowstone = 173 + #Range: > 1 + slime = 183 + #Range: > 1 + paper = 13 + #Range: > 1 + coal = 155 + #Range: > 1 + lapis = 173 + #Range: > 1 + emerald = 1859 + #Range: > 1 + redstone = 173 + + [amounts.miningspeed] + #Range: 0.0 ~ 2.147483647E9 + prismarine = 7.0 + #Range: 0.0 ~ 2.147483647E9 + nether = 4.9 + #Range: 0.0 ~ 2.147483647E9 + obsidian = 8.2 + #Range: 0.0 ~ 2.147483647E9 + fiery = 7.0 + #Range: 0.0 ~ 2.147483647E9 + quartz = 4.9 + #Range: 0.0 ~ 2.147483647E9 + bone = 4.9 + #Range: 0.0 ~ 2.147483647E9 + ender = 5.7 + #Range: 0.0 ~ 2.147483647E9 + glowstone = 5.0 + #Range: 0.0 ~ 2.147483647E9 + stone = 4.0 + #Range: 0.0 ~ 2.147483647E9 + netherite = 9.0 + #Range: 0.0 ~ 2.147483647E9 + slime = 6.2 + #Range: 0.0 ~ 2.147483647E9 + gold = 12.0 + #Range: 0.0 ~ 2.147483647E9 + diamond = 8.0 + #Range: 0.0 ~ 2.147483647E9 + paper = 1.8 + #Range: 0.0 ~ 2.147483647E9 + iron = 6.0 + #Range: 0.0 ~ 2.147483647E9 + coal = 4.9 + #The mining speed of the tools. Will be devided by 3.5 for hammers/excavators. + #Range: 0.0 ~ 2.147483647E9 + wood = 2.0 + #Range: 0.0 ~ 2.147483647E9 + lapis = 6.2 + #Range: 0.0 ~ 2.147483647E9 + emerald = 8.2 + #Range: 0.0 ~ 2.147483647E9 + redstone = 6.2 + + [amounts.harvestlevels] + #Range: 0 ~ 5 + prismarine = 3 + #Range: 0 ~ 5 + nether = 1 + #Range: 0 ~ 5 + obsidian = 4 + #Range: 0 ~ 5 + fiery = 2 + #Range: 0 ~ 5 + quartz = 2 + #Range: 0 ~ 5 + bone = 1 + #Range: 0 ~ 5 + ender = 3 + #Range: 0 ~ 5 + glowstone = 2 + #Range: 0 ~ 5 + stone = 1 + #Range: 0 ~ 5 + netherite = 4 + #Range: 0 ~ 5 + slime = 2 + #Range: 0 ~ 5 + gold = 0 + #Range: 0 ~ 5 + diamond = 3 + #Range: 0 ~ 5 + paper = 0 + #Range: 0 ~ 5 + iron = 2 + #Range: 0 ~ 5 + coal = 1 + #The harvestlevel of the tools (0 = wood; 1 = stone; 2 = iron; 3 = diamond; 4-5 = higher) + #Range: 0 ~ 5 + wood = 0 + #Range: 0 ~ 5 + lapis = 2 + #Range: 0 ~ 5 + emerald = 3 + #Range: 0 ~ 5 + redstone = 2 + diff --git a/defaultconfigs/packingtape-server.toml b/defaultconfigs/packingtape-server.toml new file mode 100644 index 0000000000..f44f0b18b7 --- /dev/null +++ b/defaultconfigs/packingtape-server.toml @@ -0,0 +1,15 @@ + +[general] + #How many times the tape roll can be used before it breaks + #Range: 0 ~ 2147483646 + tape_roll_uses = 8 + #TileEntities to disallow (whitelist takes precedence) + #NOTE: This list now uses 'Block Entity Type' IDs. Eg. the shulker boxes are 'minecraft:shulker_box'. + blacklist = [] + #TileEntities to allow regardless of the blacklist and vanilla restrictions. + #WARNING: This whitelist bypasses the 'only ops can copy' limitation of Minecraft, which can result in security issues, don't whitelist things unless you know what the side-effects will be. + #NOTE: This list now uses 'Block Entity Type' IDs. Eg. the spawner is 'minecraft:mob_spawner'. + whitelist = [] + #Whether the tape roll consumes paper when used + consume_paper = true + diff --git a/defaultconfigs/productivebees-server.toml b/defaultconfigs/productivebees-server.toml new file mode 100644 index 0000000000..d30e831ed1 --- /dev/null +++ b/defaultconfigs/productivebees-server.toml @@ -0,0 +1,177 @@ + +[General] + #Use items to change the type of a bee. + #If false, productive bees can only be obtained through breeding. Default false. + enableItemConverting = false + #How often should a bee attempt to generate items while in the hive. Default 500. + #Range: > 20 + itemTickRate = 500 + #How many ticks it takes for process a recipe in the centrifuge. Default 300. + #Range: > 20 + centrifugeProcessingTime = 300 + #Bees will create combs instead of raw resource. Combs will need to be processed in a centrifuge. Default true. + enableCombProduce = true + #Cooldown for when an abandoned nest will spawn a new inhabitant + #Range: > 20 + nestRepopulationCooldown = 36000 + #Comma separated list of block names to exclude from the list of woodchips + woodChipLogsBlacklist = "atmospheric:crustose_log,forbidden_arcanus:edelwood_log" + +[Bees] + #Spawn skeletal and zombie bees as night? + spawnUndeadBees = true + #Range: 0.0 ~ 1.0 + spawnUndeadBeesChance = 0.01 + #Production chance for vanilla bees + #Range: 0.0 ~ 1.0 + "minecraft:bee" = 0.65 + #Production chance for productivebees:iron_bee + #Range: 0.0 ~ 1.0 + "productivebees:iron_bee" = 0.65 + #Production chance for productivebees:gold_bee + #Range: 0.0 ~ 1.0 + "productivebees:gold_bee" = 0.65 + #Production chance for productivebees:coal_bee + #Range: 0.0 ~ 1.0 + "productivebees:coal_bee" = 0.65 + #Production chance for productivebees:redstone_bee + #Range: 0.0 ~ 1.0 + "productivebees:redstone_bee" = 0.65 + #Production chance for productivebees:lapis_bee + #Range: 0.0 ~ 1.0 + "productivebees:lapis_bee" = 0.65 + #Production chance for productivebees:emerald_bee + #Range: 0.0 ~ 1.0 + "productivebees:emerald_bee" = 0.65 + #Production chance for productivebees:diamond_bee + #Range: 0.0 ~ 1.0 + "productivebees:diamond_bee" = 0.65 + #Production chance for productivebees:dye_bee + #Range: 0.0 ~ 1.0 + "productivebees:dye_bee" = 0.65 + #Production chance for productivebees:lumber_bee + #Range: 0.0 ~ 1.0 + "productivebees:lumber_bee" = 0.65 + #Production chance for productivebees:creeper_bee + #Range: 0.0 ~ 1.0 + "productivebees:creeper_bee" = 0.65 + #Production chance for productivebees:zombie_bee + #Range: 0.0 ~ 1.0 + "productivebees:zombie_bee" = 0.65 + #Production chance for productivebees:ender_bee + #Range: 0.0 ~ 1.0 + "productivebees:ender_bee" = 0.65 + #Production chance for productivebees:skeletal_bee + #Range: 0.0 ~ 1.0 + "productivebees:skeletal_bee" = 0.65 + #Production chance for productivebees:wither_bee + #Range: 0.0 ~ 1.0 + "productivebees:wither_bee" = 0.65 + #Production chance for productivebees:glowing_bee + #Range: 0.0 ~ 1.0 + "productivebees:glowing_bee" = 0.65 + #Production chance for productivebees:quartz_bee + #Range: 0.0 ~ 1.0 + "productivebees:quartz_bee" = 0.65 + #Production chance for productivebees:magmatic_bee + #Range: 0.0 ~ 1.0 + "productivebees:magmatic_bee" = 0.65 + #Production chance for productivebees:blazing_bee + #Range: 0.0 ~ 1.0 + "productivebees:blazing_bee" = 0.65 + #Production chance for productivebees:draconic_bee + #Range: 0.0 ~ 1.0 + "productivebees:draconic_bee" = 0.65 + #Production chance for productivebees:slimy_bee + #Range: 0.0 ~ 1.0 + "productivebees:slimy_bee" = 0.65 + #Production chance for productivebees:aluminium_bee + #Range: 0.0 ~ 1.0 + "productivebees:aluminium_bee" = 0.65 + #Production chance for productivebees:amber_bee + #Range: 0.0 ~ 1.0 + "productivebees:amber_bee" = 0.65 + #Production chance for productivebees:brass_bee + #Range: 0.0 ~ 1.0 + "productivebees:brass_bee" = 0.65 + #Production chance for productivebees:bronze_bee + #Range: 0.0 ~ 1.0 + "productivebees:bronze_bee" = 0.65 + #Production chance for productivebees:copper_bee + #Range: 0.0 ~ 1.0 + "productivebees:copper_bee" = 0.65 + #Production chance for productivebees:electrum_bee + #Range: 0.0 ~ 1.0 + "productivebees:electrum_bee" = 0.65 + #Production chance for productivebees:invar_bee + #Range: 0.0 ~ 1.0 + "productivebees:invar_bee" = 0.65 + #Production chance for productivebees:lead_bee + #Range: 0.0 ~ 1.0 + "productivebees:lead_bee" = 0.65 + #Production chance for productivebees:nickel_bee + #Range: 0.0 ~ 1.0 + "productivebees:nickel_bee" = 0.65 + #Production chance for productivebees:osmium_bee + #Range: 0.0 ~ 1.0 + "productivebees:osmium_bee" = 0.65 + #Production chance for productivebees:platinum_bee + #Range: 0.0 ~ 1.0 + "productivebees:platinum_bee" = 0.65 + #Production chance for productivebees:radioactive_bee + #Range: 0.0 ~ 1.0 + "productivebees:radioactive_bee" = 0.65 + #Production chance for productivebees:silver_bee + #Range: 0.0 ~ 1.0 + "productivebees:silver_bee" = 0.65 + #Production chance for productivebees:steel_bee + #Range: 0.0 ~ 1.0 + "productivebees:steel_bee" = 0.65 + #Production chance for productivebees:tin_bee + #Range: 0.0 ~ 1.0 + "productivebees:tin_bee" = 0.65 + #Production chance for productivebees:titanium_bee + #Range: 0.0 ~ 1.0 + "productivebees:titanium_bee" = 0.65 + #Production chance for productivebees:tungsten_bee + #Range: 0.0 ~ 1.0 + "productivebees:tungsten_bee" = 0.65 + #Production chance for productivebees:zinc_bee + #Range: 0.0 ~ 1.0 + "productivebees:zinc_bee" = 0.65 + +["Bee attributes"] + #Number of ticks between effects on nearby entities + #Range: > 20 + ticks = 2337 + #Chance that a bee will take damage while leashed in a hostile environment + #Range: 0.0 ~ 1.0 + damageChance = 0.1 + #Chance to increase tolerance (rain or thunder tolerance trait) while leashed in a hostile environment. + #Range: 0.0 ~ 1.0 + toleranceChance = 0.1 + #Chance to increase behavior (nocturnal trait) while leashed in a hostile environment. + #Range: 0.0 ~ 1.0 + behaviorChance = 0.1 + +[Worldgen] + #Which nests should generate in the world. Nest will still be craftable and attract bees when placed in the world. + "enable_productivebees:oak_wood_nest" = true + "enable_productivebees:spruce_wood_nest" = true + "enable_productivebees:dark_oak_wood_nest" = true + "enable_productivebees:birch_wood_nest" = true + "enable_productivebees:jungle_wood_nest" = true + "enable_productivebees:acacia_wood_nest" = true + "enable_productivebees:stone_nest" = true + "enable_productivebees:coarse_dirt_nest" = true + "enable_productivebees:sand_nest" = true + "enable_productivebees:snow_nest" = true + "enable_productivebees:gravel_nest" = true + "enable_productivebees:sugar_cane_nest" = true + "enable_productivebees:slimy_nest" = true + "enable_productivebees:glowstone_nest" = true + "enable_productivebees:nether_quartz_nest" = true + "enable_productivebees:nether_brick_nest" = true + "enable_productivebees:end_stone_nest" = true + "enable_productivebees:obsidian_nest" = true + diff --git a/defaultconfigs/reap-server.toml b/defaultconfigs/reap-server.toml new file mode 100644 index 0000000000..43235fa317 --- /dev/null +++ b/defaultconfigs/reap-server.toml @@ -0,0 +1,13 @@ +#The blocks that should get harvested by right-clicking +reap_whitelist = ["minecraft:nether_wart", "minecraft:potatoes", "minecraft:carrots", "minecraft:wheat", "minecraft:beetroots", "minecraft:cocoa"] +#The log blocks that are allowed to get harvested by the tree harvester +log_types = ["minecraft:acacia_log", "minecraft:birch_log", "minecraft:dark_oak_log", "minecraft:jungle_log", "minecraft:oak_log", "minecraft:spruce_log", "minecraft:crimson_stem", "minecraft:warped_stem"] +#The blocks that are allowed below logs that can be harvested +ground_types = ["minecraft:dirt", "minecraft:grass_block", "minecraft:coarse_dirt", "minecraft:podzol", "minecraft:mycelium", "minecraft:warped_nylium", "minecraft:crimson_nylium", "minecraft:netherrack"] +#The tools which the player is allowed to harvest trees +allowed_tree_tools = ["minecraft:wooden_axe", "minecraft:golden_axe", "minecraft:stone_axe", "minecraft:iron_axe", "minecraft:diamond_axe", "minecraft:netherite_axe"] +#If the tree harvester should be enabled +tree_harvest = true +#If bigger trees should be harder to break +dynamic_tree_breaking_speed = true + diff --git a/defaultconfigs/rsgauges-server.toml b/defaultconfigs/rsgauges-server.toml new file mode 100644 index 0000000000..e5b69ee19e --- /dev/null +++ b/defaultconfigs/rsgauges-server.toml @@ -0,0 +1,87 @@ + +#Settings affecting the logical server side, but are also configurable in single player. +[server] + + #Opt-out settings + [server.optout] + #Opt-out any block by its registry name ('*' wildcard matching, comma separated list, whitespaces ignored. You must match the whole name, means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' excludes everything that has 'wood' or 'steel' in the registry name. The matching result is also traced in the log file. + pattern_excludes = "" + #Prevent blocks from being opt'ed by registry name ('*' wildcard matching, comma separated list, whitespaces ignored. Evaluated before all other opt-out checks. You must match the whole name, means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' includes everything that has 'wood' or 'steel' in the registry name.The matching result is also traced in the log file. + pattern_includes = "" + #Completely disable all (power metering) gauges. + without_gauges = false + #Completely disable all (blinking and steady) indicator lamps/LEDs. + without_indicators = false + #Completely disable all blinking indicator lamps/LEDs. + without_blinking_indicators = false + #Completely disable all sound emmitting indicators. + without_sound_indicators = false + #Completely disable all (button like) pulse switches. + without_pulse_switches = false + #Completely disable all (lever like) bistable switches. + without_bistable_switches = false + #Completely disable all contact switches. + without_contact_switches = false + #Completely disable all automatic switches. + without_automatic_switches = false + #Completely disable all link relay switches. + without_linkrelay_switches = false + #Completely disable all analog switches, such as dimmers. + without_analog_switches = false + #Completely disable all decorative blocks. + without_decorative = false + #Disable pulse time configuration of switches using redstone dust stack clicking. + without_pulsetime_config = false + #Disable color tinting for switches and gauges. + without_color_tinting = false + #Disable the 'no output' config option for switches. + without_switch_nooutput = false + #Disables switch remote linking. + without_switch_linking = false + #Disable all internal recipes, allowing to use alternative pack recipes. + without_recipes = false + #Disables the possibility to right click switches with Redstone Dust, Ender Pearls or Switch Link pearls for configuration or linking. Can be useful if it is important to the players that no unforseen switch configuration happens when activating a switch was intended. Affects server side only. Can be changed during operation. + without_rightclick_item_switchconfig = false + + #Miscellaneous settings + [server.miscellaneous] + #Enables experimental features. Use at own risk. + with_experimental = false + #Disable the status overlay for switches and use chat messages instead. + without_switch_status_overlay = false + #Disable tile entity update() for detector switches(for performance testing only, don't do this at home). + without_detector_switch_update = false + #Disable tile entity update() for environmental sensor switches. + #(for performance testing only, don't do this at home) + without_environmental_switch_update = false + #Disable tile entity update() for time based switches.(for performance testing only, don't do this at home) + without_timer_switch_update = false + #Defines how far you or a link source switch can be away from the target to activate it. The value 0 means 'no limitation', as long as the target chunk is loaded. + #Range: 0 ~ 64 + max_switch_linking_distance = 48 + #Comma sepatated list of items names that can be used alter configurable blocks of this mod. This applies when the display side of the block is right click (activated) with the item in the main hand. + accepted_wrenches = "redstone_torch" + + #Settings to tweak the performance, or use cases normally no change should be required here. + [server.tweaks] + #Gauges shall not frequently lookup weak power provided to the block they are attached to. + without_gauge_weak_power_measurement = false + #Sample interval of the gauges in ticks. Lower values decrease the display latency for indirect weak power measurements. Minor performance impact for values >= 5. + #Range: 2 ~ 100 + gauge_update_interval = 8 + #Sample interval of volume sensing automatic switches in ticks (e.g infrared motion detector). Lower values make the switches reacting faster, but also have an impact on the server performance due to ray tracing. + #Range: 5 ~ 50 + autoswitch_volumetric_update_interval = 10 + #Sample interval of the linear switches in ticks (like laser pointer based sensors). Lower values make the switches reacting faster, but also have an impact on the server performance due to ray tracing. Has much less impact + #as the volumetric autoswitch interval. + #Range: 1 ~ 50 + autoswitch_linear_update_interval = 4 + #Timeout in milliseconds defining the timeout for left clicking switches or devices in order to configure them. If the device can be opened, it will be opened on 'double-left-click' and closed again on 'single-left-click'. The item in the hand must be a valid wrench (see 'Accepted wrenches'). For switches/devices that cannot be opened, multi-clicking cycles through the configuration options. The block has to be at least clicked two times withing the timeout to differ configuration from block breaking, and prevent misconfiguration on unintended left-clicking. + #Range: 500 ~ 1200 + config_left_click_timeout = 700 + #Disable CTRL-SHIFT item tooltip display. + without_tooltips = false + #Vertial position of the switch status overlay message. + #Range: 0.1 ~ 0.8 + switch_status_overlay_y = 0.75 + diff --git a/defaultconfigs/serverconfigupdater-server.toml b/defaultconfigs/serverconfigupdater-server.toml new file mode 100644 index 0000000000..68f281147b --- /dev/null +++ b/defaultconfigs/serverconfigupdater-server.toml @@ -0,0 +1,4 @@ +#Version this world is on. This value gets updated automatically! +#Range: > 0 +version = 0 + diff --git a/defaultconfigs/usefulbackpacks-server.toml b/defaultconfigs/usefulbackpacks-server.toml new file mode 100644 index 0000000000..12ac4525b0 --- /dev/null +++ b/defaultconfigs/usefulbackpacks-server.toml @@ -0,0 +1,9 @@ + +#Server configuration settings +[server] + #This option controlls the behaviour of the nbt synchronization between the server and the client on a dedicated server. + #If set to true this mod sync all inventory data to the client which may lead to very large nbt packets or even timeouts when the nbt data is > 2mb. + #If set to false this fix this issue but don't let you use the item in creative mod. + #If you set this to false DO NOT CHANGE YOUR GAMEMODE to creative as this will clear the inventory data! + shareAllNBTData = true + diff --git a/defaultconfigs/waystones-server.toml b/defaultconfigs/waystones-server.toml new file mode 100644 index 0000000000..50c89ba7e0 --- /dev/null +++ b/defaultconfigs/waystones-server.toml @@ -0,0 +1,77 @@ + +#These options will be synced to joining clients. +[server] + + #These options apply to teleporting using the scroll items. + [server.scrolls] + #The time in ticks it takes to use a scroll. This is the charge-up time when holding right-click. + #Range: 1 ~ 127 + scrollUseTime = 32 + + #These options apply to the optional Waystones button displayed in the inventory. + [server.inventoryButton] + #Set to 'NONE' for no inventory button. Set to 'NEAREST' for an inventory button that teleports to the nearest waystone. Set to 'ANY' for an inventory button that opens the waystone selection menu. Set to a waystone name for an inventory button that teleports to a specifically named waystone. + inventoryButton = "NONE" + #The multiplier applied to the base xp cost when teleporting via the inventory button. + #Range: 0.0 ~ Infinity + inventoryButtonXpCostMultiplier = 1.0 + #The cooldown between usages of the inventory button in seconds. + #Range: > 0 + inventoryButtonCooldown = 300 + + #These options apply to teleporting using the Warp Stone item. + [server.warpStone] + #The cooldown between usages of the warp stone in seconds. This is bound to the player, not the item, so multiple warp stones share the same cooldown. + #Range: > 0 + warpStoneCooldown = 300 + #The time in ticks that it takes to use a warp stone. This is the charge-up time when holding right-click. + #Range: 1 ~ 127 + warpStoneUseTime = 32 + #The multiplier applied to the base xp cost when teleporting using a Warp Stone item (not the Waystone block, John) + #Range: 0.0 ~ Infinity + warpStoneXpCostMultiplier = 1.0 + + #These options define restrictions when managing waystones. + [server.restrictions] + #If enabled, only creative players can place, edit or break waystones. This does NOT disable the crafting recipe. + restrictToCreative = false + #If enabled, waystones generated in worldgen are unbreakable. + generatedWaystonesUnbreakable = true + #If enabled, only the owner of a waystone (the one who placed it) can rename it. + restrictRenameToOwner = false + + #Note: Base XP cost is based on the distance travelled. + [server.baseXpCost] + #The maximum base xp cost (may be exceeded by multipliers defined below) + #Range: 1.0 ~ Infinity + maximumXpCost = 5.0 + #The amount of blocks per xp level requirement. If set to 500, the base xp cost for travelling 1000 blocks will be 2 levels. + #Range: > 1 + blocksPerXPLevel = 1000 + + #These options apply to teleporting between dimensions. + [server.dimensionalWarp] + #The base xp level cost when travelling between dimensions. Ignores block distance. + #Range: 0 ~ 0 + dimensionalWarpXpCost = 3 + #Set to 'ALLOW' to allow dimensional warp in general. Set to 'GLOBAL_ONLY' to restrict dimensional warp to global waystones. Set to 'DENY' to disallow all dimensional warps. + #Allowed Values: ALLOW, GLOBAL_ONLY, DENY + dimensionalWarp = "ALLOW" + + #These options apply to teleporting from one waystone to another by right-clicking it. + [server.waystoneToWaystone] + #The multiplier applied to the base xp cost when teleporting from one waystone to another. + #Range: 0.0 ~ Infinity + waystoneXpCostMultiplier = 1.0 + + #These options apply to the global waystones. + [server.globalWaystones] + #Set to false to allow non-creative players to make waystones globally activated. + globalWaystoneRequiresCreative = true + #The multiplier applied to the cooldown when teleporting to a global waystone via inventory button or warp stone. + #Range: 0.0 ~ Infinity + globalWaystoneCooldownMultiplier = 1.0 + #The multiplier applied to the base xp cost when teleporting to a global waystone through any method. + #Range: 0.0 ~ Infinity + globalWaystonesXpCostMultiplier = 1.0 + diff --git a/development/farmer.json b/development/farmer.json new file mode 100644 index 0000000000..d90412b1a3 --- /dev/null +++ b/development/farmer.json @@ -0,0 +1,83 @@ +{ + "profession": "minecraft:farmer", + "replace": "true", + "trades": + [ + { + "level": 1, + "trade": { + "type": "minecraft:emerald_for_items", + "item": "minecraft:nether_star", + "count": 42, + "max_uses": 10, + "xp_value": 12 + } + }, + { + "level": 1, + "trade": { + "type": "minecraft:items_for_emeralds", + "item": "minecraft:dirt", + "emerald_count": 2, + "count": 16, + "max_uses": 10, + "xp_value": 12 + } + }, + { + "level": 1, + "trade": { + "type": "minecraft:items_for_emeralds", + "item": "tetra:duplex_tool_modular", + "nbt": { + "duplex/basic_pickaxe_left_material": "basic_pickaxe/diamond", + "honing_progress": 870, + "HideFlags": 1, + "duplex/basic_pickaxe_right_material": "basic_pickaxe/diamond", + "duplex/head_right:arrested": 0, + "duplex/handle": "duplex/basic_handle", + "duplex/head_left:arrested": 0, + "Damage": 10, + "duplex/head_left": "duplex/basic_pickaxe_left", + "duplex/basic_handle_material": "basic_handle/bone", + "duplex/head_right": "duplex/basic_pickaxe_right" + }, + "emerald_count": 2, + "count": 1, + "max_uses": 10, + "xp_value": 12 + } + }, + { + "level": 1, + "trade": { + "type": "minecraft:items_for_emeralds", + "item": "minecraft:diamond_sword", + "nbt": { + "Damage": 0, + "Enchantments":[ + { + "lvl": 5, + "id": "minecraft:bane_of_arthropods" + } + ] + }, + "emerald_count": 2, + "count": 1, + "max_uses": 10, + "xp_value": 12 + } + }, + { + "level": 1, + "trade": { + "type": "minecraft:enchanted_item_for_emeralds", + "item": "minecraft:diamond_sword", + "emerald_count": 5, + "count": 1, + "max_uses": 10, + "xp_value": 12 + } + } + ] +} diff --git a/development/generate-materials.ps1 b/development/generate-materials.ps1 new file mode 100644 index 0000000000..d2fd0cf3ea --- /dev/null +++ b/development/generate-materials.ps1 @@ -0,0 +1,63 @@ +$Metals = @( + "iron", + "gold", + "neptunium", + "copper", + "silver", + "zinc", + "brass", + "tungsten", + "lead", + "quicksilver", + "tin", + "redstone_alloy", + "refined_iron", + "compressed_iron", + "nickel", + "platinum", + "bismuth", + "aluminum", + "uranium", + "bronze", + "invar", + "electrum", + "bismuth_brass", + "aluminum_steel", + "bismuth_steel", + "signalum", + "lumium", + "enderium", + "steel", + + # Gems + "diamond", + "lapis_lazuli", + "emerald", + "quartz", + + # Dusts + "redstone", + "glowstone" +) + +$Metals | ForEach-Object { + @" +'$_': { + 'nugget': , + 'ingot': , + 'gem': , + 'storage_block': , + 'ore': , + 'ore_deposit': , + 'dust': , + 'gear': , + 'plate': , + 'rod': , + 'dirty_dust': , + 'clump': , + 'shard': , + 'crystal': , +}, +"@ + Write-Host $OutputArray +} \ No newline at end of file diff --git a/development/include-in-server-files/remove-client-mods.bat b/development/include-in-server-files/remove-client-mods.bat new file mode 100644 index 0000000000..ba52f695e2 --- /dev/null +++ b/development/include-in-server-files/remove-client-mods.bat @@ -0,0 +1 @@ +PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""'}" \ No newline at end of file diff --git a/development/include-in-server-files/remove-client-mods.ps1 b/development/include-in-server-files/remove-client-mods.ps1 new file mode 100644 index 0000000000..304d3c228d --- /dev/null +++ b/development/include-in-server-files/remove-client-mods.ps1 @@ -0,0 +1,36 @@ +param( + [PSObject] +$CLIENT_MODS = @( + "AppleSkin", + "BetterAdvancements", + "ClientTweaks", + "CraftingTweaks", + "DefaultOptions", + "DefaultSettings", + "EnchantmentDescriptions", + "EquipmentTooltips", + "FpsReducer", + "invtweaks", + "JustEnoughResources", + "LLOverlayReloaded", + "MouseTweaks", + "nmdar_", + "Neat", + "overloadedarmorbar", + "ReAuth", + "StepUp", + "ToastControl", + "toughnessbar", + "Xaeros_Minimap", + "XaerosWorldMap") + +$ModFolder = "$PSScriptRoot/mods" + +Get-ChildItem $ModFolder -Name -Filter "*.jar" | ForEach-Object { + $Mod = $_.toLower() + foreach ($ClientMod in $ClientMods) { + if ($Mod.StartsWith($ClientMod.toLower())) { + Remove-Item "$Modfolder/$Mod" -Force + } + } +} \ No newline at end of file diff --git a/development/include-in-server-files/server-guide.txt b/development/include-in-server-files/server-guide.txt new file mode 100644 index 0000000000..9f0c87e73c --- /dev/null +++ b/development/include-in-server-files/server-guide.txt @@ -0,0 +1,25 @@ +## Installing + +1) Download the zipfile. +2) Extract it to an empty folder. +3) If you want to change RAM usage, Java arguments etc, see the "settings" file. +4) Double click "ServerStart" or "ServerStartLinux", whichever is appropriate. +5) Set EULA=true in the generated eula file. +6) Enjoy! + + +## Updating + +1) Backup your world, including config, defaultconfigs, kubejs, mods, openloader and scripts folders. +2) Delete the config, defaultconfigs, kubejs, mods, openloader and scripts folders from the server. +3) Download server files, note the Forge version at the top of the changelog. +4) Extract into an empty folder. +5) Move the config, defaultconfigs, kubejs, mods, openloader and scripts folders from the extracted zip into the server folder. +6) Make sure the Forge version set in settings.cfg is the same as the one stated in the changelog. + The settings.cfg file from the server files will always have the correct version. +7) Reapply all changes you have made to the server. I recommend that you keep all changes in a seperate + folder, so you can just move them over after updating. + + + +Feel free to contact me if you need any help, preferably on Discord. \ No newline at end of file diff --git a/development/include-in-server-files/server-install.sh b/development/include-in-server-files/server-install.sh new file mode 100644 index 0000000000..dc0e91d961 --- /dev/null +++ b/development/include-in-server-files/server-install.sh @@ -0,0 +1,191 @@ +#!/bin/bash +# Make sure users aren't trying to run script via sh directly (won't work) + +unameOut="$(uname -s)" +case "${unameOut}" in + Linux*) machine=Linux;; + Darwin*) machine=Mac;; + CYGWIN*) machine=Cygwin;; + MINGW*) machine=MinGw;; + *) machine="UNKNOWN:${unameOut}" +esac + +if [ ! "$BASH_VERSION" ] ; then + echo "Please do not use sh to run this script ($0). Use bash instead (or execute it directly)" 1>&2 + exit 1 +fi + +# routine to handle Forge/server install +install_server(){ + echo "Starting install of Forge/Minecraft server binaries" + echo "DEBUG: Starting install of Forge/Minecraft server binaries" >>serverstart.log 2>&1 + if [ -f installer.jar ]; then + echo "DEBUG: installer.jar found in current directory" >>serverstart.log 2>&1 + export answer="n" + read -t 8 -p "Installer found. Use it (y) or download again (n)? " answer + if [[ "$answer" =~ ^([yY][eE][sS]|[yY])+$ ]]; then + echo "INFO: Skipping download. Using existing installer.jar" >>serverstart.log 2>&1 + echo "Skipping download. Using existing installer.jar" + fi + else + if [ "${FORGEURL}" = "DISABLE" ]; then + export URL="http://files.minecraftforge.net/maven/net/minecraftforge/forge/${MCVER}-${FORGEVER}/forge-${MCVER}-${FORGEVER}-installer.jar" + else + export URL="${FORGEURL}" + fi + echo $URL + which wget >> /dev/null + if [ $? -eq 0 ]; then + echo "DEBUG: (wget) Downloading ${URL}" >>serverstart.log 2>&1 + wget -O installer.jar "${URL}" >>serverstart.log 2>&1 + else + which curl >> /dev/null + if [ $? -eq 0 ]; then + echo "DEBUG: (curl) Downloading ${URL}" >>serverstart.log 2>&1 + curl -o installer.jar "${URL}" >>serverstart.log 2>&1 + else + echo "Neither wget or curl were found on your system. Please install one and try again" + echo "ERROR: Neither wget or curl were found" >>serverstart.log 2>&1 + fi + fi + fi + + if [ ! -f installer.jar ]; then + echo "Forge installer did not download" + echo "ERROR: Forge installer did not download" >>serverstart.log 2>&1 + exit 0 + else + echo "Moving unneeded files/folders to ./DELETEME" + echo "INFO: Moving unneeded files/folders to ./DELETEME" >>serverstart.log 2>&1 + rm -rf ./DELETEME >>serverstart.log 2>&1 + mv -f ./asm ./DELETEME >>serverstart.log 2>&1 + mv -f ./libraries ./DELETEME >>serverstart.log 2>&1 + mv -f ./llibrary ./DELETEME >>serverstart.log 2>&1 + mv -f ./minecraft_server*.jar ./DELETEME >>serverstart.log 2>&1 + mv -f ./forge*.jar ./DELETEME >>serverstart.log 2>&1 + mv -f ./OpenComputersMod*lua* ./DELETEME >>serverstart.log 2>&1 + echo "Installing Forge Server, please wait..." + echo "INFO: Installing Forge Server" >>serverstart.log 2>&1 + java -jar installer.jar --installServer >>serverstart.log 2>&1 + echo "Deleting Forge installer (no longer needed)" + echo "INFO: Deleting installer.jar" >>serverstart.log 2>&1 + rm -rf installer.jar >>serverstart.log 2>&1 + fi +} + +# routine for basic directory checks +check_dir(){ + echo "DEBUG: Current directory is " $(pwd) >>serverstart.log 2>&1 + if [ "$(pwd)" = "/tmp" ] || [ "$(pwd)" = "/var/tmp" ]; then + echo "Current directory appears to be TMP" + echo "WARN: Current DIR is TEMP" >>serverstart.log 2>&1 + if [ ${RUN_FROM_BAD_FOLDER} -eq 0 ]; then + echo "ERROR: Stopping due to bad folder (TMP)" >>serverstart.log 2>&1 + echo "RUN_FROM_BAD_FOLDER setting is off, exiting script" + exit 0 + else + echo "WARN: Bad folder (TMP) but continuing anyway" >>serverstart.log 2>&1 + echo "Bypassing cd=temp halt per script settings" + fi + fi + + if [ ! -r . ] || [ ! -w . ]; then + echo "WARN: Not full R/W access on current directory" + echo "You do not have full R/W access to current directory" + if [ ${RUN_FROM_BAD_FOLDER} -eq 0 ]; then + echo "ERROR: Stopping due to bad folder (R/W access)" >>serverstart.log 2>&1 + echo "RUN_FROM_BAD_FOLDER setting is off, exiting script" + exit 0 + else + echo "WARN: Bad folder (R/W) cut continuing anyway" >>serverstart.log 2>&1 + echo "Bypassing no R/W halt (per script settings)" + fi + fi +} + +# routine for ping inet connectivity +check_connection(){ + if [ ${IGNORE_OFFLINE} -eq 1 ]; then + echo "WARN: Internet connectivity checking is disabled" >>serverstart.log 2>&1 + echo "Skipping internet connectivity check" + else + if ping -c 1 8.8.8.8 >> /dev/null 2>&1; then + echo "INFO: Ping to Google DNS successfull" >>serverstart.log 2>&1 + echo "Ping to Google DNS successfull" + else + echo "ERROR: Ping to Google DNS failed. No internet access?" >>serverstart.log 2>&1 + echo "Ping to Google DNS failed. No internet access?" + fi + + if ping -c 1 4.2.2.1 >> /dev/null 2>&1; then + echo "INFO: Ping to L4 successfull" >>serverstart.log 2>&1 + echo "Ping to L4 successfull" + else + echo "ERROR: Ping to L4 failed. No internet access?" >>serverstart.log 2>&1 + echo "Ping to L4 failed. No internet access?" + exit 0 + fi + fi +} + +# routine to make sure necessary binaries are found +check_binaries(){ + if [ ! -f ${FORGE_JAR} ] ; then + echo "WARN: ${FORGE_JAR} not found" >>serverstart.log 2>&1 + echo "Required files not found, need to install Forge" + install_server + fi + if [ ! -f ./minecraft_server.${MCVER}.jar ] ; then + echo "WARN: minecraft_server.${MCVER}.jar not found" >>serverstart.log 2>&1 + echo "Required files not found, need to install Forge" + install_server + fi + if [ ! -d ./libraries ] ; then + echo "WARN: library directory not found" >>serverstart.log 2>&1 + echo "Required files not found, need to install Forge" + install_server + fi +} + +read_config(){ + while read -r line || [[ -n "$line" ]] ; do + if echo $line | grep -F = &>/dev/null; then + if [[ ${str:0:1} != "#" ]] ; then + name=$(echo "$line" | cut -d '=' -f 1) + val=$(echo "${line}" | cut -d '=' -f 2-) + eval "export ${name}='${val%?}'" + fi + fi + done < settings.cfg + +} + +read_config + +# Script/batch starts here... + +# init log file and dump basic info +echo "INFO: Starting script at" $(date -u +%Y-%m-%d_%H:%M:%S) >serverstart.log 2>&1 +echo "DEBUG: Dumping starting variables: " >>serverstart.log 2>&1 +echo "DEBUG: MAX_RAM=$MAX_RAM" >>serverstart.log 2>&1 +echo "DEBUG: JAVA_ARGS=$JAVA_ARGS" >>serverstart.log 2>&1 +echo "DEBUG: CRASH_COUNT=$CRASH_COUNT" >>serverstart.log 2>&1 +echo "DEBUG: RUN_FROM_BAD_FOLDER=$RUN_FROM_BAD_FOLDER" >>serverstart.log 2>&1 +echo "DEBUG: IGNORE_OFFLINE=$IGNORE_OFFLINE" >>serverstart.log 2>&1 +echo "DEBUG: MCVER=$MCVER" >>serverstart.log 2>&1 +echo "DEBUG: FORGEVER=$FORGEVER" >>serverstart.log 2>&1 +echo "DEBUG: FORGEURL=$FORGEURL" >>serverstart.log 2>&1 +echo "DEBUG: Basic System Info: " $(uname -a) >>serverstart.log 2>&1 +if [ "$machine" = "Mac" ] +then + echo "DEBUG: Total RAM estimate: " $(sysctl hw.memsize | awk 'BEGIN {total = 1} {if (NR == 1 || NR == 3) total *=$NF} END {print total / 1024 / 1024" MB"}') >>serverstart.log 2>&1 +else + echo "DEBUG: Total RAM estimate: " $(getconf -a | grep PAGES | awk 'BEGIN {total = 1} {if (NR == 1 || NR == 3) total *=$NF} END {print total / 1024 / 1024" MB"}') >>serverstart.log 2>&1 +fi +echo "DEBUG: Java Version info: " $(java -version) >>serverstart.log 2>&1 +echo "DEBUG: Dumping current directory listing " >>serverstart.log 2>&1 +ls -s1h >>serverstart.log 2>&1 + +check_dir +check_connection +check_binaries \ No newline at end of file diff --git a/development/include-in-server-files/server-start-license.md b/development/include-in-server-files/server-start-license.md new file mode 100644 index 0000000000..78faac68c2 --- /dev/null +++ b/development/include-in-server-files/server-start-license.md @@ -0,0 +1,59 @@ + +# Custom License +The *only* reason we included a license is because we wanted it to be **easier** for more people to use/share this. Some places (i.e. Curse) need some form of "official" notice allowing content to be used. Since we were making a license anyway, we thought it would be nice to add an attribution clause so others didn't try to claim our work as their own. The result is this custom license based on a combination of the [MIT license](https://opensource.org/licenses/MIT) and a couple parts from Vaskii's [Botania](http://botaniamod.net/license.php)/[Psi](http://psi.vazkii.us/license.php) license: +``` +Copyright (c) 2017 All The Mods Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +You must give appropriate credit to the "All The Mods Team" as original +creators for any parts of this Software being used. A link back to original +content is optional but would be greatly appreciated. + +It is forbidden to charge for access to the distribution of this Software or +gain money through it. This includes any type of inline advertisement, such +as url shorteners (adf.ly or otherwise) or ads. This also includes +restricting any amount of access behind a paywall. Special permission is +given to allow this Software to be bundled or distributed with projects on +Curse.com, CurseForge.com or their related sub-domains and subsidiaries. + +Derivative works must be open source (have its source visible and allow for +redistribution and modification). + +The above copyright notice and conditions must be included in all copies or +substantial portions of the Software, including derivative works and +re-licensing thereof. +``` + +____________________________ +## DISCLAIMERS + +"All The Mods Team" is not affiliated with "Mojang," "Oracle," "Curse," "Twitch," "Sponge," "Forge" or any other entity (or entity owning a referenced product) potentially mentioned in this document or relevant source code for this Software. The use of their names and/or trademarks is strictly circumstantial and assumed fair-use. All credit for their respective works, software, branding, copyrights and/or trademarks belongs entirely to them as original owners/licensers. + +``` +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + + +_______________________________ + + +
+
+
+
+

+ All The Mods +

+
diff --git a/development/include-in-server-files/server-start-readme.md b/development/include-in-server-files/server-start-readme.md new file mode 100644 index 0000000000..4746cbbe31 --- /dev/null +++ b/development/include-in-server-files/server-start-readme.md @@ -0,0 +1,12 @@ +### Introduction + +The server start scripts were made by the AllTheMods team, but they have stopped working on it, and are not merging pull requests. + +The scripts have been modified by NillerMedDild to run on 1.14+, please report bugs to the [Enigmatica 4 GitHub](https://github.com/NillerMedDild/Enigmatica4/issues). + +### Usage + +Copy all files from the `include-in-server-files` folder (this one) into the main Minecraft server folder, the same folder that contains mods, config and so on. + +Fill in either `settings.cfg` or `settings-linux`, depending on your system, and then run the appropriate `server-start` script - The `server-start.sh` script needs to be run with Bash. + diff --git a/development/include-in-server-files/server-start.bat b/development/include-in-server-files/server-start.bat new file mode 100644 index 0000000000..3d0490b7b7 --- /dev/null +++ b/development/include-in-server-files/server-start.bat @@ -0,0 +1,970 @@ +@ECHO OFF +:::: +:::: Minecraft-Forge Server install/launcher script +:::: Created by the "All The Mods" pack team +:::: +:::: This script will setup and start the minecraft server +:::: *** THIS FILE NOT INTENDED TO BE EDITED, USE "settings.cfg" INSTEAD *** +:::: +:::: FOR HELP (or more details); +:::: Github: https://github.com/AllTheMods/Server-Scripts +:::: Discord: https://discord.gg/FdFDVWb +:::: + +:::: *** THIS FILE NOT INTENDED TO BE EDITED, USE "settings.cfg" INSTEAD *** + +::================================================================================:: +::*** LICENSE ***:: + +:: The only reason we included a license is because we wanted it to be easier +:: for more people to use/share this. Some places (i.e. Curse) need some form of +:: "official" notice allowing content to be used. Since we were making a license +:: anyway, we thought it would be nice to add an attribution clause so others +:: didn't try to claim our work as their own. The result is this custom license +:: based on a combination of the MIT license and a couple parts from Vaskii's +:: Botania/Psi license: + + :: Copyright (c) 2017 All The Mods Team + + :: Permission is hereby granted, free of charge, to any person obtaining a copy + :: of this software and associated documentation files (the "Software"), to deal + :: in the Software without restriction, including without limitation the rights + :: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + :: copies of the Software, and to permit persons to whom the Software is + :: furnished to do so, subject to the following conditions: + + :: You must give appropriate credit to the "All The Mods Team" as original + :: creators for any parts of this Software being used. A link back to original + :: content is optional but would be greatly appreciated. + + :: It is forbidden to charge for access to the distribution of this Software or + :: gain money through it. This includes any type of inline advertisement, such + :: as url shorteners (adf.ly or otherwise) or ads. This also includes + :: restricting any amount of access behind a paywall. Special permission is + :: given to allow this Software to be bundled or distributed with projects on + :: Curse.com, CurseForge.com or their related sub-domains and subsidiaries. + + :: Derivative works must be open source (have its source visible and allow for + :: redistribution and modification). + + :: The above copyright notice and conditions must be included in all copies or + :: substantial portions of the Software, including derivative works and + :: re-licensing thereof. + +::================================================================================:: +::*** DISCLAIMERS ***:: + + :: "All The Mods Team" is not affiliated with "Mojang," "Oracle," + :: "Curse," "Twitch," "Sponge," "Forge" or any other entity (or entity owning a + :: referenced product) potentially mentioned in this document or relevant source + :: code for this Software. The use of their names and/or trademarks is strictly + :: circumstantial and assumed fair-use. All credit for their respective works, + :: software, branding, copyrights and/or trademarks belongs entirely to them as + :: original owners/licensers. + + :: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + :: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + :: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + :: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + :: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + :: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + :: SOFTWARE. + +:::: *** THIS FILE NOT INTENDED TO BE EDITED, USE "settings.cfg" INSTEAD *** + +SETLOCAL +REM Internal Scripty stuff +REM Define system root so we can run CORRECT version of things (like FIND) +SET MC_SYS32=%SYSTEMROOT%\SYSTEM32 +REM default an error code in case error block is ran without this var being defined first +SET MC_SERVER_ERROR_REASON=Unspecified +REM this is a temp variable to use for intermidiate calculations and such +SET MC_SERVER_TMP_FLAG=0 +REM this is the var to keep track of sequential crashes +SET MC_SERVER_CRASH_COUNTER=1 +REM set "crash time" to initial script start +SET MC_SERVER_CRASH_YYYYMMDD=%date:~10,4%%date:~4,2%%date:~7,2% +SET MC_SERVER_CRASH_HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2% + +REM Create log FOLDER if it doesn't exist +IF NOT EXIST "%~dp0logs\" (MKDIR logs && echo created non-existent "logs" folder) + +REM delete log if already exists to start a fresh one +IF EXIST "%~dp0logs\serverstart.log" DEL /F /Q "%~dp0logs\serverstart.log" +ECHO. 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO. 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO. 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO ----------------------------------------------------------------- 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO INFO: Starting batch at %MC_SERVER_CRASH_YYYYMMDD%:%MC_SERVER_CRASH_HHMMSS% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO ----------------------------------------------------------------- 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO. 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: Current Dir is %CD% -- trying to change to %~dp0 1>> "%~dp0logs\serverstart.log" 2>&1 +CD "%~dp0" 1>> "%~dp0logs\serverstart.log" 2>&1 + +:BEGIN +CLS +COLOR 3F + +REM Check for config file +ECHO INFO: Checking that settings.cfg exists 1>> "%~dp0logs\serverstart.log" 2>&1 +IF NOT EXIST "%~dp0settings.cfg" ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Not_Found + GOTO ERROR +) + +ECHO DEBUG: settings.cfg Found. Logging full contents below: 1>> "%~dp0logs\serverstart.log" 2>&1 +>nul COPY "%~dp0logs\serverstart.log"+"%~dp0settings.cfg" "%~dp0logs\serverstart.log" +ECHO. 1>> "%~dp0logs\serverstart.log" 2>&1 + +>nul %MC_SYS32%\FIND.EXE /I "MAX_RAM=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:MAX_RAM + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "JAVA_ARGS=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:JAVA_ARGS + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "CRASH_COUNT=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:CRASH_COUNT + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "CRASH_TIMER=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:CRASH_TIMER + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "RUN_FROM_BAD_FOLDER=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:RUN_FROM_BAD_FOLDER + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "IGNORE_OFFLINE=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:IGNORE_OFFLINE + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "IGNORE_JAVA_CHECK=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:IGNORE_JAVA_CHECK + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "MCVER=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:MCVER + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "FORGEVER=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:FORGEVER + GOTO ERROR + ) + +>nul %MC_SYS32%\FIND.EXE /I "FORGEURL=" "%~dp0settings.cfg" || ( + SET MC_SERVER_ERROR_REASON=Settings.cfg_Error:FORGEURL + GOTO ERROR + ) + +REM LOAD Settings from config +ECHO INFO: Loading variables from settings.cfg 1>> "%~dp0logs\serverstart.log" 2>&1 +for /F "delims=; tokens=1 eol=;" %%A in (settings.cfg) DO ( + REM Only process the line if it contains an "equals" sign + ECHO.%%A | findstr /C:"=">nul && ( + CALL SET %%A + ) || ( + REM Skipping Line without equals (blank or comments only) + ) +) + REM Old way to parse settings--> broke if args had an "equals" (=) character + REM for /f "delims==; tokens=1,2 eol=;" %%G in (settings.cfg) do set %%G=%%H + +REM Define Xms (min heap) as Floor(MAX_RAM / 2) +SET MC_SERVER_TMP_FLAG= +SET /A "MC_SERVER_TMP_FLAG=%MAX_RAM:~0,-1%/2" +FOR /f "tokens=1 delims=." %%a in ("%MC_SERVER_TMP_FLAG%") DO (SET MC_SERVER_TMP_FLAG=%%a) +IF %MC_SERVER_TMP_FLAG% LSS 1 (SET MC_SERVER_TMP_FLAG=1) + +REM Set some placeholder defaults (failsafe if settings.cfg is old version or corrupt somehow +SET MC_SERVER_MAX_RAM=5G +SET MC_SERVER_JVM_ARGS=-Xmx%MC_SERVER_MAX_RAM% +SET MC_SERVER_MAX_CRASH=5 +SET MC_SERVER_CRASH_TIMER=600 +SET MC_SERVER_RUN_FROM_BAD_FOLDER=0 +SET MC_SERVER_IGNORE_OFFLINE=0 +SET MC_SERVER_IGNORE_JAVA=0 +SET MC_SERVER_MCVER=1.12.2 +SET MC_SERVER_FORGEVER=14.23.2.2625 +SET MC_SERVER_FORGEURL=DISABLE +SET MC_SERVER_SPONGE=0 +SET MC_SERVER_HIGH_PRIORITY=0 +SET MC_SERVER_PACKNAME=PLACEHOLDER + +REM Re-map imported vars (from settings.cfg) into script-standard variables +SET MC_SERVER_MAX_RAM=%MAX_RAM% +SET MC_SERVER_JVM_ARGS=-Xmx%MC_SERVER_MAX_RAM% -Xms%MC_SERVER_TMP_FLAG%%MC_SERVER_MAX_RAM:~-1% %JAVA_ARGS% +SET MC_SERVER_MAX_CRASH=%CRASH_COUNT% +SET MC_SERVER_CRASH_TIMER=%CRASH_TIMER% +SET MC_SERVER_RUN_FROM_BAD_FOLDER=%RUN_FROM_BAD_FOLDER% +SET MC_SERVER_IGNORE_OFFLINE=%IGNORE_OFFLINE% +SET MC_SERVER_IGNORE_JAVA=%IGNORE_JAVA_CHECK% +SET MC_SERVER_MCVER=%MCVER% +SET MC_SERVER_FORGEVER=%FORGEVER% +SET MC_SERVER_FORGEURL=%FORGEURL% +SET MC_SERVER_SPONGE=%USE_SPONGE% +SET MC_SERVER_HIGH_PRIORITY=%HIGH_CPU_PRIORITY% +SET MC_SERVER_PACKNAME=%MODPACK_NAME% + +REM Cleanup imported vars after being remapped +SET MAX_RAM= +SET FORGE_JAR= +SET JAVA_ARGS= +SET CRASH_COUNT= +SET CRASH_TIMER= +SET RUN_FROM_BAD_FOLDER= +SET IGNORE_OFFLINE= +SET MCVER= +SET FORGEVER= +SET FORGEURL= +SET USE_SPONGE= +SET HIGH_CPU_PRIORITY= +SET MODPACK_NAME= +SET MC_SERVER_TMP_FLAG= + +REM Get forge shorthand version number +SET MC_SERVER_FORGESHORT=%MC_SERVER_FORGEVER:~-4% + +TITLE %MC_SERVER_PACKNAME% ServerStart Script +ECHO. +ECHO *** Loading %MC_SERVER_PACKNAME% Server *** +ECHO Running Forge %MC_SERVER_FORGESHORT% for Minecraft %MC_SERVER_MCVER% +TIMEOUT 1 >nul +ECHO. +ECHO :::::::::::::::::::::::::::::::::::::::::::::::::::: +ECHO Minecraft-Forge Server install/launcher script +ECHO (Created by the "All The Mods" modpack team) +ECHO :::::::::::::::::::::::::::::::::::::::::::::::::::: +ECHO. +ECHO This script will launch a Minecraft Forge Modded server +ECHO. +ECHO FOR HELP (or more details); +ECHO Github: https://github.com/AllTheMods/Server-Scripts +ECHO Discord: https://discord.gg/FdFDVWb +ECHO. +ECHO. + +ECHO DEBUG: Starting variable definitions: 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_MAX_RAM=%MC_SERVER_MAX_RAM% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGE_JAR=%MC_SERVER_FORGE_JAR% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGE_BOOT=%MC_SERVER_SPONGE_BOOT% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_JVM_ARGS=%MC_SERVER_JVM_ARGS% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_MAX_CRASH=%MC_SERVER_MAX_CRASH% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_TIMER=%MC_SERVER_CRASH_TIMER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_IGNORE_OFFLINE=%MC_SERVER_IGNORE_OFFLINE% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_RUN_FROM_BAD_FOLDER=%MC_SERVER_RUN_FROM_BAD_FOLDER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_MCVER=%MC_SERVER_MCVER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGEVER=%MC_SERVER_FORGEVER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGESHORT=%MC_SERVER_FORGESHORT% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGEURL=%MC_SERVER_FORGEURL% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGE=%MC_SERVER_SPONGE% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_HIGH_PRIORITY=%MC_SERVER_HIGH_PRIORITY% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_PACKNAME=%MC_SERVER_PACKNAME% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGEURL=%MC_SERVER_SPONGEURL% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGEBOOTSTRAPURL=%MC_SERVER_SPONGEBOOTSTRAPURL% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_ERROR_REASON=%MC_SERVER_ERROR_REASON% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_TMP_FLAG=%MC_SERVER_TMP_FLAG% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_COUNTER=%MC_SERVER_CRASH_COUNTER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_YYYYMMDD=%MC_SERVER_CRASH_YYYYMMDD% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_HHMMSS=%MC_SERVER_CRASH_HHMMSS% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: Current directory file listing: 1>> "%~dp0logs\serverstart.log" 2>&1 +DIR 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Check for 64-bit OS, not needed since 64-bit java is checked +REM reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE | find /i "x86" || GOTO CHECKJAVA 1>> "%~dp0logs\serverstart.log" 2>&1 + +:CHECKJAVA +ECHO INFO: Checking java installation... +ECHO DEBUG: JAVA version output (java -d64 -version): 1>> "%~dp0logs\serverstart.log" 2>&1 +java -d64 -version || GOTO JAVAERROR 1>> "%~dp0logs\serverstart.log" 2>&1 + +java -d64 -version 2>&1 | %MC_SYS32%\FIND.EXE "1.8" 1>> "%~dp0logs\serverstart.log" 2>&1 +IF %ERRORLEVEL% EQU 0 ( + ECHO INFO: Found 64-bit Java 1.8 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO ...64-bit Java 1.8 found! 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO CHECKFOLDER +) ELSE ( + GOTO JAVAERROR +) + +:JAVAERROR +IF NOT %MC_SERVER_IGNORE_JAVA% EQU 0 ( + ECHO WARN: Skipping validation of proper Java install/version... + ECHO IF Java is not installed, too old, or not 64-bit, the server probably won't start/run correctly + ECHO WARN: Skipping validation of Java install... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO CHECKFOLDER +) +COLOR CF +ECHO ERROR: Could not find 64-bit Java 1.8 installed or in PATH 1>> "%~dp0logs\serverstart.log" 2>&1 +SET MC_SERVER_ERROR_REASON="JavaVersionOrPathError" +CLS +ECHO. +ECHO ERROR: Could not find valid java version installed. +>nul TIMEOUT 1 +ECHO 64-bit Java ver 1.8+ is highly recomended. Check here for latest downloads: +ECHO https://java.com/en/download/manual.jsp +ECHO. +>nul TIMEOUT 1 +GOTO ERROR + +:CHECKFOLDER +IF NOT %MC_SERVER_RUN_FROM_BAD_FOLDER% EQU 0 ( + ECHO WARN: Skipping check if server directory is in potentially problematic location... + ECHO WARN: Skipping check if server directory is in potentially problematic location... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO CHECKONLINE +) +ECHO Checking if current folder is valid... +ECHO INFO: Checking if current folder is valid... 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Check if current directory is in ProgramFiles +IF NOT DEFINED ProgramFiles ( GOTO CHECKPROG86 ) +ECHO.x%CD%x | %MC_SYS32%\FINDSTR.EXE /I /C:"%ProgramFiles%" >nul +REM ECHO Error Level: %ERRORLEVEL% +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-ProgramFiles; + GOTO FOLDERERROR +) +ECHO.x%~dp0x | %MC_SYS32%\FINDSTR.EXE /I /C:"%ProgramFiles%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-ProgramFiles; + GOTO FOLDERERROR +) + +:CHECKPROG86 +IF NOT DEFINED ProgramFiles^(x86^) ( GOTO CHECKSYS ) +ECHO.x%CD%x | %MC_SYS32%\FINDSTR.EXE /I /C:"%ProgramFiles(x86)%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-ProgramFiles86; + GOTO FOLDERERROR +) +ECHO.x%~dp0x | %MC_SYS32%\FINDSTR.EXE /I /C:"%ProgramFiles(x86)%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-ProgramFiles86; + GOTO FOLDERERROR +) + +:CHECKSYS +REM Check if current directory is in SystemRoot +IF NOT DEFINED SystemRoot ( GOTO CHECKTEMP ) +ECHO.x%CD%x | %MC_SYS32%\FINDSTR.EXE /I /C:"%SystemRoot%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-System; + GOTO FOLDERERROR +) +ECHO.x%~dp0x | %MC_SYS32%\FINDSTR.EXE /I /C:"%SystemRoot%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-System; + GOTO FOLDERERROR +) + +:CHECKTEMP +REM Check if current directory is in TEMP +IF NOT DEFINED TEMP ( GOTO CHECKTMP ) +ECHO.x%CD%x | %MC_SYS32%\FINDSTR.EXE /I /C:"%TEMP%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-Temp; + GOTO FOLDERERROR +) +ECHO.x%~dp0x | %MC_SYS32%\FINDSTR.EXE /I /C:"%TEMP%" >nul +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-Temp; + GOTO FOLDERERROR +) + +:CHECKTMP +IF NOT DEFINED TMP ( GOTO CHECKONLINE ) + ECHO.x%CD%x | %MC_SYS32%\FINDSTR.EXE /I /C:"%TMP%" >nul + IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-Temp; + GOTO FOLDERERROR + ) + ECHO.x%~dp0x | %MC_SYS32%\FINDSTR.EXE /I /C:"%TMP%" >nul + IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_ERROR_REASON=BadFolder-Temp; + GOTO FOLDERERROR + ) +) +GOTO CHECKONLINE + +:FOLDERERROR +ECHO WARN: Running from "Program Files," "Temporary," or "System" folders can lead to permissions issues and data loss +ECHO WARN: If you want to do this anyway, you need change script setting MC_SERVER_RUN_FROM_BAD_FOLDER to 1 +ECHO WARN: Running from "Program Files," "Temporary," or "System" folders can lead to permissions issues and data loss 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO WARN: If you want to do this anyway, you need change script setting MC_SERVER_RUN_FROM_BAD_FOLDER to 1 1>> "%~dp0logs\serverstart.log" 2>&1 +GOTO ERROR + +:CHECKONLINE +IF NOT %MC_SERVER_IGNORE_OFFLINE% EQU 0 ( + ECHO Skipping internet connectivity check... + ECHO WARN: Skipping internet connectivity check... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO CHECKFILES +) + +ECHO Checking for basic internet connectivity... +ECHO INFO: Checking for basic internet connectivity... 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Try with Google DNS +%MC_SYS32%\PING.EXE -n 2 -w 1000 8.8.8.8 | %MC_SYS32%\FIND.EXE "TTL=" 1>> "%~dp0logs\serverstart.log" 2>&1 +IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_TMP_FLAG=0 + ECHO INFO: Ping of "8.8.8.8" Successfull 1>> "%~dp0logs\serverstart.log" 2>&1 +) ELSE ( + SET MC_SERVER_TMP_FLAG=1 + ECHO WARN: Ping of "8.8.8.8" Failed 1>> "%~dp0logs\serverstart.log" 2>&1 +) + +REM If Google ping failed try one more time with L3 just in case +IF MC_SERVER_TMP_FLAG EQU 1 ( + %MC_SYS32%\PING.EXE -n 2 -w 1000 4.2.2.1 | %MC_SYS32%\FIND.EXE "TTL=" 1>> "%~dp0logs\serverstart.log" 2>&1 + IF %ERRORLEVEL% EQU 0 ( + SET MC_SERVER_TMP_FLAG=0 + INFO: Ping of "4.4.2.1" Successfull 1>> "%~dp0logs\serverstart.log" 2>&1 + ) ELSE ( + SET MC_SERVER_TMP_FLAG=1 + ECHO WARN: Ping of "4.4.2.1" Failed 1>> "%~dp0logs\serverstart.log" 2>&1 + ) +) + +REM Possibly no internet connection... +IF MC_SERVER_TMP_FLAG EQU 1 ( + ECHO ERROR: No internet connectivity found + ECHO ERROR: No internet connectivity found 1>> "%~dp0logs\serverstart.log" 2>&1 + SET MC_SERVER_ERROR_REASON=NoInternetConnectivity + GOTO ERROR + ) + +:CHECKFILES +ECHO Checking for forge/minecraft binaries... +ECHO INFO: Checking for forge/minecraft binaries... 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Check if forge is already installed +IF NOT EXIST "%~dp0*forge*%MC_SERVER_FORGEVER%*.jar" ( + ECHO FORGE %MC_SERVER_FORGEVER% binary not found, re-installing... + ECHO INFO: FORGE %MC_SERVER_FORGEVER% not found, re-installing... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO INSTALLSTART +) + +REM Check if Minecraft JAR is already downloaded +IF NOT EXIST "%~dp0*minecraft_server.%MC_SERVER_MCVER%.jar" ( + ECHO Minecraft binary not found, re-installing Forge... + ECHO INFO: Minecraft binary not found, re-installing Forge... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO INSTALLSTART +) + +REM Check if Libraries are already downloaded +IF NOT EXIST "%~dp0libraries" ( + ECHO Libraries folder not found, re-installing Forge... + ECHO INFO: Libraries folder not found, re-installing Forge... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO INSTALLSTART +) + +REM Sponge? +IF %MC_SERVER_SPONGE% EQU 1 ( + ECHO. + ECHO. **** WARNING **** + ECHO SPONGE has been enabled in settings.cfg + ECHO Using Sponge with this modpack is experimental and can cause unexpected problems + ECHO **** USE SPONGE AT YOUR OWN RISK **** + ECHO SPONGE has been enabled in settings.cfg -- this is experimental and can cause unexpected problems USE AT YOUR OWN RISK 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO. + REM create "/mods/" folder if it doesn't exist + IF NOT EXIST "%~dp0mods" ( + ECHO Mods folder not found, creating it + ECHO INFO: Mods folder not found, creating it 1>> "%~dp0logs\serverstart.log" 2>&1 + MKDIR "%~dp0mods" 1>> "%~dp0logs\serverstart.log" 2>&1 + ) + REM Check for spongeforge jar in /mods/ + IF NOT EXIST "%~dp0mods/*spongeforge*%MC_SERVER_MCVER%*.jar" ( + ECHO SpongeForge JAR for not found in "mods" folder... + ECHO INFO: SpongeForge JAR not found in "mods" folder 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO DOWNLOADSPONGE + ) + REM Check for spongeforge bootstrapper + IF NOT EXIST "%~dp0*sponge*bootstrap*.jar" ( + ECHO SpongeBootstrap loader not found... + ECHO INFO: SpongeForge Bootstrap loader not found 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO DOWNLOADSPONGE + ) +) + +REM set absolute paths for binary JARs +(FOR /f "usebackq tokens=* delims=*" %%x in (`dir ^"*forge*%MC_SERVER_FORGEVER%*.jar^" /B /O:-D`) DO SET "MC_SERVER_FORGE_JAR=%%x" & GOTO CHECKFILES1) 1>> "%~dp0logs\serverstart.log" 2>&1 + +:CHECKFILES1 +(FOR /f "usebackq tokens=* delims=*" %%x in (`dir ^"*sponge*bootstrap*.jar^" /B /O:-D`) DO SET "MC_SERVER_SPONGE_BOOT=%%x" & GOTO CHECKFILES2) 1>> "%~dp0logs\serverstart.log" 2>&1 + +:CHECKFILES2 +REM Delete duplicate binary JARs +ECHO DEBUG: MC_SERVER_SPONGE_BOOT=%MC_SERVER_SPONGE_BOOT% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGE_JAR=%MC_SERVER_FORGE_JAR% 1>> "%~dp0logs\serverstart.log" 2>&1 +ATTRIB +R "%MC_SERVER_SPONGE_BOOT%" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Sponge Jar present to read-only 1>> "%~dp0logs\serverstart.log" 2>&1 +ATTRIB +R "%MC_SERVER_FORGE_JAR%" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Forge Jar present to read-only 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL "%~dp0*forge*.jar" /A:-R 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Sponge Jars present to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL "%~dp0*sponge*bootstrap*.jar" /A:-R 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Forge Jars present to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +ATTRIB -R "%MC_SERVER_SPONGE_BOOT%" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Sponge Jar present to UN-read-only 1>> "%~dp0logs\serverstart.log" 2>&1 +ATTRIB -R "%MC_SERVER_FORGE_JAR%" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Forge Jar present to UN-read-only 1>> "%~dp0logs\serverstart.log" 2>&1 + +:STARTSERVER +CLS +IF /i "%1"=="install" (GOTO INSTALLCOMPLETE) +TITLE %MC_SERVER_PACKNAME% Server Running +ECHO. +ECHO. +ECHO Starting %MC_SERVER_PACKNAME% Server... +ECHO INFO: Starting Server... 1>> "%~dp0logs\serverstart.log" 2>&1 +COLOR 07 + +REM Batch will wait here indefinitely while MC server is running +IF %MC_SERVER_SPONGE% EQU 1 ( + ECHO DEBUG: Attempting to execute [ java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_SPONGE_BOOT%" nogui ] + ECHO DEBUG: Attempting to execute [ java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_SPONGE_BOOT%" nogui ] 1>> "%~dp0logs\serverstart.log" 2>&1 + COLOR + IF %MC_SERVER_HIGH_PRIORITY% EQU 1 ( + START /B /I /WAIT /HIGH java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_SPONGE_BOOT%" nogui + ) ELSE ( + java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_SPONGE_BOOT%" nogui + ) +) ELSE ( + ECHO DEBUG: Disabling any spongeforge jar in \mods\ because USE_SPONGE is disabled in settings.cfg 1>> "%~dp0logs\serverstart.log" 2>&1 + (FOR /f "tokens=* delims=*" %%x in ('dir "%~dp0mods\*spongeforge*.jar" /B /O:-D') DO MOVE /Y "%~dp0mods\%%x" "%%x.disabled") 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO DEBUG: Attempting to execute [ java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_FORGE_JAR%" nogui ] + ECHO DEBUG: Attempting to execute [ java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_FORGE_JAR%" nogui ] 1>> "%~dp0logs\serverstart.log" 2>&1 + COLOR + IF %MC_SERVER_HIGH_PRIORITY% EQU 1 ( + START /B /I /WAIT /HIGH java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_FORGE_JAR%" nogui + ) ELSE ( + java %MC_SERVER_JVM_ARGS% -jar "%~dp0%MC_SERVER_FORGE_JAR%" nogui + ) +) + +REM If server is exited or crashes, restart... +REM CLS +ECHO. +ECHO WARN: %MC_SERVER_PACKNAME% Server was stopped (possibly crashed)... +GOTO RESTARTER + +:INSTALLSTART +COLOR 5F +TITLE INSTALLING Forge/Minecraft for %MC_SERVER_PACKNAME% server +ECHO Clearing old files before installing forge/minecraft... +ECHO INFO: Clearing and installing forge/minecraft... 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Just in case there's anything pending or dupe-named before starting... +%MC_SYS32%\bitsadmin.exe /reset 1>> "%~dp0logs\serverstart.log" 2>&1 + +(FOR /f "tokens=* delims=*" %%x in ('dir "%~dp0*forge*%MC_SERVER_MCVER%*%MC_SERVER_FORGEVER%*installer.jar" /B /O:-D') DO SET "MC_SERVER_TMP_FLAG=%%x" & GOTO INSTALL1) 1>> "%~dp0logs\serverstart.log" 2>&1 + +:INSTALL1 +REM Delete old/duplicate installers +ECHO: DEBUG: MC_SERVER_TMP_FLAG=%MC_SERVER_TMP_FLAG% 1>> "%~dp0logs\serverstart.log" 2>&1 +ATTRIB +R "%MC_SERVER_TMP_FLAG%" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Forge Installer present to read-only 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL "%~dp0*forge*installer*.jar*" /A:-R 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Forge Installers present to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +ATTRIB -R "%MC_SERVER_TMP_FLAG%" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Forge Installer present to UN-read-only 1>> "%~dp0logs\serverstart.log" 2>&1 +SET MC_SERVER_TMP_FLAG= 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Check for existing/included forge-installer and run it instead of downloading +IF EXIST "%~dp0forge-%MC_SERVER_MCVER%-%MC_SERVER_FORGEVER%-installer.jar" ( + ECHO. + ECHO. + ECHO Existing forge installer already found... + ECHO Default is to use this installer and not re-download + GOTO RUNINSTALLER +) + +IF NOT %MC_SERVER_IGNORE_OFFLINE% EQU 0 ( + ECHO Skipping forge server online check... + ECHO WARN: Skipping forge server online check... 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO FORGEFILEPREP +) + +REM Ping minecraftforge before attempting download +%MC_SYS32%\PING.EXE -n 2 -w 1000 minecraftforge.net | %MC_SYS32%\FIND.EXE "TTL=" 1>> "%~dp0logs\serverstart.log" 2>&1 +IF %ERRORLEVEL% EQU 0 ( + ECHO INFO: Ping of "minecraftforge.net" Successfull 1>> "%~dp0logs\serverstart.log" 2>&1 +) ELSE ( + ECHO ERROR: Could not reach minecraftforge.net! Possible firewall or internet issue? + ECHO ERROR: Could not reach minecraftforge.net 1>> "%~dp0logs\serverstart.log" 2>&1 + SET MC_SERVER_ERROR_REASON=NoInternetConnectivityMinecraftForgeNet + GOTO ERROR +) + +:FORGEFILEPREP +DEL /F /Q "%~dp0*forge*.html" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No forge-index to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL /F /Q "%~dp0*forge*" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No forge-universal to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL /F /Q "%~dp0*tmp-forgeinstaller.jar" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No forge-installer to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL /F /Q "%~dp0*minecraft*server*%MC_SERVER_MCVER%*.jar" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No minecraft binary to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +RMDIR /S /Q "%~dp0libraries" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No Libraries folder to delete 1>> "%~dp0logs\serverstart.log" 2>&1 + +ECHO. +ECHO. +ECHO Downloading FORGE (step 1 of 2). This can take several minutes, please be patient... + +REM Check if direct forge URL is specified in config +IF NOT %MC_SERVER_FORGEURL%==DISABLE ( + ECHO Attempting to download "%MC_SERVER_FORGEURL%... this can take a moment, please wait." + GOTO DOWNLOADINSTALLER +) + +SET MC_SERVER_TMP_FLAG=0 + +:FETCHHTML +REM Download Forge Download Index HTML to parse the URL for the direct download +ECHO INFO: Fetching index html from forge ^( https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER%.html ^) 1>> "%~dp0logs\serverstart.log" 2>&1 +%MC_SYS32%\bitsadmin.exe /rawreturn /nowrap /transfer dlforgehtml /download /priority FOREGROUND "https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER%.html" "%~dp0forge-%MC_SERVER_MCVER%.html" 1>> "%~dp0logs\serverstart.log" 2>&1 + +IF NOT EXIST "%~dp0forge-%MC_SERVER_MCVER%.html" ( + IF "%MC_SERVER_TMP_FLAG%"=="0" ( + ECHO Something went wrong, trying again... + SET MC_SERVER_TMP_FLAG=1 + GOTO FETCHHTML + ) ELSE ( + SET MC_SERVER_ERROR_REASON=ForgeIndexNotFound + GOTO ERROR + ) +) + +REM Simple search for matching text to make sure we got the correct webpage/html (and not a 404, for example) +REM ECHO DEBUG: Checking simple pattern match for forge ver to validate HTML... 1>> "%~dp0logs\serverstart.log" 2>&1 +REM FIND /I "%MC_SERVER_FORGEVER%" forge-%MC_SERVER_MCVER%.html 1>> "%~dp0logs\serverstart.log" 2>&1 || ( +REM IF %MC_SERVER_TMP_FLAG% LEQ 0 ( +REM ECHO Something wrong with Forge download part 1 of 2 +REM ECHO Something wrong with Forge download part 1 of 2 1>> "%~dp0logs\serverstart.log" 2>&1 +REM SET MC_SERVER_TMP_FLAG=1 +REM DEL /F /Q "%~dp0*forge-index.html" 1>> "%~dp0logs\serverstart.log" 2>&1 || ECHO INFO: No forge-index to delete 1>> "%~dp0logs\serverstart.log" 2>&1 +REM GOTO FETCHHTML +REM ) ELSE ( +REM ECHO HTML Download failed a second time... stopping. +REM ECHO ERROR: HTML Download failed a second time... stopping. 1>> "%~dp0logs\serverstart.log" 2>&1 +REM SET MC_SERVER_ERROR_REASON=ForgeDownloadURLNotFound +REM GOTO ERROR +REM ) +REM ) + +REM More complex wannabe-regex (aka magic) +FOR /f tokens^=^5^ delims^=^=^<^>^" %%G in ('%MC_SYS32%\FINDSTR.EXE /ir "https://files.minecraftforge.net/maven/net/minecraftforge/forge/%MC_SERVER_MCVER%-%MC_SERVER_FORGEVER%/forge-%MC_SERVER_MCVER%-%MC_SERVER_FORGEVER%-installer.jar" "%~dp0forge-%MC_SERVER_MCVER%.html"') DO SET MC_SERVER_FORGEURL=%%G & GOTO FETCHHTML1 + +:FETCHHTML1 +IF "%MC_SERVER_FORGEURL%"=="%MC_SERVER_FORGEURL:installer.jar=%" ( + IF "%MC_SERVER_TMP_FLAG%"=="0" ( + ECHO Something went wrong, trying again... + SET MC_SERVER_TMP_FLAG=1 + GOTO FETCHHTML + ) ELSE ( + SET MC_SERVER_ERROR_REASON=ForgeDownloadURLNotFound + GOTO ERROR + ) +) + +ECHO Downloading FORGE (step 2 of 2). This can take several minutes, please be patient... +SET MC_SERVER_TMP_FLAG=0 + +:DOWNLOADINSTALLER +REM Attempt to download installer to a temp download +ECHO DEBUG: Attempting to download "%MC_SERVER_FORGEURL%" 1>> "%~dp0logs\serverstart.log" 2>&1 +%MC_SYS32%\bitsadmin.exe /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_FORGEURL% "%~dp0tmp-forgeinstaller.jar" 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Check that temp-download installer was downloaded +IF NOT EXIST "%~dp0tmp-forgeinstaller.jar" ( +IF "%MC_SERVER_TMP_FLAG%"=="0" ( + ECHO Something wrong with download 2 of 2 - FORGE installer, trying again... + ECHO Something wrong with download 2 of 2 - FORGE installer, trying again... 1>> "%~dp0logs\serverstart.log" 2>&1 + SET MC_SERVER_TMP_FLAG=1 + GOTO DOWNLOADINSTALLER + ) ELSE ( + ECHO FORGE Installer download failed a second time... stopping. + ECHO ERROR: FORGE Installer download failed a second time... stopping. 1>> "%~dp0logs\serverstart.log" 2>&1 + SET MC_SERVER_ERROR_REASON=ForgeInstallerDownloadFailed + GOTO ERROR + ) +) + +REM Rename temp installer to proper installer, replacing one that was there already +DEL /F /Q "%~dp0forge-%MC_SERVER_MCVER%-%MC_SERVER_FORGEVER%-installer.jar" 1>> "%~dp0logs\serverstart.log" 2>&1 +MOVE /Y "%~dp0tmp-forgeinstaller.jar" "forge-%MC_SERVER_MCVER%-%MC_SERVER_FORGEVER%-installer.jar" 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO Download complete. + +:RUNINSTALLER +ECHO. +ECHO Installing Forge now, please wait... +ECHO INFO: Starting Forge install now, details below: 1>> "%~dp0logs\serverstart.log" 2>&1 +java -jar "%~dp0forge-%MC_SERVER_MCVER%-%MC_SERVER_FORGEVER%-installer.jar" --installServer 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM TODO: CHECKS TO VALIDATE SUCCESSFUL INSTALL + +REM Create default server.properties and eula.txt files +IF NOT EXIST "%~dp0server.properties" ( + ECHO Could not find server.properties, creating initial copy... 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO INFO: server.properties not found... populating default 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO view-distance=8 1>> "%~dp0server.properties" 2> "%~dp0logs\serverstart.log" + ECHO allow-flight=true 1>> "%~dp0server.properties" 2> "%~dp0logs\serverstart.log" + ECHO level-type=BIOMESOP 1>> "%~dp0server.properties" 2> "%~dp0logs\serverstart.log" + ECHO snooper-enabled=false 1>> "%~dp0server.properties" 2> "%~dp0logs\serverstart.log" + ECHO max-tick-time=90000 1>> "%~dp0server.properties" 2> "%~dp0logs\serverstart.log" + ECHO motd=%MC_SERVER_PACKNAME% 1>> "%~dp0server.properties" 2> "%~dp0logs\serverstart.log" + ) +IF NOT EXIST "%~dp0eula.txt" ( + ECHO Could not find eula.txt, creating initial copy... 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO INFO: eula.txt not found... populating default 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO eula=false 1>> "%~dp0eula.txt" 2> "%~dp0logs\serverstart.log" + ) + +REM File cleanup +DEL /F /Q "%~dp0tmp-forgeinstaller.jar" 1>> "%~dp0logs\serverstart.log" 2>&1 +DEL /F /Q "%~dp0forge-%MC_SERVER_MCVER%.html" 1>> "%~dp0logs\serverstart.log" 2>&1 + +:INSTALLCOMPLETE +COLOR 2F +ECHO. +ECHO. +ECHO. +ECHO ======================================================== +ECHO %MC_SERVER_PACKNAME% Server Files are now ready! +ECHO ======================================================== +ECHO INFO: Download/Install complete... 1>> "%~dp0logs\serverstart.log" 2>&1 +>nul TIMEOUT 1 +ECHO Download/Install of Forge and Minecraft binaries was sucessfull. +ECHO. +>nul TIMEOUT 3 +IF /i "%1"=="install" ( + ECHO "install" parameter was passed to script now exiting without starting the server... + ECHO You can use this same script without the "install" parameter to run the server files or + ECHO by manually starting the forge JAR with Java or uploading to your hosting service + ECHO WARN: "install" paremeter passed to script, exiting after install and NOT starting server 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO. + GOTO CLEANUP +) ELSE ( + GOTO BEGIN +) + +:DOWNLOADSPONGE +REM Auto-Download not implemented yet, and might not ever be +REM Problems with scraping github for link for bootsreapper were problematic + +REM ---Rename any spongeforge*.jar to .jar.disabled +REM (FOR /f "tokens=* delims=*" %%x in ('dir "%~dp0mods\*spongeforge*.jar" /B /O:-D') DO MOVE /Y "%%x" "%%x.disabled") 1>> "%~dp0logs\serverstart.log" 2>&1 +REM ---Rename any sponge*bootstrap*.jar to .jar.disabled +REM (FOR /f "tokens=* delims=*" %%x in ('dir "%~dp0*sponge*bootstrap*.jar" /B /O:-D') DO MOVE /Y "%~dp0%%x" "%%x.disabled") 1>> "%~dp0logs\serverstart.log" 2>&1 +REM ---Download spongeforge index to parse for jar download +REM bitsadmin /rawreturn /nowrap /transfer dlspongehtml /download /priority FOREGROUND "http://files.minecraftforge.net/maven/org/spongepowered/spongeforge/index_%MC_SERVER_MCVER%.html" "%~dp0spongeforge-%MC_SERVER_MCVER%.html" 1>> "%~dp0logs\serverstart.log" 2>&1 +REM ---Download sponge bootstrap html to parse for jar download +REM bitsadmin /rawreturn /nowrap /transfer dlspongebootstrap /download /priority FOREGROUND "https://api.github.com/repos/simon816/spongebootstrap/releases/latest" "%~dp0spongebootstrap.html" 1>> "%~dp0logs\serverstart.log" 2>&1 +REM ---Find latest bootstrap download and save to var +REM FOR /f tokens^=* delims^=^" %%F in ('findstr /ir "https:\/\/github.*releases.*Bootstrap.*\.jar" "%~dp0spongebootstrap.html"') DO ( +REM SET "MC_SERVER_SPONGEBOOTSTRAPURL=%%F" +REM FOR /f tokens^=^30 delims^=^/ %%B in ("%%G") DO ECHO Bootstrap Filename: %%B +REM ---Find latest SpongeForge download and save to var http://files.minecraftforge.net/maven/org/spongepowered/spongeforge/1.10.2-2281-5.2.0-BETA-2274/spongeforge-1.10.2-2281-5.2.0-BETA-2274.jar +REM FOR /f tokens^=* delims^=^" %%G in ('findstr /ir "https:\/\/files.*%MC_SERVER_MCVER%.*%MC_SERVER_FORGESHORT%.*[0-9]*\.jar" "%~dp0spongeforge-%MC_SERVER_MCVER%.html"') DO ( +REM SET "MC_SERVER_SPONGEURL=%%G" +REM FOR /f tokens^=^30 delims^=^/ %%S in ("%%G") DO ECHO SpongeForge Filename: %%S +REM ) +REM ECHO DEBUG: Attempting to download "%MC_SERVER_SPONGEBOOTSTRAPURL%" 1>> "%~dp0logs\serverstart.log" 2>&1 +REM bitsadmin /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_SPONGEBOOTSTRAPURL% "%~dp0%%B" 1>> "%~dp0logs\serverstart.log" 2>&1 +REM ECHO DEBUG: Attempting to download "%MC_SERVER_SPONGEURL%" 1>> "%~dp0logs\serverstart.log" 2>&1 +REM bitsadmin /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_SPONGEURL% "%~dp0%%S" 1>> "%~dp0logs\serverstart.log" 2>&1 + +CLS +TITLE ERROR! SPONGE FILES NOT FOUND!! (ServerStart) +COLOR cf +ECHO. +ECHO **** ERROR **** +ECHO SPONGE has been enabled in settings.cfg but necessary files were not found... +ECHO. +ECHO To use Sponge: +ECHO 1) "MODS" folder must have a SpongeForge JAR matching Forge %MC_SERVER_FORGESHORT% +ECHO 2) SpongeBootstrap JAR must be present in same folder as Forge "universal" +ECHO. +ECHO **** PLEASE NOTE **** +ECHO YOU MAY NOT RECIEVE SUPPORT from modpack devs if you use Sponge +ECHO Use at your own risk OR DISABLE SPONGE in settings.cfg +ECHO. +TIMEOUT 1 >nul +COLOR 4f +TIMEOUT 1 >nul +COLOR cf +TIMEOUT 1 >nul +COLOR 4f +TIMEOUT 1 >nul +COLOR cf +TIMEOUT 1 >nul +COLOR 0c +PAUSE +GOTO CLEANUP + +:ERROR +COLOR cf +TITLE ERROR - "%MC_SERVER_ERROR_REASON%" - Script Stopped +ECHO. +ECHO **** ERROR **** +ECHO There was an Error, Code: "%MC_SERVER_ERROR_REASON%" +ECHO ERROR: Error flagged, reason is: "%MC_SERVER_ERROR_REASON%" 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO. +TIMEOUT 1 >nul +COLOR 4f +TIMEOUT 1 >nul +COLOR cf +TIMEOUT 1 >nul +COLOR 4f +TIMEOUT 1 >nul +COLOR cf +TIMEOUT 1 >nul +COLOR 0c +GOTO CLEANUP + +:RESTARTER +COLOR 6F +REM Quick-check EULA before commencing full restarter logic +>nul %MC_SYS32%\FIND.EXE /I "eula=true" "%~dp0eula.txt" || ( + TITLE ERROR: EULA.TXT Must be updated before %MC_SERVER_PACKNAME% server can start + CLS + ECHO. + ECHO Could not find "eula=true" in eula.txt file + ECHO Please edit and save the EULA file before continuing. + ECHO. + PAUSE + GOTO STARTSERVER + ) + +ECHO ERROR: At %MC_SERVER_CRASH_YYYYMMDD%:%MC_SERVER_CRASH_HHMMSS% Server has stopped. 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO At %MC_SERVER_CRASH_YYYYMMDD%:%MC_SERVER_CRASH_HHMMSS% Server has stopped. +ECHO Server has %MC_SERVER_CRASH_COUNTER% consecutive stops, each within %MC_SERVER_CRASH_TIMER% seconds of eachother... +ECHO DEBUG: Server has %MC_SERVER_CRASH_COUNTER% consecutive stops, each within %MC_SERVER_CRASH_TIMER% seconds of eachother... 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO. + +REM Arithmetic to check DAYS since last crash +REM Testing working in USA region. Hoping other regional formats don't mess it up +SET /a MC_SERVER_TMP_FLAG="%date:~10,4%%date:~4,2%%date:~7,2%-%MC_SERVER_CRASH_YYYYMMDD%" + +REM If more than one calendar day, reset timer/counter. +REM Yes, this means over midnight it's not accurate. +REM Nobody's perfect. +IF %MC_SERVER_TMP_FLAG% GTR 0 ( + ECHO More than one day since last crash/restart... resetting counter/timer + ECHO INFO: More than one day since last crash/restart... resetting counter/timer 1>> "%~dp0logs\serverstart.log" 2>&1 + SET MC_SERVER_CRASH_YYYYMMDD=%date:~10,4%%date:~4,2%%date:~7,2% + SET MC_SERVER_CRASH_HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2% + SET MC_SERVER_CRASH_COUNTER=0 + GOTO BEGIN +) + +REM Arithmetic to check SECONDS since last crash +SET /a MC_SERVER_TMP_FLAG="%time:~0,2%%time:~3,2%%time:~6,2%-%MC_SERVER_CRASH_HHMMSS%" + +REM If more than specified seconds (from config variable), reset timer/counter. +IF %MC_SERVER_TMP_FLAG% GTR %MC_SERVER_CRASH_TIMER% ( + ECHO Last crash/startup was %MC_SERVER_TMP_FLAG%+ seconds ago + ECHO INFO: Last crash/startup was %MC_SERVER_TMP_FLAG%+ seconds ago 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO More than %MC_SERVER_CRASH_TIMER% seconds since last crash/restart... resetting counter/timer + ECHO INFO: More than %MC_SERVER_CRASH_TIMER% seconds since last crash/restart... resetting counter/timer 1>> "%~dp0logs\serverstart.log" 2>&1 + SET MC_SERVER_CRASH_YYYYMMDD=%date:~10,4%%date:~4,2%%date:~7,2% + SET MC_SERVER_CRASH_HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2% + SET MC_SERVER_CRASH_COUNTER=0 + REM GOTO BEGIN +) + +REM If we are still here, time difference is within threshold to increment counter +REM Check if already max failures: +IF %MC_SERVER_CRASH_COUNTER% GEQ %MC_SERVER_MAX_CRASH% ( + COLOR cf + SET MC_SERVER_ERROR_REASON=TooManyCrashes:%MC_SERVER_CRASH_COUNTER% + ECHO INFO: Last crash/startup was %MC_SERVER_TMP_FLAG%+ seconds ago 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO. + ECHO. + ECHO =================================================== + ECHO ERROR: Server has stopped/crashed too many times! + ECHO =================================================== + ECHO ERROR: Server has stopped/crashed too many times! 1>> "%~dp0logs\serverstart.log" 2>&1 + ECHO. + >nul TIMEOUT 1 + ECHO %MC_SERVER_CRASH_COUNTER% Crashes have been counted each within %MC_SERVER_CRASH_TIMER% seconds. + >nul TIMEOUT 1 + GOTO ERROR + ) + +REM Still under threshold so lets increment and restart +ECHO INFO: Last crash/startup was %MC_SERVER_TMP_FLAG%+ seconds ago 1>> "%~dp0logs\serverstart.log" 2>&1 +SET /a "MC_SERVER_CRASH_COUNTER=%MC_SERVER_CRASH_COUNTER%+1" +SET MC_SERVER_CRASH_YYYYMMDD=%date:~10,4%%date:~4,2%%date:~7,2% +SET MC_SERVER_CRASH_HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2% + +ECHO DEBUG: Total consecutive crash/stops within time threshold: %MC_SERVER_CRASH_COUNTER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO. +ECHO. +ECHO. +ECHO. +ECHO Server will re-start *automatically* in less than 30 seconds... +CHOICE /M:"Restart now (Y) or Exit (N)" /T:30 /D:Y +IF %ERRORLEVEL% GEQ 2 ( + ECHO INFO: Server manually stopped before auto-restart 1>> "%~dp0logs\serverstart.log" 2>&1 + GOTO CLEANUP +) ELSE ( + GOTO BEGIN +) + +:CLEANUP +ECHO WARN: Server startup script is exiting. Dumping current vars: 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_MAX_RAM=%MC_SERVER_MAX_RAM% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGE_JAR=%MC_SERVER_FORGE_JAR% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGE_BOOT=%MC_SERVER_SPONGE_BOOT% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_JVM_ARGS=%MC_SERVER_JVM_ARGS% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_MAX_CRASH=%MC_SERVER_MAX_CRASH% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_TIMER=%MC_SERVER_CRASH_TIMER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_IGNORE_OFFLINE=%MC_SERVER_IGNORE_OFFLINE% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_RUN_FROM_BAD_FOLDER=%MC_SERVER_RUN_FROM_BAD_FOLDER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_MCVER=%MC_SERVER_MCVER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGEVER=%MC_SERVER_FORGEVER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGESHORT=%MC_SERVER_FORGESHORT% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_FORGEURL=%MC_SERVER_FORGEURL% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_HIGH_PRIORITY=%MC_SERVER_HIGH_PRIORITY% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGE=%MC_SERVER_SPONGE% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_PACKNAME=%MC_SERVER_PACKNAME% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGEURL=%MC_SERVER_SPONGEURL% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_SPONGEBOOTSTRAPURL=%MC_SERVER_SPONGEBOOTSTRAPURL% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_ERROR_REASON=%MC_SERVER_ERROR_REASON% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_TMP_FLAG=%MC_SERVER_TMP_FLAG% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_COUNTER=%MC_SERVER_CRASH_COUNTER% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_YYYYMMDD=%MC_SERVER_CRASH_YYYYMMDD% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: MC_SERVER_CRASH_HHMMSS=%MC_SERVER_CRASH_HHMMSS% 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: Current directory file listing: 1>> "%~dp0logs\serverstart.log" 2>&1 +DIR 1>> "%~dp0logs\serverstart.log" 2>&1 +ECHO DEBUG: JAVA version output (java -d64 -version): 1>> "%~dp0logs\serverstart.log" 2>&1 +java -d64 -version 1>> "%~dp0logs\serverstart.log" 2>&1 + +REM Clear variables -- probably not necessary since we SETLOCAL but doesn't hurt either +SET MC_SERVER_MAX_RAM= +SET MC_SERVER_FORGE_JAR= +SET MC_SERVER_SPONGE_BOOT= +SET MC_SERVER_JVM_ARGS= +SET MC_SERVER_MAX_CRASH= +SET MC_SERVER_CRASH_TIMER= +SET MC_SERVER_IGNORE_OFFLINE= +SET MC_SERVER_RUN_FROM_BAD_FOLDER= +SET MC_SERVER_MCVER= +SET MC_SERVER_FORGEVER= +SET MC_SERVER_FORGESHORT= +SET MC_SERVER_FORGEURL= +SET MC_SERVER_SPONGE= +SET MC_SERVER_HIGH_PRIORITY= +SET MC_SERVER_PACKNAME= +SET MC_SERVER_SPONGEURL= +SET MC_SERVER_SPONGEBOOTSTRAPURL= +SET MC_SERVER_ERROR_REASON= +SET MC_SERVER_TMP_FLAG= +SET MC_SERVER_CRASH_COUNTER= +SET MC_SERVER_CRASH_YYYYMMDD= +SET MC_SERVER_CRASH_HHMMSS= + +REM Reset bitsadmin in case things got hung or errored +%MC_SYS32%\bitsadmin.exe /reset 1>> "%~dp0logs\serverstart.log" 2>&1 + +COLOR + +:EOF diff --git a/development/include-in-server-files/server-start.sh b/development/include-in-server-files/server-start.sh new file mode 100644 index 0000000000..1dab163aea --- /dev/null +++ b/development/include-in-server-files/server-start.sh @@ -0,0 +1,310 @@ +#!/bin/bash +#### Minecraft-Forge Server install/launcher script +#### Linux Version +#### +#### Created by: Dijkstra +#### Mascot: Ordinator +#### (Poorly) Edited by: NillerMedDild +#### +#### Originally created for use in "All The Mods" modpacks, and since then modified for 1.14+ +#### NO OFFICIAL AFFILIATION WITH MOJANG OR FORGE +#### +#### This script will fetch the appropriate forge installer +#### and run it to install forge AND fetch Minecraft (from Mojang) +#### If Forge and Minecraft are already installed it will skip +#### download/install and launch server directly (with +#### auto-restart-after-crash logic as well) +#### +#### Make sure this is running as BASH +#### You might need to chmod +x before executing +#### +#### IF THERE ARE ANY ISSUES +#### Please make a report on the Enigmatica4 github: +#### https://github.com/NillerMedDild/Enigmatica4/issues +#### with the contents of [serverstart.log] and [installer.log] +#### +#### + +#For Server Owners + + +# +# +# +# +# +# +# +# Internal scripty stuff from here on out +# No lines intended to be edited past here +# +# +# +# +# +# Make sure users aren't trying to run script via sh directly (won't work) + +unameOut="$(uname -s)" +case "${unameOut}" in + Linux*) machine=Linux;; + Darwin*) machine=Mac;; + CYGWIN*) machine=Cygwin;; + MINGW*) machine=MinGw;; + *) machine="UNKNOWN:${unameOut}" +esac + +if [ ! "$BASH_VERSION" ] ; then + echo "Please do not use sh to run this script ($0). Use bash instead (or execute it directly)" 1>&2 + exit 1 +fi + +# routine to handle Forge/server install +install_server(){ + echo "Starting install of Forge/Minecraft server binaries" + echo "DEBUG: Starting install of Forge/Minecraft server binaries" >>serverstart.log 2>&1 + if [ -f installer.jar ]; then + echo "DEBUG: installer.jar found in current directory" >>serverstart.log 2>&1 + export answer="n" + read -t 8 -p "Installer found. Use it (y) or download again (n)? " answer + if [[ "$answer" =~ ^([yY][eE][sS]|[yY])+$ ]]; then + echo "INFO: Skipping download. Using existing installer.jar" >>serverstart.log 2>&1 + echo "Skipping download. Using existing installer.jar" + fi + else + if [ "${FORGEURL}" = "DISABLE" ]; then + export URL="http://files.minecraftforge.net/maven/net/minecraftforge/forge/${MCVER}-${FORGEVER}/forge-${MCVER}-${FORGEVER}-installer.jar" + else + export URL="${FORGEURL}" + fi + echo $URL + which wget >> /dev/null + if [ $? -eq 0 ]; then + echo "DEBUG: (wget) Downloading ${URL}" >>serverstart.log 2>&1 + wget -O installer.jar "${URL}" >>serverstart.log 2>&1 + else + which curl >> /dev/null + if [ $? -eq 0 ]; then + echo "DEBUG: (curl) Downloading ${URL}" >>serverstart.log 2>&1 + curl -o installer.jar "${URL}" >>serverstart.log 2>&1 + else + echo "Neither wget or curl were found on your system. Please install one and try again" + echo "ERROR: Neither wget or curl were found" >>serverstart.log 2>&1 + fi + fi + fi + + if [ ! -f installer.jar ]; then + echo "Forge installer did not download" + echo "ERROR: Forge installer did not download" >>serverstart.log 2>&1 + exit 0 + else + echo "Moving unneeded files/folders to ./DELETEME" + echo "INFO: Moving unneeded files/folders to ./DELETEME" >>serverstart.log 2>&1 + rm -rf ./DELETEME >>serverstart.log 2>&1 + mv -f ./asm ./DELETEME >>serverstart.log 2>&1 + mv -f ./libraries ./DELETEME >>serverstart.log 2>&1 + mv -f ./llibrary ./DELETEME >>serverstart.log 2>&1 + mv -f ./minecraft_server*.jar ./DELETEME >>serverstart.log 2>&1 + mv -f ./forge*.jar ./DELETEME >>serverstart.log 2>&1 + mv -f ./OpenComputersMod*lua* ./DELETEME >>serverstart.log 2>&1 + echo "Installing Forge Server, please wait..." + echo "INFO: Installing Forge Server" >>serverstart.log 2>&1 + java -jar installer.jar --installServer >>serverstart.log 2>&1 + echo "Deleting Forge installer (no longer needed)" + echo "INFO: Deleting installer.jar" >>serverstart.log 2>&1 + rm -rf installer.jar >>serverstart.log 2>&1 + fi +} + +# routine to [re]start Forgemodded minecraft server +start_server() { + echo "" + echo "" + echo "Starting server" + echo "INFO: Starting Server at " $(date -u +%Y-%m-%d_%H:%M:%S) >>serverstart.log 2>&1 + java -Xmx${MAX_RAM} ${JAVA_ARGS} -jar forge-${MCVER}-${FORGEVER}.jar nogui +} + +# routine for basic directory checks +check_dir(){ + echo "DEBUG: Current directory is " $(pwd) >>serverstart.log 2>&1 + if [ "$(pwd)" = "/tmp" ] || [ "$(pwd)" = "/var/tmp" ]; then + echo "Current directory appears to be TMP" + echo "WARN: Current DIR is TEMP" >>serverstart.log 2>&1 + if [ ${RUN_FROM_BAD_FOLDER} -eq 0 ]; then + echo "ERROR: Stopping due to bad folder (TMP)" >>serverstart.log 2>&1 + echo "RUN_FROM_BAD_FOLDER setting is off, exiting script" + exit 0 + else + echo "WARN: Bad folder (TMP) but continuing anyway" >>serverstart.log 2>&1 + echo "Bypassing cd=temp halt per script settings" + fi + fi + + if [ ! -r . ] || [ ! -w . ]; then + echo "WARN: Not full R/W access on current directory" + echo "You do not have full R/W access to current directory" + if [ ${RUN_FROM_BAD_FOLDER} -eq 0 ]; then + echo "ERROR: Stopping due to bad folder (R/W access)" >>serverstart.log 2>&1 + echo "RUN_FROM_BAD_FOLDER setting is off, exiting script" + exit 0 + else + echo "WARN: Bad folder (R/W) cut continuing anyway" >>serverstart.log 2>&1 + echo "Bypassing no R/W halt (per script settings)" + fi + fi +} + +# routine for ping inet connectivity +check_connection(){ + if [ ${IGNORE_OFFLINE} -eq 1 ]; then + echo "WARN: Internet connectivity checking is disabled" >>serverstart.log 2>&1 + echo "Skipping internet connectivity check" + else + if ping -c 1 8.8.8.8 >> /dev/null 2>&1; then + echo "INFO: Ping to Google DNS successfull" >>serverstart.log 2>&1 + echo "Ping to Google DNS successfull" + else + echo "ERROR: Ping to Google DNS failed. No internet access?" >>serverstart.log 2>&1 + echo "Ping to Google DNS failed. No internet access?" + fi + + if ping -c 1 4.2.2.1 >> /dev/null 2>&1; then + echo "INFO: Ping to L4 successfull" >>serverstart.log 2>&1 + echo "Ping to L4 successfull" + else + echo "ERROR: Ping to L4 failed. No internet access?" >>serverstart.log 2>&1 + echo "Ping to L4 failed. No internet access?" + exit 0 + fi + fi +} + +# routine to make sure necessary binaries are found +check_binaries(){ + if [ ! -f ${FORGE_JAR} ] ; then + echo "WARN: ${FORGE_JAR} not found" >>serverstart.log 2>&1 + echo "Required files not found, need to install Forge" + install_server + fi + if [ ! -f ./minecraft_server.${MCVER}.jar ] ; then + echo "WARN: minecraft_server.${MCVER}.jar not found" >>serverstart.log 2>&1 + echo "Required files not found, need to install Forge" + install_server + fi + if [ ! -d ./libraries ] ; then + echo "WARN: library directory not found" >>serverstart.log 2>&1 + echo "Required files not found, need to install Forge" + install_server + fi +} + +read_config(){ + while read -r line || [[ -n "$line" ]] ; do + if echo $line | grep -F = &>/dev/null; then + if [[ ${str:0:1} != "#" ]] ; then + name=$(echo "$line" | cut -d '=' -f 1) + val=$(echo "${line}" | cut -d '=' -f 2-) + eval "export ${name}='${val%?}'" + fi + fi + done < settings.cfg + +} + +eula(){ + if [ ! -f eula.txt ]; then + echo "Could not find eula.txt starting server to generate it" + start_server + echo "" + echo "Closing to give user a change to accept the eula" + exit 0 + else + if grep -Fxq "eula=false" eula.txt; then + echo "Could not find 'eula=true' in 'eula.txt'" + echo "Closing to give user a change to accept the eula" + exit 0 + fi + fi +} + +read_config + +# Script/batch starts here... + +# init log file and dump basic info +echo "INFO: Starting script at" $(date -u +%Y-%m-%d_%H:%M:%S) >serverstart.log 2>&1 +echo "DEBUG: Dumping starting variables: " >>serverstart.log 2>&1 +echo "DEBUG: MAX_RAM=$MAX_RAM" >>serverstart.log 2>&1 +echo "DEBUG: JAVA_ARGS=$JAVA_ARGS" >>serverstart.log 2>&1 +echo "DEBUG: CRASH_COUNT=$CRASH_COUNT" >>serverstart.log 2>&1 +echo "DEBUG: RUN_FROM_BAD_FOLDER=$RUN_FROM_BAD_FOLDER" >>serverstart.log 2>&1 +echo "DEBUG: IGNORE_OFFLINE=$IGNORE_OFFLINE" >>serverstart.log 2>&1 +echo "DEBUG: MCVER=$MCVER" >>serverstart.log 2>&1 +echo "DEBUG: FORGEVER=$FORGEVER" >>serverstart.log 2>&1 +echo "DEBUG: FORGEURL=$FORGEURL" >>serverstart.log 2>&1 +echo "DEBUG: Basic System Info: " $(uname -a) >>serverstart.log 2>&1 +if [ "$machine" = "Mac" ] +then + echo "DEBUG: Total RAM estimate: " $(sysctl hw.memsize | awk 'BEGIN {total = 1} {if (NR == 1 || NR == 3) total *=$NF} END {print total / 1024 / 1024" MB"}') >>serverstart.log 2>&1 +else + echo "DEBUG: Total RAM estimate: " $(getconf -a | grep PAGES | awk 'BEGIN {total = 1} {if (NR == 1 || NR == 3) total *=$NF} END {print total / 1024 / 1024" MB"}') >>serverstart.log 2>&1 +fi +echo "DEBUG: Java Version info: " $(java -version) >>serverstart.log 2>&1 +echo "DEBUG: Dumping current directory listing " >>serverstart.log 2>&1 +ls -s1h >>serverstart.log 2>&1 + +export answer="n" +echo "" +read -t 6 -p "About to start server. Force re-install (y/n)? " answer +if [[ "$answer" =~ ^([yY][eE][sS]|[yY])+$ ]]; then + echo "INFO: User chose to manually re-install server files" >>serverstart.log 2>&1 + echo "User chose to manually re-install server files" + install_server +fi + +check_dir +check_connection +check_binaries +eula + +# loop to restart server and check crash frequency +a=0 +last_crash=$((SECONDS)) +while true ; do + start_server + b=$? + if [ "$b" -eq "0" ]; then + a=0 + else + now=$((SECONDS)) + diff=$(($now-$last_crash)) + if [ "$diff" -gt "3600" ]; then + a=1 + else + a=$((a+1)) + fi + last_crash=$((SECONDS)) + fi + if [ "$a" -eq ${CRASH_COUNT} ]; then + echo "The server has crashed to many times" + echo "ERROR: Server has failed too start too many times in a row." >>serverstart.log 2>&1 + exit 0 + fi + + export answer="y" + echo "Server will restart in ~10 seconds. No input needed..." + read -t 12 -p "Restart now (y) or exit to shell (n)? " answer + if [[ "$answer" =~ ^([nN][oO]|[nN])+$ ]]; then + echo "INFO: User cancelled restart; exiting to shell" >>serverstart.log 2>&1 + exit 0 + fi + + #re-validate stuff each server restart + check_dir + check_connection + check_binaries + eula + echo "INFO: Server-auto-restart commencing" >>serverstart.log 2>&1 + echo "Rebooting now!" +done \ No newline at end of file diff --git a/development/include-in-server-files/server.properties b/development/include-in-server-files/server.properties new file mode 100644 index 0000000000..369def001e --- /dev/null +++ b/development/include-in-server-files/server.properties @@ -0,0 +1,30 @@ +allow-flight=true +allow-nether=true +broadcast-console-to-ops=true +difficulty=2 +enable-command-block=false +enable-query=false +force-gamemode=false +gamemode=0 +generate-structures=true +generator-settings= +hardcore=false +level-name=world +level-seed= +max-build-height=256 +max-players=20 +max-tick-time=-1 +max-world-size=29999984 +motd=Enigmatica 6 Server +online-mode=true +op-permission-level=4 +player-idle-timeout=0 +pvp=true +resource-pack= +server-ip= +server-port=25565 +spawn-animals=true +spawn-monsters=true +spawn-npcs=true +view-distance=8 +white-list=false \ No newline at end of file diff --git a/development/include-in-server-files/settings.cfg b/development/include-in-server-files/settings.cfg new file mode 100644 index 0000000000..ed6a227aa6 --- /dev/null +++ b/development/include-in-server-files/settings.cfg @@ -0,0 +1,18 @@ +;SETTINGS FOR SERVERSTART SCRIPTS +;See "serverstart.log" in the LOGS subfolder +;For more details/help see: https://github.com/AllTheMods/Server-Scripts + +MAX_RAM=4G; +JAVA_ARGS=-d64 -server -XX:+AggressiveOpts -XX:+UseConcMarkSweepGC -XX:+UnlockExperimentalVMOptions -XX:+UseParNewGC -XX:+ExplicitGCInvokesConcurrent -XX:+UseFastAccessorMethods -XX:+OptimizeStringConcat -XX:+UseAdaptiveGCBoundary; +CRASH_COUNT=5; +CRASH_TIMER=600; +RUN_FROM_BAD_FOLDER=0; +IGNORE_OFFLINE=0; +IGNORE_JAVA_CHECK=0; +USE_SPONGE=0; +HIGH_CPU_PRIORITY=0; + +MODPACK_NAME=Enigmatica 6; +MCVER=1.16.1; +FORGEVER=32.0.62; +FORGEURL=https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.16.1-32.0.62/forge-1.16.1-32.0.62-installer.jar; \ No newline at end of file diff --git a/development/include-in-server-files/update-and-start-server.bat b/development/include-in-server-files/update-and-start-server.bat new file mode 100644 index 0000000000..ba52f695e2 --- /dev/null +++ b/development/include-in-server-files/update-and-start-server.bat @@ -0,0 +1 @@ +PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""'}" \ No newline at end of file diff --git a/development/include-in-server-files/update-and-start-server.ps1 b/development/include-in-server-files/update-and-start-server.ps1 new file mode 100644 index 0000000000..e0ad3260c7 --- /dev/null +++ b/development/include-in-server-files/update-and-start-server.ps1 @@ -0,0 +1,8 @@ +<# + +This script simply runs the update script, followed by the start script. + +#> + +. "$PSScriptRoot/update-server.ps1" +Start-Process server-start.bat \ No newline at end of file diff --git a/development/include-in-server-files/update-server.bat b/development/include-in-server-files/update-server.bat new file mode 100644 index 0000000000..ba52f695e2 --- /dev/null +++ b/development/include-in-server-files/update-server.bat @@ -0,0 +1 @@ +PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""'}" \ No newline at end of file diff --git a/development/include-in-server-files/update-server.ps1 b/development/include-in-server-files/update-server.ps1 new file mode 100644 index 0000000000..91a799727f --- /dev/null +++ b/development/include-in-server-files/update-server.ps1 @@ -0,0 +1,82 @@ +<# + +The purpose of this script is to automate updating and launching of Enigmatica 5 servers. +It's a bit advanced, I recommend going with the server-start script if you'd rather do things manually. + +Requirements: + * Established InstanceSync connection with Enigmatica 5 github repo. (See https://github.com/NillerMedDild/Enigmatica5 for details) + * The server-start script is used, so the settings.cfg must be filled out. + * This script has to be in the root of the modpack folder +#> + +$ModFolder = "$PSScriptRoot/mods" +$WorldFolder = "$PSScriptRoot/world" +$BackupFolder = "$PSScriptRoot/backups" +$OverridesFolder = "$PSScriptRoot/overrides" +$ThirdPartyModsFolder = "$PSScriptRoot/thirdpartymods" +$BackupsToKeep = 10 + +git fetch +$CommitsBehind = git rev-list --left-only --count origin/master...master +if ($CommitsBehind -gt 0) { + # Make a backup of the mods folder + New-Item -ItemType Directory -Path $BackupFolder -ErrorAction SilentlyContinue + if (Test-Path $ModFolder) { + if ((Get-ChildItem -Path $ModFolder | Measure-Object).Count -gt 0) { + Compress-Archive -Path $ModFolder "$BackupFolder/mods-$(Get-Date -Format "MM.dd.yyyy-HH.mm").zip" + Remove-Item -Path $ModFolder -Recurse -ErrorAction SilentlyContinue + } + } + else { + New-Item -ItemType Directory -Path $ModFolder -ErrorAction SilentlyContinue + } + + $BackupFiles = Get-ChildItem -Path $BackupFolder + $BackupFileCount = ($BackupFiles | Measure-Object ).Count + if ($BackupFileCount -gt $BackupsToKeep) { + $BackupFiles | + Sort-Object -Property CreationTime -Descending | + Select-Object -Last ($BackupFileCount - $BackupsToKeep) | + Foreach-Object { Remove-Item "$BackupFolder/$_" } + } + + # Make a backup of the world folder + New-Item -ItemType Directory -Path $BackupFolder -ErrorAction SilentlyContinue + if (Test-Path $WorldFolder) { + if ((Get-ChildItem -Path $WorldFolder | Measure-Object).Count -gt 0) { + Compress-Archive -Path $WorldFolder "$BackupFolder/world-$(Get-Date -Format "MM.dd.yyyy-HH.mm").zip" + } + } + else { + New-Item -ItemType Directory -Path $WorldFolder -ErrorAction SilentlyContinue + } + + $BackupFiles = Get-ChildItem -Path $BackupFolder + $BackupFileCount = ($BackupFiles | Measure-Object ).Count + if ($BackupFileCount -gt $BackupsToKeep) { + $BackupFiles | + Sort-Object -Property CreationTime -Descending | + Select-Object -Last ($BackupFileCount - $BackupsToKeep) | + Foreach-Object { Remove-Item "$BackupFolder/$_" } + } +} + +git stash +git reset --hard +git pull + +. "./remove-client-mods.ps1" + +Get-ChildItem -Path $OverridesFolder -Recurse | ForEach-Object { + $CopyFrom = $_.FullName + $CopyTo = $_.FullName.Replace("\overrides", "") + Copy-Item -Path $CopyFrom -Destination $CopyTo -Force +} + +$FromFolder = "\thirdpartymods" +$DestinationFolder = "\mods" +Get-ChildItem -Path $ThirdPartyModsFolder -Recurse | ForEach-Object { + $CopyFrom = $_.FullName + $CopyTo = $_.FullName.Replace($FromFolder, $DestinationFolder) + Copy-Item -Path $CopyFrom -Destination $CopyTo -Force +} \ No newline at end of file diff --git a/development/reloadbutton.json b/development/reloadbutton.json new file mode 100644 index 0000000000..0b3fff968c --- /dev/null +++ b/development/reloadbutton.json @@ -0,0 +1,17 @@ +{ + "x": 90, + "y": 267, + "width": 20, + "height": 20, + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 20, + "texHeight": 40, + "texture": "packmenu:textures/gui/reload.png", + "action": "RELOAD", + "fontColor": 16777215, + "hoverFontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/development/setup.bat b/development/setup.bat new file mode 100644 index 0000000000..8afd88b258 --- /dev/null +++ b/development/setup.bat @@ -0,0 +1,14 @@ +@echo off + +cd .. + +type NUL > .git/hooks/post-merge +echo #!/bin/sh > .git/hooks/post-merge +echo java -jar InstanceSync.jar >> .git/hooks/post-merge + +echo Done setting up hooks +echo Running InstanceSync + +java -jar InstanceSync.jar + +pause \ No newline at end of file diff --git a/development/setup.sh b/development/setup.sh new file mode 100644 index 0000000000..0c3c6c42c6 --- /dev/null +++ b/development/setup.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +cd .. + +echo "#!/bin/sh" > .git/hooks/post-merge +echo "java -jar InstanceSync.jar" >> .git/hooks/post-merge + +echo "Done setting up hooks" +echo "Running InstanceSync" + +java -jar InstanceSync.jar \ No newline at end of file diff --git a/openloader/data/enigmatica/pack.mcmeta b/openloader/data/enigmatica/pack.mcmeta new file mode 100644 index 0000000000..4d6cacafec --- /dev/null +++ b/openloader/data/enigmatica/pack.mcmeta @@ -0,0 +1 @@ +{"pack":{"pack_format":5,"description":"The Datapack for Enigmatica 5"}} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/accessibility.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/accessibility.json new file mode 100644 index 0000000000..a104c1804d --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/accessibility.json @@ -0,0 +1,18 @@ +{ + "x": 135, + "y": 245, + "width": 20, + "height": 20, + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 32, + "texHeight": 64, + "texture": "textures/gui/accessibility.png", + "action": "OPEN_GUI", + "data": "ACCESSIBILITY", + "fontColor": 16777215, + "hoverFontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/bisect.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/bisect.json new file mode 100644 index 0000000000..ae01c4b328 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/bisect.json @@ -0,0 +1,18 @@ +{ + "x": 25, + "y": 120, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.bisect", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "action": "OPEN_URL", + "data": "https://bisecthosting.com/niller", + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/discord.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/discord.json new file mode 100644 index 0000000000..ecf05d7dbc --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/discord.json @@ -0,0 +1,16 @@ +{ + "x": 105, + "y": 245, + "width": 20, + "height": 20, + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 20, + "texHeight": 20, + "texture": "enigmatica:textures/discord.png", + "action": "OPEN_URL", + "data": "https://discord.gg/xPPwaFx", + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/github.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/github.json new file mode 100644 index 0000000000..dbcc2430ea --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/github.json @@ -0,0 +1,18 @@ +{ + "x": 25, + "y": 195, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.github", + "action": "OPEN_URL", + "data": "https://github.com/NillerMedDild/Enigmatica5/issues?utf8=%E2%9C%93&q=is%3Aissue", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/language.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/language.json new file mode 100644 index 0000000000..1f56ab2b4c --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/language.json @@ -0,0 +1,18 @@ +{ + "x": 45, + "y": 245, + "width": 20, + "height": 20, + "u": 0, + "v": 106, + "hoverU": 0, + "hoverV": 126, + "texWidth": 256, + "texHeight": 256, + "widgets": false, + "action": "OPEN_GUI", + "data": "LANGUAGE", + "fontColor": 16777215, + "hoverFontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/mods.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/mods.json new file mode 100644 index 0000000000..e4e6492551 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/mods.json @@ -0,0 +1,19 @@ +{ + "x": 25, + "y": 170, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.mods", + "action": "OPEN_GUI", + "data": "MODS", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "hoverFontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/multiplayer.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/multiplayer.json new file mode 100644 index 0000000000..9b8317dcd8 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/multiplayer.json @@ -0,0 +1,19 @@ +{ + "x": 25, + "y": 95, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.multiplayer", + "action": "OPEN_GUI", + "data": "MULTIPLAYER", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "hoverFontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/options.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/options.json new file mode 100644 index 0000000000..ded6bb4806 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/options.json @@ -0,0 +1,18 @@ +{ + "x": 25, + "y": 145, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.options", + "action": "OPEN_GUI", + "data": "OPTIONS", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/quit.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/quit.json new file mode 100644 index 0000000000..91972d9402 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/quit.json @@ -0,0 +1,17 @@ +{ + "x": 25, + "y": 220, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.quit", + "action": "QUIT", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/singleplayer.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/singleplayer.json new file mode 100644 index 0000000000..66ac704081 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/singleplayer.json @@ -0,0 +1,18 @@ +{ + "x": 25, + "y": 70, + "width": 150, + "height": 20, + "langKey": "packmenu.enigmatica.singleplayer", + "action": "OPEN_GUI", + "data": "SINGLEPLAYER", + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 182, + "texHeight": 52, + "texture": "enigmatica:textures/button.png", + "fontColor": 16777215, + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/buttons/twitter.json b/openloader/resources/enigmatica/assets/enigmatica/buttons/twitter.json new file mode 100644 index 0000000000..c05d93464c --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/buttons/twitter.json @@ -0,0 +1,16 @@ +{ + "x": 75, + "y": 245, + "width": 20, + "height": 20, + "u": 0, + "v": 0, + "hoverU": 0, + "hoverV": 20, + "texWidth": 20, + "texHeight": 20, + "texture": "enigmatica:textures/twitter.png", + "action": "OPEN_URL", + "data": "https://twitter.com/NillerMedDild", + "anchor": "TOP_LEFT" +} \ No newline at end of file diff --git a/openloader/resources/enigmatica/assets/enigmatica/lang/en_us.json b/openloader/resources/enigmatica/assets/enigmatica/lang/en_us.json new file mode 100644 index 0000000000..1390c49263 --- /dev/null +++ b/openloader/resources/enigmatica/assets/enigmatica/lang/en_us.json @@ -0,0 +1,13 @@ +{ + "block.minecraft.nether_portal.name": "Nether Portal", + + "": "", + + "packmenu.enigmatica.singleplayer": "Singleplayer", + "packmenu.enigmatica.multiplayer": "Multiplayer", + "packmenu.enigmatica.options": "Options", + "packmenu.enigmatica.mods": "Mods", + "packmenu.enigmatica.github": "Report a Bug", + "packmenu.enigmatica.quit": "Quit", + "packmenu.enigmatica.bisect": "Rent a Server" +} diff --git a/openloader/resources/enigmatica/assets/enigmatica/textures/button.png b/openloader/resources/enigmatica/assets/enigmatica/textures/button.png new file mode 100644 index 0000000000..ed92ef8824 Binary files /dev/null and b/openloader/resources/enigmatica/assets/enigmatica/textures/button.png differ diff --git a/openloader/resources/enigmatica/assets/enigmatica/textures/discord.png b/openloader/resources/enigmatica/assets/enigmatica/textures/discord.png new file mode 100644 index 0000000000..db0e70d5d4 Binary files /dev/null and b/openloader/resources/enigmatica/assets/enigmatica/textures/discord.png differ diff --git a/openloader/resources/enigmatica/assets/enigmatica/textures/enigmatica6.png b/openloader/resources/enigmatica/assets/enigmatica/textures/enigmatica6.png new file mode 100644 index 0000000000..9d4e66d7ea Binary files /dev/null and b/openloader/resources/enigmatica/assets/enigmatica/textures/enigmatica6.png differ diff --git a/openloader/resources/enigmatica/assets/enigmatica/textures/icon.png b/openloader/resources/enigmatica/assets/enigmatica/textures/icon.png new file mode 100644 index 0000000000..3b708f9e71 Binary files /dev/null and b/openloader/resources/enigmatica/assets/enigmatica/textures/icon.png differ diff --git a/openloader/resources/enigmatica/assets/enigmatica/textures/twitter.png b/openloader/resources/enigmatica/assets/enigmatica/textures/twitter.png new file mode 100644 index 0000000000..be15333fe5 Binary files /dev/null and b/openloader/resources/enigmatica/assets/enigmatica/textures/twitter.png differ diff --git a/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_0.png b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_0.png new file mode 100644 index 0000000000..84de723738 Binary files /dev/null and b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_0.png differ diff --git a/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_1.png b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_1.png new file mode 100644 index 0000000000..06132820ed Binary files /dev/null and b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_1.png differ diff --git a/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_2.png b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_2.png new file mode 100644 index 0000000000..ae36f73bc7 Binary files /dev/null and b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_2.png differ diff --git a/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_3.png b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_3.png new file mode 100644 index 0000000000..ae025dd121 Binary files /dev/null and b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_3.png differ diff --git a/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_4.png b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_4.png new file mode 100644 index 0000000000..88c1aafcf0 Binary files /dev/null and b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_4.png differ diff --git a/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_5.png b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_5.png new file mode 100644 index 0000000000..00ddc99ea3 Binary files /dev/null and b/openloader/resources/enigmatica/assets/minecraft/textures/gui/title/background/panorama_5.png differ diff --git a/openloader/resources/enigmatica/pack.mcmeta b/openloader/resources/enigmatica/pack.mcmeta new file mode 100644 index 0000000000..3249fcdcfe --- /dev/null +++ b/openloader/resources/enigmatica/pack.mcmeta @@ -0,0 +1 @@ +{"pack":{"pack_format":5,"description":"The Resource Pack for Enigmatica 5"}} \ No newline at end of file diff --git a/settings.ps1 b/settings.ps1 new file mode 100644 index 0000000000..dcbbcd5345 --- /dev/null +++ b/settings.ps1 @@ -0,0 +1,161 @@ +# Settings for the ModpackUploader +# For details/help see: https://github.com/NillerMedDild/ModpackUploader + +$CLIENT_MODS = @( + "AppleSkin", + "BetterAdvancements", + "ClientTweaks", + "CraftingTweaks", + "DefaultOptions", + "DefaultSettings", + "EnchantmentDescriptions", + "EquipmentTooltips", + "FpsReducer", + "invtweaks", + "JustEnoughResources", + "LLOverlayReloaded", + "MouseTweaks", + "nmdar_", + "Neat", + "overloadedarmorbar", + "ReAuth", + "StepUp", + "ToastControl", + "toughnessbar", + "Xaeros_Minimap", + "XaerosWorldMap") + + +# =====================================================================// +# CURSEFORGE SETTINGS +# =====================================================================// + +$CURSEFORGE_USER = "NillerMedDild" + +# ProjectID can be found on the modpack's Curseforge Projects page, under "About This Project" +$CURSEFORGE_PROJECT_ID = 389471 + +# =====================================================================// +# MODPACK & CLIENT FILE SETTINGS +# =====================================================================// + +# Default: "1.0.0" +$MODPACK_VERSION = "0.1.3" + +# Only used by the Changelog Generator +$LAST_MODPACK_VERSION = "0.1.2" + +$FORGE_VERSION = 32.0.62 + +$CLIENT_FILENAME = "Enigmatica6" + +# Default: "$CLIENT_FILENAME $MODPACK_VERSION" +$CLIENT_FILE_DISPLAY_NAME = "Enigmatica 6 - $MODPACK_VERSION" + +# An array of compatible game versions of Minecraft. +# See GameVersions.json for possible versions. +# Default: @(6756) - which is Minecraft 1.12.2 +$GAME_VERSIONS = @(7892) # 7675 is 1.15.1, 7722 is 1.15.2, 7892 is 1.16.1 + +# Can be "markdown", "text" or "html" +$CLIENT_CHANGELOG_TYPE = "markdown" + +$CLIENT_CHANGELOG = "### Enigmatica 6 v$MODPACK_VERSION

" + +"Using Forge-1.16.1-32.0.62

" + +"The Changelog is currently being written, it should be done within 10 minutes. " + + +# Can be "alpha", "beta" or "release" +$CLIENT_RELEASE_TYPE = "release" + +#=====================================================================// +# SERVER FILE SETTINGS +#=====================================================================// + +# Default: "$CLIENT_FILENAME Server $MODPACK_VERSION" +$SERVER_FILENAME = "$CLIENT_FILENAME`Server-$MODPACK_VERSION" + +# Default: $SERVER_FILENAME +$SERVER_FILE_DISPLAY_NAME = "Enigmatica 6 Server - $MODPACK_VERSION" + +# A continuous line of the folders and files (with extensions) to zip into Server Files. +# Default: @("mods", "config") +$CONTENTS_TO_ZIP = @( + "mods", + "config", + "defaultconfigs", + "openloader", + "scripts", + "kubejs", + "packmenu", + "server-start-license.md", + "server-start-readme.md", + "server-start.bat", + "server-start.sh", + "settings.cfg", + "server.properties", + "server-guide.txt") + +$CONTENTS_TO_MOVE = @( + "server-start-license.md", + "server-start-readme.md", + "server-start.bat", + "server-start.sh", + "settings.cfg", + "server.properties", + "server-guide.txt") + +# Can be "markdown", "text" or "html" +# Default: $CLIENT_CHANGELOG_TYPE +$SERVER_CHANGELOG_TYPE = $CLIENT_CHANGELOG_TYPE + +# Must be a single string. Use Powershell escaping for new lines etc. New line is `n and indent is `t +# Default: $CLIENT_CHANGELOG +$SERVER_CHANGELOG = $CLIENT_CHANGELOG + +# Can be "alpha", "beta" or "release" +# Default: $CLIENT_RELEASE_TYPE +$SERVER_RELEASE_TYPE = $CLIENT_RELEASE_TYPE + +# =====================================================================// +# MODULES +# =====================================================================// + +# Toggle twitch-export-builder (automatic building of the manifest zip) on/off +# Default: $true +$ENABLE_MANIFEST_BUILDER_MODULE = $true + +# Toggle the modpack uploader on/off +# Setting this to $false will also disable the Server File and Changelog Generator Modules. +# Default: $true +$ENABLE_MODPACK_UPLOADER_MODULE = $true + +# Toggle server file feature on/off +# Default: $true +$ENABLE_SERVER_FILE_MODULE = $true + +# Toggle automatic changelog generator on/off +# This module requires an older modpack manifest zip to be present, +# $LAST_MODPACK_VERSION must be set, and the manifest naming must be consistent. +# Default: $false +$ENABLE_CHANGELOG_GENERATOR_MODULE = $true + +# Toggle removal and re-download of jars on/off. +# Setting this to true will ensure that you always have the latest +# Twitch Export Builder and ChangelogGenerator, but increases the +# amount of time this script takes to execute. +# Default: $false +$ENABLE_ALWAYS_UPDATE_JARS = $false + +# Toggles extra logging on/off. +# Recommended if you're having trouble making the Modpack Uploader +# work. +# Default: $false +$ENABLE_EXTRA_LOGGING = $false + +# Toggles github changelog generator integration on/off. +# Requires extensive setup, this is an advanced step. +# See below link for info: +# https://github.com/github-changelog-generator/github-changelog-generator +# Default: $false +$ENABLE_GITHUB_CHANGELOG_GENERATOR_MODULE = $true \ No newline at end of file