← Назад к ресурсам

Vanilla Like Experience

Vanilla Like Experience | Say No PaperMC

Modrinth lightweight multiplayer optimization

Описание

English version # Vanilla Like Experience Tired of servers called `Vanilla` or `Vanilla+`? Most likely, those servers run on the `PaperMC` core. **There's nothing vanilla about them.** I created a **truly vanilla server** based on the **Fabric** core. **Fabric** itself **does not change vanilla mechanics** — it only provides a layer for server modification **without serious interference** with redstone mechanisms and mob spawn rates. I made a pack that **players don't need to download**. All mods run **exclusively on the server side**, delivering maximum performance **without interfering with gameplay**. --- ## What sets my pack apart from others? When you download `Vanilla-Like-Experience.mrpack`, you're not just getting a set of mods. You're getting a **ready-to-use server environment with pre-configured settings.** Instead of throwing a bunch of mods together and hoping they won't break vanilla, I gathered only targeted solutions for real problems: chunk generation, networking, memory, security. The main point: not a single mod touches vanilla mechanics. Redstone, spawn rates, mob behavior — everything works just like in the original. --- ## How to install? `.mrpack` is a ready-made modpack format. At its core, it's a regular archive that opens with 7-Zip or WinRAR. **If you're setting up a local server**: 1. Download `Vanilla-Like-Experience.mrpack` 2. Drag it into any launcher that supports .mrpack: `Modrinth Launcher`, `Prism Launcher`, `ATLauncher` 3. The launcher will download all mods and place them into the correct folders automatically Done. **The pack was built specifically for panel game hostings**. 1. Go to the `Modpacks` section 2. Install the `Vanilla-Like-Experience.mrpack` pack 3. Download the `Fabric` server core from: https://fabricmc.net/use/server/ 4. Via the `file manager`, move the core into the `/files` folder 5. Start the server. Done. --- ## License **MIT** — everything is open, everything is transparent. System Requirements for Hosting ## Processor Below are the test benches I used to test the pack. | Processor | Frequency | Players | Note | |-----------|-----------|---------|------| | **Ryzen 9 7950X3D** | 5.7 GHz | ~50 | Panel hosting, 12 GB RAM | | **Ryzen 9 5950X** | 4.9 GHz | ~45 | Panel hosting, 12 GB RAM | | **Ryzen 5 5600G** | 4.7 GHz | ~35 | Home server, 32 GB RAM | | **Intel Xeon E5-2680v4** | 3.6 GHz | ~25 | Home server, 32 GB RAM | > **Important:** For high player counts, I recommend setting `simulation-distance=4` and `view-distance=10`. > With default settings, the player count will be lower. --- ## RAM The pack consumes **RAM** moderately thanks to the `FerriteCore` mod. > **Important:** Make sure to pre-generate the territory using the `Chunky` mod | Online | Recommended RAM | Note | |--------|-----------------|------| | **up to 25 players** | 6-8 GB | Comfortable gameplay | | **25-35 players** | 7-9 GB | Stable performance | | **35-50 players** | 10-12 GB | For large servers with a buffer | > **In practice:** Ryzen 9 7950X held 50 players with 9 GB RAM. But for reliability, I recommend 12 GB. --- ## Storage | Parameter | Recommendation | |-----------|----------------| | **Minimum** | 15 GB for a small server with 20 players | | **Recommended** | 30-50 GB (accounting for world pre-generation) | > **World size calculator:** https://onlinemo.de/world > Use this site to calculate the exact size of your world before pre-generation. --- ## Final Minimum Requirements | Component | Minimum | |-----------|---------| | **Processor** | 2-3 threads, frequency from 3.5 GHz | | **RAM** | 4-5 GB (for 15-20 players) | | **Storage** | 15 GB | --- The pack also works on weaker hardware. The main limitation is single-core frequency, not the number of threads. **RAM** is less critical — the main thing is that the processor can handle it. Not enough performance? / Immersive Optimization **Install the mod:** https://modrinth.com/mod/immersive-optimization --- The fundamental rule of Minecraft is that **everything is processed on a single thread**. The server must update everything **20 times per second**. One update cycle is a **tick**. Minecarts, hoppers, mob AI, mob farms, and redstone mechanisms. All of this combined must tick **every tick** (20 times per second). Problems start when players: - Build massive mob farms where hundreds of entities spawn, die, and drop loot. - Explore the world and unintentionally load hundreds of mobs sitting deep underground in caves. These mobs also constantly tick, loading the server with their AI and logic. All of this creates **a massive load on the server's main thread**. --- ## What does Immersive Optimization do? The mod gets clever. **When a mob is behind a wall** — the mod gives it **fewer ticks**. The player can't see it anyway, so there's no need to run its logic. **When you have hundreds of animals** — the ones players are currently interacting with tick more often. **When a mob is far away** — the mod checks the distance and makes the mob tick less frequently. **Instead of a thousand entities in a single tick** — the mod **spreads the load**: each one ticks in turn. --- ## Why isn't this mod in my pack? My pack is built to deliver the **maximum vanilla 100% experience**. The most important things are **stability and predictability**. **Immersive Optimization** does the **opposite**. *Yes, it's powerful. Yes, it gives a crazy boost.* **But at a cost:** - Due to **variable latency**, hoppers in different chunks run at different speeds. - **Redstone mechanisms** get fluctuating timings. - If you have a **mob farm** designed around precise per-tick calculations — everything breaks. That's just how this mod works. --- ## The verdict **Immersive Optimization is a great mod — just not for this pack.** If performance at any cost matters to you — install it. If stable mechanism behavior matters to you — leave the pack as is. **I choose stability and predictability.** Velocity + FabricProxy-Lite / Connecting via Proxy --- **Velocity** is a proxy server that lets you combine dozens of servers into one network. A player connects to Velocity, authenticates once, and can switch between servers without re-logging: - **Fabric** — Vanilla - **NeoForge** — tech pack - **Forge** — adventure pack This allows the player to switch between servers **seamlessly**, without re-logging. --- ## How does it work? Velocity accepts the player, and FabricProxy-Lite on each server forwards their data (nickname, UUID, skin, IP) further. Without FabricProxy-Lite, Velocity won't know who joined the Fabric server. Mod link: https://modrinth.com/mod/fabricproxy-lite --- ## Folder structure ``` /velocity/ ├── velocity.toml └── forwarding.secret /fabric-server/ ├── mods/ │ └── fabricproxy-lite.jar └── config/ └── FabricProxy-Lite.toml ``` --- ## Setup ### 1. Configure Velocity Open `velocity.toml`, find the line: `player-info-forwarding-mode = "modern"` Open `forwarding.secret`, copy the key. You'll need it for Fabric. --- ### 2. Configure Fabric Place the `FabricProxy-Lite.jar` mod into the `mods/` folder. Start the server once — `config/FabricProxy-Lite.toml` will appear. Open it and paste the key from `forwarding.secret`: `secret = "your_key"` --- ### 3. Start Start **Velocity** first, then the **Fabric server**. Done. The player joins Velocity → chooses a server → lands on Fabric already authenticated. --- ## Important - Proxy settings **do not touch vanilla mechanics** - Everything works at the connection level, not at the game level --- Mod List (Vanilla Like Experience) > **Explained in simple words, no neural networks.** > **What the mods are and what I changed in them.** --- ## Optimization and Performance **C2ME** (Concurrent Chunk Management Engine) Chunk generation works asynchronously. Reduces load on the main thread. **What I did:** Limited it to 2 threads. In testing, excessive multithreading had the opposite effect. Spikes when players join, unstable MSPT. ``` globalExecutorParallelism = 2 threadPoolPriority = 3 [noTickViewDistance] maxConcurrentChunkLoads = 3 chunkSendingSpeedMultiplierPercentage = 150 [ioSystem] chunkDataCacheSoftLimit = 2048 chunkDataCacheLimit = 8192 [generalOptimizations] midTickChunkTasksInterval = 100000 ``` **Lithium** Optimizes physics, mob AI, and redstone. Doesn't interfere with game mechanics. **FerriteCore** Reduces RAM usage by optimizing data storage. **VMP (Very Many Players)** Optimizes entities with large player counts and the network side. **Noisium** Optimizes world generation. **Krypton** Optimizes the network side. **Async** — Added asynchronous operation of entities. Conflicted with Carpet. Carpet is used for diagnostics instead. --- ## Protection and Security **AntiXray** X-ray protection. A pre-configured config is already included in the archive. **EasyAuth** Authentication for cracked servers. What I did: ``` premium-auto-login=false # The pack is aimed at cracked play floodgate-auto-login=false # Bedrock is not planned yet vanish-until-auth=true # Unauthenticated players are hidden session-timeout=1800 # 30 minutes — a comfortable timeout ``` **Vanish (by DrexHD)** — added. Required for `vanish-until-auth=true` to work. Works at the packet level — a player won't notice they're being watched. Also useful for moderation. **EasyWhitelist** Solves the UUID problem for cracked players. On Fabric, cracked players don't have UUIDs (unlike Paper). The command works by nickname, not by UUID. If you have a licensed server — remove it along with authentication. **SkinRestorer** — switched to manual mode. **What it was:** The mod frequently sent requests to Mojang / Ely.by / MineSkin. When a skin was missing, it created a `not found` with a stack trace. Errors flooded the logs, memory, and Java's garbage collector. The result was cached for only 60 seconds — a minute later it all repeated. **What it is now:** - Does not check skins automatically on join - Does not make unnecessary API requests - Does not try to assign a skin to the player on its own If a player wants a skin — they set it manually: `/skin set ` --- ## Management and Utilities **LuckPerms** Permissions. Installed for SimpleVoiceChat. You can also add prefixes. **TAB** Nice-looking TAB. Displays health and ping above players. **PlaceholderAPI** For placeholders. **Spark** Profiling. Analyzes everything happening on the server. If it's lagging or you're low on RAM — it will show the problem and how to fix it. **TAB TPS** Displays TPS, MSPT, and PING in the BossBar. **Chunky** Territory pre-generation. **Important:** pre-generate 7000×7000 in the overworld and the end, 900 blocks in the nether. Works with C2ME — chunks generate 3 times faster. **FabricProxy-Lite** Needed if you're using Velocity + Fabric. --- ## Voice Chat and Emotes **SimpleVoiceChat** Convenient voice chat. **Emotecraft** Emotes. **PlayerAnimationLib** Library for Emotecraft. **DynamicLights** — removed. **What it was:** During Spark analysis the mod consumed **15.94% MSPT**: ``` ServerFunctionManager.execute() — 15.94% Commands.executeCommandInContext() — 15.94% EntityArgument.getOptionalEntities() — 2.68% EntitySelector.findEntities() — 2.55% ``` **Why:** almost every player always has a glowing item in hand — this triggers the function every tick. **What it is now:** The mod was removed. Players decide for themselves whether they need dynamic lighting (client-side mod). --- ## Libraries and API - Fabric API - Fabric Language Kotlin - ForgeConfigAPIPort - MidnightLib --- ## Summary - All mods **do not change, add, or alter** vanilla mechanics - Redstone mechanisms and mob spawn rates are **untouched** - X-ray protection and authentication are present - Voice chat and emotes are purely for atmosphere --- Русская версия # Vanilla Like Experience Вам тоже надоели сервера под названием `Vanilla` или `Vanilla+`? Скорее всего, эти сервера на базе ядра `PaperMC`. **Ничего ванильного в них нет.** Я создал **настоящий ванильный сервер** на основе ядра **Fabric**. **Fabric** сам по себе **не изменяет ванильные механики** — он лишь даёт прослойку для модификации сервера **без серьёзных вмешательств** в редстоун-механизмы и спавн-рейт мобов. Я сделал сборку, которую **не нужно качать игрокам**. Все моды работают **исключительно на серверной стороне**, обеспечивая максимальную производительность **без вторжения в игровой процесс**. --- ## Что отличает мою сборку от других? Когда вы скачиваете `Vanilla-Like-Experience.mrpack`, вы получаете не просто набор модов. Вы получаете **готовое серверное окружение и настроенные параметры.** Вместо того чтобы накидать кучу модов и надеяться, что они не сломают ваниль, я собрал только точечные решения для реальных проблем: генерация чанков, сеть, память, безопасность. Главное: ни один мод не трогает ванильные механики. Редстоун, спавн-рейт, поведение мобов — всё как в оригинале. --- ## Как установить? `.mrpack` — это готовый формат для модпаков. По своей сути — обычный архив, который открывается 7-Zip или WinRAR. **Если ты поднимаешь сервер локально**: 1. Скачай `Vanilla-Like-Experience.mrpack` 2. Перетащи его в любой лаунчер, поддерживающий .mrpack: `Modrinth Launcher`, `Prism Launcher`, `ATLauncher` 3. Лаунчер сам скачает все моды и разложит их по папкам Готово. **Сборка создавалась именно под игровые панельные хостинги**. 1. Зайди в раздел `Modpacks` 2. Установи сборку `Vanilla-Like-Experience.mrpack` 3. Скачай ядро `Fabric` по ссылке: https://fabricmc.net/use/server/ 4. Через `файловый менеджер` перекинь ядро в папку `/files` 5. Запусти сервер. Готово. --- ## Лицензия **MIT** — всё открыто, всё прозрачно. Системные требования для хостинга ## Процессор Ниже приведены тестовые стенды, на которых я тестировал сборку. | Процессор | Частота | Игроки | Примечание | |-----------|---------|--------|------------| | **Ryzen 9 7950X3D** | 5.7 ГГц | ~50 | Панельный хостинг, 12 ГБ RAM | | **Ryzen 9 5950X** | 4.9 ГГц | ~45 | Панельный хостинг, 12 ГБ RAM | | **Ryzen 5 5600G** | 4.7 ГГц | ~35 | Домашний сервер, 32 ГБ RAM | | **Intel Xeon E5-2680v4** | 3.6 ГГц | ~25 | Домашний сервер, 32 ГБ RAM | > **Важно:** Для высокого онлайна рекомендую выставить `simulation-distance=4`, а `view-distance=10`. > При стандартных настройках онлайн будет ниже. --- ## Оперативная память Сборка умеренно потребляет **RAM** благодаря моду `FerriteCore`. > **Важно:** Обязательно прогрузите территорию с помощью мода `Chunky` | Онлайн | Рекомендуемый RAM | Примечание | |--------|-------------------|------------| | **до 25 игроков** | 6-8 ГБ | Комфортная игра | | **25-35 игроков** | 7-9 ГБ | Стабильная работа | | **35-50 игроков** | 10-12 ГБ | Для больших серверов с запасом | > **По факту:** Ryzen 9 7950X держал 50 игроков при 9 ГБ RAM. Но для надёжности рекомендую 12 ГБ. --- ## Хранилище | Параметр | Рекомендация | |----------|--------------| | **Минимум** | 15 ГБ для небольшого сервера на 20 человек | | **Рекомендуется** | 30-50 ГБ (с учётом прегенерации мира) | > **Калькулятор размера мира:** https://onlinemo.de/world > С помощью этого сайта вы можете рассчитать точный размер вашего мира до прегенерации. --- ## Итоговые минимальные требования | Компонент | Минимум | |-----------|---------| | **Процессор** | 2-3 потока, частота от 3.5 ГГц | | **Оперативная память** | 4-5 ГБ (для 15-20 игроков) | | **Хранилище** | 15 ГБ | --- Сборка работает и на более слабом железе. Главное ограничение — частота одного ядра, а не количество потоков. **RAM** менее критична — главное, чтобы процессор тянул. Не хватает оптимизации? / Immersive Optimization **Установить мод:** https://modrinth.com/mod/immersive-optimization --- Мировое правило Minecraft завязано на том, что **всё обрабатывается в одном потоке**. Сервер обязан обновить всё **20 раз в секунду**. Один цикл обновления — это **тик** (tick). Вагонетки, воронки, ИИ мобов, фермы мобов и редстоун-механизмы. Всё это в совокупности должно тикать **каждый тик** (20 раз в секунду). Проблемы начинаются, когда игроки: - Создают огромные фермы мобов, где сотни существ появляются, умирают и роняют лут. - Исследуют мир и невольно прогружают сотни мобов, которые сидят глубоко в пещерах. Эти мобы тоже постоянно тикают, нагружая сервер своим интеллектом и логикой. Всё это вызывает **огромную нагрузку на основной поток** сервера. --- ## Что делает Immersive Optimization? Мод идёт на хитрость. **Когда моб за стеной** — мод даёт ему **меньше тиков**. Игрок всё равно не видит, логика не нужна. **Когда у вас сотни животных** — чаще тикают те, с кем прямо сейчас взаимодействуют игроки. **Когда моб далеко** — мод проверяет расстояние и заставляет моба тикать реже. **Вместо тысячи сущностей за один тик** — мод **размывает нагрузку**: каждый тикает по очереди. --- ## Почему этого мода нет в моей сборке? Моя сборка заточена на то, чтобы дать **максимальный ванильный 100% опыт**. Самое главное — это **стабильность и предсказуемость**. **Immersive Optimization** делает **противоположное**. *Да, он мощный. Да, он даёт дикий буст.* **Но ценой:** - Из-за **переменной задержки** воронки в разных чанках работают с разной скоростью. - **Редстоун-механизмы** получают плавающие тайминги. - Если у вас **ферма мобов**, рассчитанная на точность каждого тика — всё сбивается. Так устроены особенности этого мода. --- ## Вердикт **Immersive Optimization — отличный мод, но не для этой сборки.** Если тебе важна производительность любой ценой — ставь. Если тебе важна стабильная работа механизмов — оставь сборку как есть. **Я выбираю стабильность и предсказуемость.** Velocity + FabricProxy-Lite / Подключение через прокси --- **Velocity** — это прокси-сервер, позволяющий объединять десятки серверов в одну сеть. Игрок подключается к Velocity, авторизуется один раз и может переключаться между серверами без перезахода: - **Fabric SMP** — ванильная сборка - **NeoForge** — техническая сборка - **Forge** — приключенческая сборка Всё это позволяет игроку переключаться между серверами **бесшовно**, без перезахода. --- ## Как это работает? Velocity принимает игрока, а FabricProxy-Lite на каждом сервере передаёт его данные (ник, UUID, скин, IP) дальше. Без FabricProxy-Lite Velocity не поймёт, кто зашёл на Fabric-сервер. Ссылка на мод: https://modrinth.com/mod/fabricproxy-lite --- ## Структура папок ``` /velocity/ ├── velocity.toml └── forwarding.secret /fabric-server/ ├── mods/ │ └── fabricproxy-lite.jar └── config/ └── FabricProxy-Lite.toml ``` --- ## Настройка ### 1. Настраиваем Velocity Открываешь `velocity.toml`, находишь строку: `player-info-forwarding-mode = "modern"` Открываешь `forwarding.secret`, копируешь ключ. Он понадобится для Fabric. --- ### 2. Настраиваем Fabric Кладёшь мод `FabricProxy-Lite.jar` в папку `mods/`. Запускаешь сервер один раз — появится `config/FabricProxy-Lite.toml`. Открываешь, вставляешь ключ из `forwarding.secret`: `secret = "твой_ключ"` --- ### 3. Запускаешь Сначала **Velocity**, потом **Fabric-сервер**. Готово. Игрок заходит на Velocity → выбирает сервер → попадает на Fabric уже авторизованным. --- ## Важно - Настройки прокси **не трогают ванильные механики** - Всё работает на уровне подключения, а не на уровне игры --- Список модов (Vanilla Like Experience) > **Объясняю простыми словами, без нейросетей.** > **Что за моды и что я в них поменял.** --- ## Оптимизация и производительность **C2ME** (Concurrent Chunk Management Engine) Генерация чанков работает асинхронно. Снижает нагрузку с основного потока. **Что я сделал:** Ограничил до 2 потоков. На тестах избыточная многопоточность давала обратный эффект. Всплески при заходе игроков, нестабильный MSPT. ``` globalExecutorParallelism = 2 threadPoolPriority = 3 [noTickViewDistance] maxConcurrentChunkLoads = 3 chunkSendingSpeedMultiplierPercentage = 150 [ioSystem] chunkDataCacheSoftLimit = 2048 chunkDataCacheLimit = 8192 [generalOptimizations] midTickChunkTasksInterval = 100000 ``` **Lithium** Оптимизирует физику, ИИ мобов и редстоун. Не лезет в игровые механики. **FerriteCore** Уменьшает потребление RAM за счёт оптимизации хранения данных. **VMP (Very Many Players)** Оптимизирует сущности при большом онлайне и сетевую часть. **Noisium** Оптимизирует генерацию мира. **Krypton** Оптимизирует сетевую часть. **Async** — удалён. Конфликтовал с Carpet. Вместо него теперь Carpet для диагностики. --- ## Защита и безопасность **AntiXray** Защита от рентгена. В архиве уже лежит настроенный конфиг. **EasyAuth** Авторизация для пиратских серверов. Что я сделал: ``` premium-auto-login=false # Сборка нацелена на пиратскую игру floodgate-auto-login=false # Bedrock пока не планируется vanish-until-auth=true # Неавторизованные игроки скрыты session-timeout=1800 # 30 минут — комфортный таймаут ``` **Vanish (от DrexHD)** — добавлен. Нужен для работы `vanish-until-auth=true`. Работает на уровне пакетов — игрок не спалит, что за ним наблюдают. Пригодится и для модерации. **EasyWhitelist** Решает проблему UUID для пиратских игроков. На Fabric у пиратов нет UUID (в отличие от Paper). Команда работает по нику, а не по UUID. Если сервер лицензионный — удаляй вместе с авторизацией. **SkinRestorer** — переведён в ручной режим. **Что было:** Мод часто отправлял запросы в Mojang / Ely.by / MineSkin. При отсутствии скина создавал `not found` со стектрейсом. Ошибки забивали логи, память и сборщик мусора Java. Результат кэшировался всего на 60 секунд — через минуту всё повторялось. **Что стало:** - Не проверяет скины автоматически при входе - Не делает лишние запросы к API - Не пытается сам выдать игроку скин Если игрок хочет скин — ставит вручную: `/skin set ` --- ## Управление и утилиты **LuckPerms** Права. Поставлен для SimpleVoiceChat. Можно добавлять префиксы. **TAB** Красивый TAB. Отображает здоровье и пинг над игроками. **PlaceholderAPI** Для плейсхолдеров. **Spark** Профилирование. Анализирует всё, что происходит на сервере. Если лагает или не хватает RAM — покажет проблему и как исправить. **TAB TPS** Выводит TPS, MSPT и PING в BossBar. **Chunky** Предварительная прогрузка территории. **Важно:** прогрузи 7000×7000 в обычном мире и энде, 900 блоков в незере. Работает с C2ME — чанки генерируются в 3 раза быстрее. **FabricProxy-Lite** Нужен, если используешь Velocity + Fabric. --- ## Голосовой чат и эмоции **SimpleVoiceChat** Удобный голосовой чат. **Emotecraft** Эмоции. **PlayerAnimationLib** Библиотека для Emotecraft. **DynamicLights** — удалён. **Что было:** При анализе Spark мод потреблял **15.94% MSPT**: ``` ServerFunctionManager.execute() — 15.94% Commands.executeCommandInContext() — 15.94% EntityArgument.getOptionalEntities() — 2.68% EntitySelector.findEntities() — 2.55% ``` **Почему:** у каждого игрока в руках почти всегда светящийся предмет — это триггерит функцию каждый тик. **Что стало:** Мод удалён. Игроки сами решают, нужна ли им динамическая подсветка (клиентский мод). --- ## Библиотеки и API - Fabric API - Fabric Language Kotlin - ForgeConfigAPIPort - MidnightLib --- ## Итог - Все моды **не меняют, не добавляют и не изменяют** ванильные механики - Редстоун-механизмы и спавн-рейт мобов **не затронуты** - Защита от рентгена и авторизация есть - Голосовой чат и эмоции — чисто для атмосферы