Vẫn đang quằn quại giữa đống file .yml của Paper đó hả
? Để mình "khai sáng" cho cái tư duy này một chút, chứ để đằng ấy tự mò chắc tới mùa quýt sang năm vẫn chưa xong cái máy chủ bất ổn này mất 
Nếu ở đằng trước, paper-world-defaults.yml là Khuôn mẫu cho đám đệ tử của từng thế giới world/ world_nether/ world_the_end học theo, thì paper-global.yml chính là Nóc nhà của cả hệ thống
Thằng này chính là Tổng Tư Lệnh, quản lý những thứ mang tính chất vĩ mô, ảnh hưởng đến toàn bộ cái máy chủ từ đầu đến cuối mà không phân biệt World nào cả. Những thiết lập ở đây một khi đã chỉnh là áp dụng cho cả server, không có chuyện "con yêu con ghét" giữa các thế giới đâu nha
paper-global.yml/chunk-loading-advanced
chunk-loading-advanced:
auto-config-send-distance: true
player-max-concurrent-chunk-generates: 3
player-max-concurrent-chunk-loads: 9
chunk-loading-basic:
player-max-chunk-generate-rate: -1.0
player-max-chunk-load-rate: 75 - 85.0
player-max-chunk-send-rate: 50 - 65.0
chunk-system:
io-threads: 2 hoặc 40% CPU Threads bạn có
worker-threads: 3 hoặc 55% CPU Threads bạn có
.ᐟ player-max-concurrent-chunk-generates + player-max-chunk-generate-rate == tạo mới Chunk (generation), đây là một trong những vấn đề cực hình của quản trị viên khi thiết đặt này tiêu tốn một lượng vô cùng lớn tài nguyên CPU chỉ để máy chủ vừa chạy vừa "vắt óc" suy nghĩ xem địa hình tiếp theo trông thế nào.
Nếu người chơi bay vèo vèo bằng Elytra vào vùng đất mới chưa có ai đi vô, máy chủ sẽ khóc thét
Quản trị viên nên rước trước Chunky / Chunksmith để tạo sẵn (Pre-generate) toàn bộ bản đồ thường xuyên có thần dân cư trú, trước khi mở cửa máy chủ. Khi đó, thần dân bay qua giống như việc lấy dữ liệu từ ổ cứng ra thôi, nhẹ nhàng hơn hẳn. Vài viễn cảnh và hướng giải quyết đối với tốc độ tải thế giới:
- Bắt bệnh cho đường truyền và phần cứng ⤷ Nếu đã Pre-gen mà vẫn lag, thì khả năng cao là do những thiết đặt trở về trước của máy chủ có vấn đề:
˚˖ ᵎᵎ Anti-Xray:
Như mình đã nói tạipaper-world-default.ymlengine-mode 2làm dữ liệu phình to ra, thử thay đổi sangmode-1hoặcmode-3xem có mượt hơn không nhé.
˚˖ ᵎᵎ Netty Threads:
Nếu dùng/spark health --thread *mà thấy mấy cái luồng Netty đỏ lừ, hãy cân nhắc tăngnetty-threadstrongspigot.yml(nhưng chỉ khi CPU đằng ấy còn dư sức thôi nhá) .ᐟ
˚˖ ᵎᵎ Disk I/O: Nếu dùng ổ cứng HDD thời "đồ đá" hoặc nhà cung cấp host rẻ tiền bị giới hạn tốc độ ghi, thì việc tải chunk sẽ chậm như rùa bò ạ
- Hung thần Elytra
Mấy bạn trẻ bây giờ thích bay cao bay xa bằng Elytra và pháo hoa, làm máy chủ phải gửi hàng nghìn chunks một lúc. Cách xử lý thì có phần hơi suc' vat^. tí, bạn có thể tham khảo cách máy chủ mình đang áp dụng:
➜ Thiết lập nền kinh tế elytra: biến Elytra thành vật phẩm kinh tế quý hiếm, tăng giá trị cho những người chơi đã bỏ công sức săn lùng elytra trong End, ví dụ như:- EconomyShopGUI Premium: Giới hạn vật phẩm Elytra được BÁN ra mỗi tuần và tăng 70% giá theo sức mua của người chơi.
- Mẫu đọc tham khảo tại docs https://wiki.gpplugins.com/economyshopgui/file-configuration/config.yml#dynamic-pricing
- EconomyShopGUI Premium: Giới hạn vật phẩm Elytra được BÁN ra mỗi tuần và tăng 70% giá theo sức mua của người chơi.
'8':
material: ELYTRA
buy: 2888888 # Giá trị ngang ngửa 36 tiếng chơi liên tục của người chơi
stock-limit-global: 3
dynamic-pricing:
enabled: true
side: BUY
min-price: 2888888
max-price: 8888888
breakpoints:
- threshold-global-bought-percent: 0.3
buy-price: 5555555
- threshold-global-bought-percent: 0.7
buy-price: 8888888
refill-stock: true
displaylore:
- "&7Hàng giới hạn &f3 cái/tuần&7."
- "&7Khi có người mua, kho toàn cầu sẽ giảm."
restock-cron: "0 40 4 ? * SUN"
➜ Không Giữ kho đồ - keep_Inventory tại các khu vực The End.
➜ Sử dụng Plugin/Datapack thay đổi cơ chế sản sinh địa hình hoặc Elytra của khu vực The End 
purpur.yml/world-settings.default.gameplay-mechanics.elytra thiết đặt như sau:elytra:
damage-per-second: 1.8
damage-multiplied-by-speed: 0.7
damage-per-boost:
firework: 1.9
trident: 1.8
kinetic-damage: true
damage-per-second + damage-multiplied-by-speed + damage-per-boost giúp im lặng giảm độ bền của vật phẩm Elytra khi sử dụng, theo cách không một thần dân nào để ý được.➜˚˖ ᵎᵎ Nếu máy chủ bạn có cài LagFixer, thì có thêm modules như
AbilityLimiter.yml giúp giảm tốc độ + mất thêm độ bền Elytra khi bay trong không gian:AbilityLimiter:
enabled: true
worlds:
- '*'
values:
elytra_boost:
cooldown: 0.5
speed_multiplier: 0.75
additional_durability_loss: 1
trident_riptide:
cooldown: 1
speed_multiplier: 0.85
additional_durability_loss: 5
3. Khi người chơi Bedrock bị văng thường xuyên hoặc Ping cao Đôi khi không phải do máy chủ, mà do... máy quá yếu:
- Client "cùi bắp": Paper gửi chunks nhanh đến mức máy người chơi không xử lý kịp, bảo tụi nó giảm view-distance xuống hoặc cài mấy cái mod tối ưu hiệu năng ạ. Cực kỳ khuyến khích Fabulously Optimized hoặc Thong Nhat Optimized
4. Phương pháp "Binary Search" cho Plugin/Datapack
Dò xem Plugins/Datapack nào ảnh hưởng tới cách máy chủ vận hành, chia đôi danh sách plugin ra. Chạy thử 1 nửa. Nếu hết lag thì lỗi nằm ở nửa kia. Tiếp tục chia đôi nửa bị lỗi cho đến khi tìm ra "kẻ phản diện".ᐟ
Đừng bao giờ nghe ba cái hướng dẫn tào lao trên mạng rồi chỉnh thông số linh tinh. Nếu không hiểu mình đang làm gì, tốt nhất hãy giữ nguyên mặc định hoặc lên kênh#paper-helptại PaperMC mà hỏi các bậc tiền bối nhé
paper-global.yml/item-validation.book
item-validation:
book:
author: 256
page: 8192
title: 256
book-size:
page-max: 100
total-multiplier: 2.0
display-name: 256
lore-line: 512
resolve-selectors-in-books: false
paper-global.yml/block-updates.disable-noteblock-updates
Đề xuất: falseĐây là tùy chỉnh tắt đi tính năng cập nhật nốt nhạc của khối NoteBlock, Note Block sẽ trở nên "điếc" hoàn toàn với thế giới xung quanh.
100% làm hỏng máy Farm người chơi khi quản trị viên bật tính năng này, bù lại những plugins chuyên tạo gói tài nguyên như Nexo / Craft-Engine sẽ sử dụng được 1024 trạng thái của NoteBlock để tạo ra những vật phẩm/khối tùy chỉnh đa dạng.
paper-global.yml/packet-limiter
Giải thích rõ hơn từng khái niệm tại: https://minecraft.wiki/w/Java_Edition_protocol/Packets
Dành cho bản <1.21.x
packet-limiter:
all-packets:
action: KICK
interval: 7.0
max-packet-rate: 500.0 # Giảm từ 3000 xuống 500. (500 là mức an toàn được PaperMC khuyến nghị).
kick-message: <red><lang:disconnect.exceeded_packet_rate>
overrides:
ServerboundCommandSuggestionPacket:
action: DROP
interval: 1.0
max-packet-rate: 30.0 # Nâng nhẹ lên 30 để người chơi gõ phím nhanh không bị khựng gợi ý chat.
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0 # Đổi chu kỳ đo lường về 4 giây để xử lý linh hoạt hơn.
max-packet-rate: 18.0 # Cho phép 18 lần click sách chế tạo/giây. Hack thường spam hàng trăm lần/s mới gây lag + chơi tay nhanh.
packet-limiter này chính là lớp giáp đầu tiên bảo vệ máy chủ khỏi mấy thanh niên thích dùng bản hack để gửi hàng triệu yêu cầu - packets tí hon về máy chủ trong một giây nhằm làm sập hệ thống Exploit/DoS. Dễ hiểu, cơ chế này hoạt động như một cái máy lọc: Bạn đặt ra một hạn ngạch, ví dụ 500 packets trong mỗi 7 giây. Nếu người chơi nào vượt quá ngưỡng này, máy chủ sẽ thực hiện hành động chính là KICK để tống cổ kẻ tình nghi ra khỏi máy chủ ngay lập tức trước khi kịp làm nghẽn CPU
Điểm đáng nói nằm ở chỗ overrides. Minecraft có một số thao tác đặc biệt như ServerboundPlaceRecipePacke , khi người chơi nhấn từng vật phẩm bàn chế tạo một cách siêu nhanh, sẽ rất dễ thành ra spam để gây Lag toàn bộ cư dân khác. Việc tách riêng hệ thống này ra để kiểm soát chặt hơn, giúp quản trị viên chặn đứng các bản hack "Recipe Crash" mà không làm ảnh hưởng đến trải nghiệm của những người chơi chân chính khác .ᐟ> Máy chủ mình
packet-limiter:
kick-message: <red><lang:disconnect.exceeded_packet_rate>
limits:
all:
action: KICK
interval: 7.0
max-packet-rate: 500.0
ServerboundCommandSuggestionPacket:
action: DROP
interval: 1.0
max-packet-rate: 30.0
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0
max-packet-rate: 18.0
Lớp giáp thứ hai, có thể kể đến các Plugins như LPX hoặc AnarchyExploitFixes / ExploitFixer bảo vệ toàn diện máy chủ bạn khi đạt ngưỡng 40+ người chơi.
The Minecraft Exploit That Broke 2b2t
www.youtube.com
