Thư mục config giờ sẽ chứa các file cấu hình mặc định và cấu hình chung của máy chủ Paper, nằm ngay trong thư mục gốc của Minecraft.
- Tệp
paper-global.ymlbao gồm toàn bộ các thiết lập áp dụng chung cho toàn máy chủ. - Tệp
paper-world-defaults.ymlchứa cấu hình mặc định cho tất cả các thế giới - world.
Ngoài ra, mỗi world/world_nether/world_the_end sẽ tự tạo một tệp riêng, lấy tên là paper-world.yml trong thư mục của nó. Bạn có thể chỉnh tệp này để ghi đè cấu hình cho từng world cụ thể, đường dẫn sẽ là /[tên_world]/paper-world.yml
paper-world-defaults.yml
Anti-xray cơ bản
Toàn bộ thiết đặt bạn cần cùng giải thích các khái niệm đã có sẵn tại https://docs.papermc.io/paper/anti-xray/
.ᐟ Để mình chia sẻ nhẹ kiến thức, giải thích cho đằng ấy hiểu tại sao cái tính năng này nó vừa là "cứu tinh" mà cũng vừa là "kẻ hủy diệt" băng thông nhé. Viễn cảnh xảy ra giữa các lựa chọn:
- Tại sao Anti-Xray lại làm Server phình to?

Bình thường, dữ liệu của Minecraft được nén lại rất gọn gàng vì các khối giống nhau nằm cạnh nhau. Nhưng khi quản trị viên bật Anti-Xray với Engine Mode 2, máy chủ sẽ tung hỏa mù bằng cách nhồi nhét một đống đồ giả vào các khối đá.
- Kết quả: Dữ liệu trở nên "lộn xộn" - Entropy cao, thuật toán nén không thể làm gọn nó được nữa. Gói tin gửi đi nặng đô hơn hẳn. Nếu máy chủ có trên 100 con dân cùng trực tuyến, đường truyền mạng sẽ sớm "ét ô ét" vì quá tải dữ liệu, dẫn đến tình trạng ping nhảy vpop mỗi khi người chơi đổi world hoặc đăng nhập

- "Hackers" vẫn có cửa thoát.ᐟ
- Anti-Xray chỉ che giấu trong một tầm nhất định để đỡ lag, hack xịn vẫn có thể "soi" được quặng thật ở ngoài tầm che phủ đó.
- Seed Reversing (Dò hạt giống): Đây là đòn "chí mạng" kết liễu mọi hệ thống anti-xray, nếu tụi nó mò được World-Seed, coi như xong đời. Thần dân của máy chủ bạn sẽ biết chính xác tọa độ Diamond/Ancient Debris nằm ở đâu mà không cần máy chủ phải gửi dữ liệu quặng về.
Đề xuất: Quản trị viên phải đổifeature-seedstrong Paper và cả mấy cáistructure-seedtrongspigot.yml+paper-world-defaults.yml/feature-seeds.generate-random-seeds-for-all+leaf/fast-biome-manager-seed-obfuscation+leaf/secure-seedthì mới gọi là có chút "phòng thủ" nhá.
- Cái bẫy "Quặng lộ thiên" (Ores Exposed to Air)
air vào danh sách hidden-blocks để giấu triệt để:- Mặt tốt: Chống x-ray tuyệt đối, kể cả trong hang.
- Mặt tối: Máy tính của người chơi sẽ phải gồng mình từ Hiệu năng tới Tốc độ mạng tính toán, để vẽ đống quặng giả đó xung quanh hang động, hệ quả là fps của người chơi sẽ tụt dốc không phanh. Đừng để người chơi phải thốt lên "Server lag ỉa" với Bedrock bị ăn kick liên hồi chỉ vì bạn quá mạnh tay với tụi X-ray nhé.ᐟ
- Cứu tinh + Giải pháp thay thế
Engine-mode 1tạo điều kiện cho máy tính người chơi giảm mạnh phần tính toán với khu vực Chunk mới
dù vậy, cũng khá dễ để các pháp sư x-ray bypass vượt qua, thay vì phụ thuộc hoàn toàn vào Anti-Xray và làm khổ cái băng thông, đằng ấy nên:
- Dùng Plugin Tracking: CoreProtect hoặc mấy cái plugin chuyên ghi chép tốc độ đào quặng của thần dân là chân ái. Cứ ai đào quá nhiều Diamond trong thời gian ngắn là bế đi luôn cho nhanh.
/co rollback action:-block exclude:stone,deepslate,dirt,gravel,andesite,diorite,granite radius:20 time:2h #preview- Lantern [Anti-Xray] - cũng là chiếc Plugin Premium mình rất thích để phát triển thêm, sử dụng thuật toán học máy CatBoost (Categorical Boosting) để phân tích 19 hành vi đào quặng của người chơi, tỉ lệ chuẩn 90%.
- 24/7 ngồi soi người chơi: Không có cái máy nào thay thế được sự tinh đời của Admin đâu ạ (*>ω<*)♡
anticheat:
anti-xray:
enabled: true
engine-mode: 1
hidden-blocks:
- diamond_ore
- deepslate_diamond_ore
- emerald_ore
- deepslate_emerald_ore
- gold_ore
- deepslate_gold_ore
- raw_gold_block
lava-obscures: false
max-block-height: 64
replacement-blocks:
- stone
- deepslate
update-radius: 2
anticheat:
anti-xray:
enabled: true
engine-mode: 3
hidden-blocks:
- nether_gold_ore
- ancient_debris
- nether_quartz_ore
- gilded_blackstone
lava-obscures: false
max-block-height: 128
replacement-blocks:
- basalt
- blackstone
- gravel
- netherrack
- soul_sand
- soul_soil
update-radius: 2
paper-world-defaults.yml/entities.tracking-range-y
Đề xuất
tracking-range-y:
animal: 30
display: 160
enabled: true
misc: 160
monster: 32
other: 160
player: 256
entity-tracking-range của spigot.yml nhưng theo chiều dọc (Y).paper-world-defaults.yml/entities.spawning.despawn-ranges
Đề xuất:
ambient:
hard: 72
soft: 30
axolotls:
hard: 72
soft: 30
creature:
hard: 72
soft: 30
misc:
hard: 72
soft: 30
monster:
hard: 72
soft: 30
underground_water_creature:
hard: 72
soft: 30
water_ambient:
hard: 72
soft: 30
water_creature:
hard: 72
soft: 30
monster.hard như sau:despawn-ranges:
monster:
hard: horizontal:
default vertical:
default soft: default
Người chơi đông, máy chủ phần cứng yếu thì thiết lập này cực kỳ quan trọng, nếu
simulation-distance bạn đặt < 10, thì mob-spawn-range tại spigot.yml = (simulation-distance - 1). Đồng thời, despawn-ranges.hard.horizontal nên đặt bằng (simulation-distance - 1) × 16. Giá trị theo chiều dọc - horizontal nên giữ mặc định (128 trong Vanilla), phần lớn các hướng dẫn Farm trên mạng người chơi tìm được đều dựa trên mức này, bảng minh họa:simulation-distance | mob-spawn-range | despawn-range.hard.horizontal |
|---|---|---|
10 (Vanilla) | 8 (Vanilla) | 128 (Vanilla) |
9 | 8 | 128 |
8 | 7 | 112 |
7 | 6 | 96 |
6 | 5 | 80 |
5 | 4 | 64 |
4 | 3 | 48 |
3 (khum nên) | 3 | 36 (khum khuyến khích) |
despawn-ranges:
ambient:
hard: 32
soft: 16
axolotls:
hard: 32
soft: 16
creature:
hard: 48
soft: 16
misc:
hard: 48
soft: 16
monster:
hard:
horizontal: 96
vertical: 48
soft: 30
underground_water_creature:
hard: 48
soft: 16
water_ambient:
hard: 48
soft: 16
water_creature:
hard: 48
soft: 16
paper-world-defaults/entities.spawning.despawn-time
Paper cho phép bạn thiết lập thời gian biến mất riêng cho từng loại thực thể Entity, bên cạnh các quy tắc Despawn mặc định của Vanilla.Gợi ý:
despawn-time:
llama_spit: 1200
snowball: 800
fireball: 1200
dragon_fireball: 1200
small_fireball: 1200
arrow: 3000
shulker_bullet: 3000
wither_skull: 3000
despawn-time + entity-per-chunk-save-limit + alt-item-despawn-rate sẽ tạo thành một Combo cơ bản giúp chặn được LagMachine 
paper-world-defaults.yml/chunks.entity-per-chunk-save-limit
entity-per-chunk-save-limit:
area_effect_cloud: 8
armor_stand: 14
arrow: 20
dragon_fireball: 3
egg: 18
ender_pearl: 5
fireball: 5
firework_rocket: 8
lingering_potion: 8
shulker_bullet: 6
small_fireball: 12
snowball: 12
spectral_arrow: 10
splash_potion: 8
trident: 10
wither_skull: 3
paper-world-defaults.yml/entities.spawning.alt-item-despawn-rate
alt-item-despawn-rate:
enabled: true
items:
arrow: 300
bone: 600
bone_meal: 300
cactus: 300
cobbled_deepslate: 600
cobblestone: 300
deepslate: 300
dirt: 300
egg: 300
ender_pearl: 90
feather: 300
gravel: 300
gunpowder: 1200
ink_sac: 900
leather: 300
netherrack: 120
oak_leaves: 300
rotten_flesh: 300
scaffolding: 600
slime_ball: 1200
stick: 300
string: 1200
sugar_cane: 300
count-all-mobs-for-spawning: false
creative-arrow-despawn-rate: '60'
Danh sách này cho phép bạn thay đổi thời gian biến mất (tính bằng tick) riêng cho từng loại vật phẩm, nhanh hơn hoặc chậm hơn so với mặc định. Bạn có thể dùng tùy chọn này kết hợp với paper-world-defaults.yml/merge-radius để tối ưu hiệu năng, thay vì phải dùng các Plugin/Skript chuyên dọn dẹp ClearLag xàm chó trên mạng. Lý do sẽ giải thích chi tiết hơn ở https://github.com/HSGamer/list-of-shame-mcvn
paper-world-defaults.yml/collisions.max-entity-collisions
Gợi ý: 8 Giá trị này giúp xác định số lượng Entity tối đa được tính vào việc máy chủ xử lý va chạm Hitbox. Khi đạt đến ngưỡng này, máy chủ sẽ ngừng xử lý thêm các va chạm khác.
Không nên đặt < 3 -- Farm của người chơi vẫn cần hệ thống va chạm này để hoạt động đúng.
|
|
Dù vậy, chớ nhầm lẫn giữa gamerule maxEntityCramming và collisions.max-entity-collisions.
- Gamerule maxEntityCramming quy định số lượng Entity tối đa có thể dồn vô một góc trước khi bắt đầu nhận sát thương “ngạt”. Bạn có thể chỉnh tay bằng lệnh:
/gamerule maxEntityCramming [số] (mặc định là 24)
paper-world-defaults.yml/collisions.fix-climbing-bypassing-cramming-rule
fix-climbing-bypassing-cramming-rule: true
Tùy chọn này quyết định việc các Entity có khả năng leo trèo sẽ bị tính vào giới hạn nhồi vào một góc - gamerule maxEntityCramming hay không.
paper-world-defaults.yml/entities.spawning.per-player-mob-spawn
Đã giải thích ở phần bukkit.yml/spawn-limit --> luôn để phần này thành true. Trong Vanilla bình thường, máy chủ có một con số tổng (ví dụ: 70 quái vật cho toàn bộ server). Thuật toán sẽ quét tất cả các Chunks xung quanh mọi người chơi để tìm chỗ sinh quái.
- Anh Nguyễn Văn A (ngồi chơi ở Nether Waste): Có hàng nghìn khối có thể sinh quái (Air blocks trên nóc Nether). Máy chủ quét đâu cũng thấy chỗ trống, quái vật sẽ "spam" liên tục quanh ổng.
- Chị Dậu (đứng camp tại Nether Ceiling): Cổ đã dày công bao phủ mọi nơi quái xuất hiện bằng Slab, chỉ chừa lại một chỗ trống nhỏ xíu mong rằng sẽ thu được kết quả Farm tốt đẹp ở đây. Cơ mà tỷ lệ máy chủ quét trúng miếng sàn này cực thấp so với không gian bao la quanh người chơi ngồi chơi ở trên.
Kết quả: Player A vô tình "hút" hết giới hạn 70 con quái đó, khiến máy chủ thông báo "Hết chỗ chứa rồi!", và Player B đứng ở Farm Wither cả tiếng đồng hồ mà không thấy một con nào xuất hiện.
paper-world-defaults.yml/chunks.prevent-moving-into-unloaded-chunks
Đề xuất: true
Chặn người chơi di chuyển vào khu vực chưa được tải, nếu cho phép đi vô là thuật toán sẽ dồn mọi nguồn lực để tải cho xong khu vực này --> dẫn tới tình trạng đói tài nguyên ở chỗ khác --> tụt tps toàn máy chủ.
paper-world-defaults.yml/misc.redstone-implementation
Lựa chọn
VANILLA gốc vốn có thuật toán xử lý tín hiệu bụi đá đỏ rất cồng kềnh, tạo ra vô số các cập nhật khối (block updates) đệ quy vô nghĩa, gây tụt tps thê thảm khi máy chủ có các cỗ máy Redstone lớn nhấp nháy liên tục. Trong khi đó, ALTERNATE_CURRENT (hiện đang là "tiêu chuẩn vàng" được cộng đồng Dev khuyên dùng) là một thuật toán tối ưu hóa triệt để lượng lag dư thừa này, nhưng điểm đáng giá nhất là nó giữ nguyên hành vi của 99% các hệ thống redstone thông thường.
www.youtube.com
paper-world-defaults.yml/environment.treasure-maps
Đề xuất: false
Lý do khiến bản đồ kho báu (treasure maps) trở thành "sát thủ" tiêu tốn tài nguyên máy chủ nằm ở cơ chế tìm kiếm cấu trúc (structure lookup) trên luồng xử lý chính (Main Thread). Khi một người chơi mở rương chứa bản đồ hoặc giao dịch với dân làng, máy chủ không chỉ đơn giản là đưa ra một vật phẩm bản đồ bình thường; Minecraft sẽ phải ngay lập tức quét một vùng không gian khổng lồ với bán kính lên tới ~1100 khối chỉ để tìm kiếm tọa độ của một rương kho báu chưa từng được khám phá. Quá trình này cực kỳ nặng nề vì hai yếu tố:
- Nếu khu vực đó chưa được tạo (un-generated chunks), máy chủ buộc phải tính toán trước các thuật toán tạo địa hình và cấu trúc công trình ngầm chỉ để xác định xem rương có nằm ở đó hay không;
- Toàn bộ quá trình tìm kiếm này thường chặn đứng mọi hoạt động khác của máy chủ cho đến khi có kết quả. Nếu rương ở quá xa hoặc địa hình phức tạp, việc tính toán có thể kéo dài hàng trăm ms, gây ra các cú giật Lag hoặc thậm chí khiến hệ thống Watchdog của Paper tại
spigot.ymltự động tắt máy chủ vì tưởng là bị treo.
paper-world-defaults.yml/chunks.max-auto-save-chunks-per-tick
chunks:
auto-save-interval: default
delay-chunk-unloads-by: 15s
fixed-chunk-inhabited-time: -1
flush-regions-on-save: false
max-auto-save-chunks-per-tick: 15
max-auto-save-chunks-per-tick trong paper-global.yml thực chất là van tiết lưu - throttle cho hệ thống I/O của đĩa cứng. Đây là một trong những thiết lập nguy hiểm nhất vì nó trực tiếp can thiệp vào cách máy chủ xả dữ liệu từ RAM xuống ổ cứng và cũng cực kỳ cần thiết khi người chơi thường xuyên của máy chủ bạn tăng lên. Thử hình dung quá trình này như một dây chuyền sản xuất nhé:- Chunks modified (trong RAM): Là sản phẩm đang chờ đóng gói.
- Auto-save interval: Là thời gian quy định cho một đợt vận chuyển (mặc định thường là 6000 ticks ~ 5 phút).
- max-auto-save-chunks-per-tick: Là tốc độ băng chuyền vận chuyển sản phẩm ra kho (ổ cứng).
Cái bẫy nằm ở đây:
- Nếu đặt giá trị quá cao: Ép khô ổ cứng (đặc biệt nếu dùng HDD hoặc SSD rẻ tiền) phải ghi quá nhiều dữ liệu cùng lúc, dẫn đến hiện tượng Disk I/O Latency. Máy chủ sẽ bị khựng - freeze trong vài ms hoặc lâu hơn mỗi khi đến chu kỳ save, khiến tps tụt thảm hại.
- Nếu đặt giá trị quá thấp: Máy chủ không kịp đẩy dữ liệu ra ổ cứng trước khi chu kỳ save tiếp theo bắt đầu. Dữ liệu tồn đọng trong RAM ngày càng nhiều, dẫn đến tình trạng dồn hàng tắc nghẽn. Khi RAM đầy hoặc đến ngưỡng giới hạn, máy chủ sẽ cố gắng "xả" toàn bộ số khu vực khổng lồ đó cùng một lúc, gây ra cú lag kinh hoàng, thậm chí làm sập máy chủ do Watchdog phát hiện phản hồi quá chậm.
Công thức max-auto-save-chunks-per-tick * auto-save-interval ≥ total loaded chunks that requires save chính là bài toán cân bằng lưu lượng chuẩn nhất. Cần tham khảo thêm max-auto-save-chunks-per-tick tại PaperMC discord khi mà số lượng người chơi máy chủ thường xuyên >40.
paper-world-defaults.yml/tick-rates
tick-rates:
behavior:
villager:
validatenearbypoi: 120
container-update: 3
dry-farmland: 90
grass-spread: 45
mob-spawner: 18
sensor:
villager:
secondarypoisensor: 240
wet-farmland: 28
Máy chủ lớn, nhiều Farm nông sản/Spawner sẽ cần ưu tiên giá trị này, từ thời gian đất khô dần tới cỏ lan mỗi tick.
paper-world-defaults.yml/environment.optimize-explosions
Đề xuất: true Tất cả những vật phẩm có thể gây nổ, sẽ được Paper sử dụng thuật toán tối ưu hóa riêng.
paper-world-defaults.yml/entities.armor-stands
Đề xuất: falseTắt hết mấy dạng LagMachine sử dụng Armor-stand dồn ứ một góc, đồng thời làm hỏng những máy Farm chuyên dụng sử dụng Armor-stand như
Best Way to Travel in the End: Ice Highways with Guardrails
www.youtube.com
paper-world-defaults.yml/tick-rates
behavior:
villager:
validatenearbypoi: 60
acquirepoi: 120
sensor:
villager:
secondarypoisensor: 80
nearestbedsensor: 80
villagerbabiessensor: 40
playersensor: 40
nearestlivingentitysensor: 40
- Sensor: "Xung quanh có cái giường nào không?", "Thằng thợ rèn kia đang ở đâu?", "Có zombie không?"
- Behavior: "Đi ngủ thôi", "Đi làm việc thôi", "Đi buôn chuyện nào", "Nhận nghề ở đâu ấy nhỉ?"
acquirepoi(Acquire Point of Interest) là hành động dân làng đi tìm các điểm quan trọng như giường, bàn làm việc hoặc chuông, Thay vì để chúng kiểm tra mỗi giây một lần gây lag, quản trị viên tăng con số này lên là dân làng sẽ lười kiểm tra hơn, CPU được nghỉ ngơi nhiều hơn == Dân làng hơi "đần" tí, đôi khi chúng đứng ngơ ra một lúc mới tìm thấy cái giường/bàn làm việc ngay trước mặt.
paper-world-defaults.yml/lootables
Hệ thống lootables của Paper là một công cụ tuyệt vời để giữ cho tài nguyên trong thế giới (như rương ở Dungeon, Desert Temple, End City...) không bao giờ bị cạn kiệt, đặc biệt hữu ích cho các máy chủ SMP đông người tồn tại lâu dài. Nếu quản trị viên muốn tạo ra một nền kinh tế mà người chơi phải liên tục khám phá nhưng không thể "cắm trại" tại một chỗ để Farm rương, hãy thử thiết lập này nhé:
lootables:
auto-replenish: true
max-refills: -1
refresh-max: 6d
refresh-min: 1d
reset-seed-on-fill: true
restrict-player-reloot: true
restrict-player-reloot-time: 7d
retain-unlooted-shulker-box-loot-table-on-non-player-break: true
Việc hiểu rõ các kịch bản này sẽ giúp bạn giải đáp thắc mắc của người chơi khi họ thấy rương "lúc có đồ lúc không":
- Đã lấy rùi: Người chơi cần chờ ít nhất X ngày mới Loot lại được rương đã lấy, người mới thì khum cần.
- Vấn đề "Rác": Nếu nhét đầy rác vô rương, khỏi còn chỗ mà thêm đồ mới.
- Cơ chế cộng dồn: Nếu người chơi A chỉ lấy đồ ngon và để lại đồ thừa, người chơi B đến sau sẽ nhận được:
Đồ thừa của A + Đồ mới của B-- rương sẽ ngày càng đầy cho đến khi có người dọn sạch.
Chỉ rương sinh ra tự nhiên mới có tác dụng. Nếu người chơi phá rương để lấy gỗ, rương đó vĩnh viễn biến mất khỏi hệ thống hồi đồ.
Nhớ thông báo lên Discord: "Rương tự nhiên sẽ tự hồi đồ sau mỗi X ngày nếu khum bị phá nhen". Cơ chế này giúp bảo tồn tài nguyên thế giới cực tốt mà quản trị viên không cần phải khởi tạo dữ liệu bản đồ thường xuyên. Hay ở chỗ, những máy chủ mới tại Việt Nam như VietRealms, có thể kết hợp song song TerraLith datapack chuyên tạo địa hình mới + Skript Nexo + API của Terra Plugin (thông qua Java/Kotlin) cùng IrisDimensions cho ra công trình tùy chỉnh, liên tục tạo lại rương đồ tùy chỉnh mới và vô hạn nội dung trong máy chủ. Mỗi tội cần phải yêu môn Toán do rất nặng về kiến thức.
paper-world-defaults.yml/feature-seeds.generate-random-seeds-for-all
Đề xuất: true
Cơ chế sản sinh sub-seed ngẫu nhiên cho máy chủ, tính năng này thường được gọi là Feature Seed Randomization (Ngẫu nhiên hóa hạt giống tính năng). Các công cụ như SeedcrackerX có thể phân tích vị trí các loại công trình, cấu trúc quặng hoặc cây cối để tính toán ngược lại hạt giống Seed gốc của thế giới. Một khi có được Seed, người chơi có thể dùng các trang web như Chunkbase để biết chính xác vị trí mọi loại quặng, mọi công trình hiếm, gây mất cân bằng nghiêm trọng. Tùy chọn này sẽ thay đổi "hạt giống con" (sub-seed), khiến các công cụ đó trả về kết quả sai lệch hoàn toàn. Mỗi tội nếu bạn dọn dẹp dung lượng ổ đĩa định kỳ như máy chủ mình, là sẽ gặp lỗi như ảnh:
Kết hợp với LeafMC đã tích hợp sẵn Mã hóa 1024bit hạt giống, đảm bảo không thể lần ra được.
⚠︎ Tips Quản trị viên phải đổifeature-seedstrong Paper và cả mấy cáistructure-seedtrongspigot.yml+paper-world-defaults.yml/feature-seeds.generate-random-seeds-for-all+leaf/fast-biome-manager-seed-obfuscation+leaf/secure-seedthì mới gọi là có chút "phòng thủ" nhá![]()