FartherViewDistance 9.5.2

Let the server view distance 15+ max 127 | Async | Multithread

  1. XUAN_Cat
    Native Minecraft Version:
    1.19
    Tested Minecraft Versions:
    • 1.14
    • 1.15
    • 1.16
    • 1.17
    • 1.18
    • 1.19
    Languages Supported:
    https://crowdin.com/project/spigot-fartherviewdistance
    Get the help/pre-release from Discord

    [​IMG]



    - Server above paper (airplane/purpur), paper.yml no-tick-view-distance to -1
    - Server under spigot (bukkit), plugin's config.yml server-tick-max-generate-amount to 0 and
    read-server-loaded-chunk to false
    - Minecraft version updated, need use --forceUpgrade in startup script

    - Prevention XRAY but server not included, you need paper anti-xray



    Support:
    • Paper
      • 1.19.0
      • 1.18.2
      • 1.17.1
      • 1.16.5
      • 1.15.2
      • 1.14.4
    • Spigot
      • 1.19.0
      • 1.18.2
      • 1.17.1
      • 1.16.5
      • 1.15.2
      • 1.14.4


    Description:
    • Multithread
    • Most of the time, it is read chunk directly from the region cache
    • This allows players to view a larger distance of chunks independent of what is actually loaded
    • Extended view distance chunks are not ticked
    • Mostly asynchronous
    • Will not send chunk that exceed the player client view distance
    • Automatically adapt to the player internet speed
    • Server stable tps 20, also possible
    • Prevention XRAY (Only chunk by this plugin)


    Example:
    • Suppose view-distance is set to 8 in server.properties, and max-view-distance is set to 25 the config.yml of this plugin
    • Two permissions the player has:
      • max_view_distance.20
      • max_view_distance.30
        Will automatically find the largest one, so 30, If no permissions are set, the value of max-view-distance
    • If the player's view distance is less than or equal to 8, the view distance will be fully provided by the server
    • If the view distance is greater than 8, the view distance will be supplemented by the plugin
    • If the view distance is greater than 30, the player will receive the maximum 25 chunks provided by the plugin, The reason it is not 30 is because the maximum value of max-view-distance is 25


    Command:
    • /viewdistance reload
      Reload configuration
    • /viewdistance report <server|thread|world|player>
      Print report
    • /viewdistance start
      Continue execution
    • /viewdistance stop
      Suspension execution


    Permissions:
    • max_view_distance.<Max view distance>
    • command.viewdistance


    Placeholder:
    • %viewdistance_delay%
      Temporarily stop send chunk time (unit: millisecond)
    • %viewdistance_max_extend_view_distance%
    • %viewdistance_now_extend_view_distance%
    • %viewdistance_now_server_view_distance%
    • %viewdistance_network_speed_avg%
      Average network speed of a single tick (unit: bytes)
    • %viewdistance_network_report_load_fast_5s%
      Count of fast chunk processed in 5 seconds (unit: chunk)
    • %viewdistance_network_report_load_fast_1m%
      Count of fast chunk processed in 1 minute (unit: chunk)
    • %viewdistance_network_report_load_fast_5m%
      Count of fast chunk processed in 5 minute (unit: chunk)
    • %viewdistance_network_report_load_slow_5s%
      Count of slow chunk processed in 5 seconds (unit: chunk)
    • %viewdistance_network_report_load_slow_1m%
      Count of slow chunk processed in 1 minute (unit: chunk)
    • %viewdistance_network_report_load_slow_5m%
      Count of slow chunk processed in 5 minute (unit: chunk)
    • %viewdistance_network_report_consume_5s%
      Packets processed in 5 seconds (unit: bytes)
    • %viewdistance_network_report_consume_1m%
      Packets processed in 1 minute (unit: bytes)
    • %viewdistance_network_report_consume_5m%
      Packets processed in 5 minute (unit: bytes)
    • %viewdistance_forcibly_max_distance%
    • %viewdistance_forcibly_send_second_max_bytes%


    Config:
    Additional language:
    • zh-tw
    • en
    Code (YAML):
    # 視野距離模式
    #   越大的視野距離需要更多的計算
    #   可用選項:
    #     (參數)  = `max-view-distance` 最大有效為 | 每位玩家需要多少的 RAM 來計算視圖
    #      "X31"  =  31 | long[  63] = byte[  504] 特別的視圖計算方式, 速度最快
    #      "X63"  =  63 | long[ 254] = byte[ 2032]
    #     "X127"  = 127 | long[1020] = byte[ 8160]
    #     "X383"  = 383 | long[3064] = byte[24512] 現在的客戶端應該顯示不了這麼遠
    # View distance mode
    #   The larger the field of view distance requires more calculations
    #   Options:
    #     (VALUE) = The `max-view-distance` maximum effective is | How much RAM does each player need to calculate the view
    #      "X31"  =  31 | long[  63] = byte[  504] Special view calculation method, fastest
    #      "X63"  =  63 | long[ 254] = byte[ 2032]
    #     "X127"  = 127 | long[1020] = byte[ 8160]
    #     "X383"  = 383 | long[3064] = byte[24512] The current client should not be able to display this far
    view-distance-mode
    : "X31"

    # 伺服器本身的視野距離
    #   只是為了防止錯誤 (某些最佳化核心)
    #   設置為 -1 則使用伺服器本身 view-distance 的數值
    # The field of view of the server itself
    #   Just to prevent errors (some optimization cores)
    #   Set to -1 uses the value of view-distance of the server itself
    server-view-distance
    : -1

    # 自動適應玩家網路速度
    #   採用特殊的方式計算玩家網路速度
    #   盡可能不發送高於玩家網速的區塊
    # Automatically adapt to the player internet speed
    #   Use a special method to calculate the player network speed
    #   Try not to send chunk higher than the player network speed
    auto-adapt-player-network-speed
    : true
    # 能使用多少玩家的網路速度 (百分比)
    #   如果檢測出網速為 2 MB/s, 0.6 = 60%, 只允許發送 1.2 MB/s
    # How many player internet speed can be used (percentage)
    #   If the detected network speed is 2 MB/s, 0.6 = 60%, only 1.2 MB/s is allowed to be sent
    player-network-speed-use-degree
    : 0.6

    # 異步執行緒數量
    #   建議值 1~10 (也可以更高)
    # Number of asynchronous threads
    #   Recommended value 1~10 (can also be higher)
    async-thread-amount
    : 2

    # 伺服器每秒能傳輸多少數據 (單位 bytes)
    #   預設值 20971520 bytes = 20 MB
    # How much data can the server transmit per second (Unit bytes)
    #   Default value 20971520 bytes = 20 MB
    server-send-second-max-bytes
    : 20971520

    # 伺服器每個遊戲刻度能生成多少個區塊
    #   產生地形時, CPU負擔會很大
    #   設置為 0 不生成
    # How many chunk can the server generate per game tick
    #   When generating terrain, the CPU workload is greater
    #   Set to 0 Does not generate
    server-tick-max-generate-amount
    : 2

    # 計算丟失的高度圖
    #   關閉可以減少每個區塊所需的計算量
    #   但可能會造成 雪 / 雨 穿透地底的錯誤
    # Calculate the missing height map
    #   Closing can reduce the amount of calculation required for each chunk
    #   But it may cause snow/rain to penetrate the ground by mistake
    calculate-missing-height-map
    : false

    # 不要快速處理區塊
    #   每次讀取都加載一次
    # Don't fast process chunk
    #   Load once for each sent
    disable-fast-process
    : false

    # 獨立的世界配置
    # Independent world configuration
    worlds
    :
     # 全部世界的預設值
      # default value for all worlds
      default
    :
       # 是否啟用擴展視野距離
        # Whether to enable extended field of view distance
        enable
    : true

        # 最大視野距離
        #   客戶端有效視野距離不會超過此值
        #     客戶端 < 擴展極限 = 客戶端
        #     客戶端 > 擴展極限 = 擴展極限
        #     客戶端 < 伺服器   = 伺服器
        # Max view distance
        #   The effective view distance of the client will not exceed this value
        #     Client < Extend = Client
        #     Client > Extend = Extend
        #     Client < Server = Server
        max-view-distance
    : 31

        # 世界每個遊戲刻度能生成多少個區塊
        #   產生地形時, CPU負擔會很大
        #   設置為 0 不生成
        # How many chunk can the world generate per game tick
        #   When generating terrain, the CPU workload is greater
        #   Set to 0 Does not generate
        world-tick-max-generate-amount
    : 2

        # 發送的區塊是否包含磚瓦實體資料
        # 若不發送則玩家依然看的到那些方塊, 除非使用 `prevent-xray`
        #   例如 箱子 / 告示牌 / 床
        # Whether the sent chunk contains tile entity data
        # If you don’t send it, the player will still see those blocks, unless you use `prevent-xray`
        #   E.g. chest / sign / bed
        send-title-data
    : true

        # 世界每秒能傳輸多少數據 (單位 bytes)
        #   預設值 10485760 bytes = 10 MB
        # How much data can the world transmit per second (Unit bytes)
        #   Default value 10485760 bytes = 10 MB
        world-send-second-max-bytes
    : 10485760

        # 玩家每秒能傳輸多少數據 (單位 bytes)
        #   預設值 2097152 bytes = 2 MB
        # How much data can the world transmit per second (Unit bytes)
        #   Default value 2097152 bytes = 2 MB
        player-send-second-max-bytes
    : 2097152

        # 可以讀取伺服器已加載的區塊
        #   如果關閉, 一律讀取最後保存的狀態
        # Can read the chunk loaded by the server
        #   If closed, always read the last saved state
        read-server-loaded-chunk
    : true

        # 發送前的延遲
        #   每次切換世界 / 長距離傳送 / 死亡重生, 都要等待多少毫秒才傳輸區塊
        #   建議數值 2000 ~ 20000 (2 ~ 20秒)
        # Delay before send
        #   Every time you switch the world / long distance transmission / death rebirth, how many milliseconds do you have to wait before sending the chunk
        #   Recommended value 2000~20000 (2~20 seconds)
        delay-before-send
    : 5000

        # 預防方塊透視外掛
        #   暴力替換, 不使用任何計算
        #   此配置轉換的方塊僅此插件發送的區塊! 非此插件發送與伺服器本身發送的互不干涉!
        #   如果伺服器需要一樣的功能, 使用 paper 核心並啟用 'paper.yml'->'anti-xray'
        # Prevent chunk perspective plugin
        #   Brute force replacement without any calculation
        #   The block converted by this configuration is only the chunk sent by this plugin! plugin send and server send itself does not interfere with each other!
        #   Server needs the same function, use the paper core and enable 'paper.yml'->'anti-xray'
        #
        # * https://paper.readthedocs.io/en/latest/server/configuration.html#anti-xray
        prevent-xray
    :
         # 是否啟用預防方塊透視外掛
          # Whether to enable the prevent xray
          enable
    : true

          # 轉換清單
          #   格式
          #     轉換成方塊:
          #     - 被轉換的方塊A
          #     - 被轉換的方塊B
          #     - 被轉換的方塊C
          # Conversion list
          #   format
          #     Convert to block:
          #     - Target block A
          #     - Target block B
          #     - Target block C
          conversion-list
    :
            STONE
    :
             - COAL_ORE
              - IRON_ORE
              - COPPER_ORE
              - GOLD_ORE
              - REDSTONE_ORE
              - EMERALD_ORE
              - LAPIS_ORE
              - DIAMOND_ORE
            DEEPSLATE
    :
             - DEEPSLATE_COAL_ORE
              - DEEPSLATE_IRON_ORE
              - DEEPSLATE_COPPER_ORE
              - DEEPSLATE_GOLD_ORE
              - DEEPSLATE_REDSTONE_ORE
              - DEEPSLATE_EMERALD_ORE
              - DEEPSLATE_LAPIS_ORE
              - DEEPSLATE_DIAMOND_ORE
            NETHERRACK
    :
             - NETHER_GOLD_ORE
              - NETHER_QUARTZ_ORE
              - ANCIENT_DEBRIS
            BLACKSTONE
    :
             - GILDED_BLACKSTONE

        # 是否要計算權限
        #   尋找玩家是否有 max_view_distance.<最大視野距離> 權限
        # Want to calculate permissions
        #   Find out if the player has max_view_distance.<Maximum view distance> permission
        player-independent-permissions
    : true

        # 超速則不提供擴展視野距離
        #   水平方向的移動速度高於此值則暫時停止提供擴展視野距離
        #   內部計算公式為 `sqrt(square(lastX - moveX) + square(lastZ - moveZ)) > speeding-not-send`
        #   設置為 -1 則忽略
        #   如果有啟用 prevent-xray
        #     非常不推薦設置高於 1.2 或 關閉
        #     高速移動會造成區塊覆蓋引起礦物消失
        # Speeding does not provide extend view distance
        #   If the moving speed in the horizontal direction is higher than this value, it will temporarily stop provide extend view distance
        #   The internal calculation formula is `sqrt(square(lastX - moveX) + square(lastZ - moveZ)) > speeding-not-send`
        #   Set to -1 to ignore
        #   If have prevent-xray enabled
        #     Setting higher than 1.2 or off is highly discouraged
        #     High-speed movement can cause chunk overlays that cause minerals to disappear
        speeding-not-send
    : 1.2

      # 地獄由於遊戲機制無法看太遠
      # Hell cannot be seen too far due to game mechanics
      world_nether
    :
       # 是否啟用擴展視野距離
        # Whether to enable extended field of view distance
        enable
    : false

Recent Updates

  1. 9.5.2
  2. 9.5.1
  3. 9.4.1

Recent Reviews

  1. jokbon
    jokbon
    5/5,
    Version: 9.5.2
    Developer you can always trust

    jasksdbnSDNds klnasdlkndSLKNDLKG
    sdgmM;OSDMSD:M<
  2. AxlRose01
    AxlRose01
    5/5,
    Version: 9.5.1
    This is by far the BEST plugin I have downloaded on 2022!

    I found it by mistake looking for something else and decided to try it. This plugin gave new life to my server and puts to shame the built in optimizations by Paper loading chunks and its forks. Sorry!

    This plugin should be part of Spigot/Paper. I had to go back to Waterfall proxy and I hate it, Velocity was giving way faster performance on my proxy. But once I installed the plugin on all back end servers and Waterfall on the proxy. It feels like my servers run faster than when I was using Velocity!

    Please developer continue doing an awesome job with this plugin. I really praise the performance that this plugin gives to my servers. My default settings are as follow:

    paper.yml (1.18.2) no-tick-view-distance: -1
    server.properties view-distance=10, simulation-distance=4

    paper-global.yml (1.19) did not find any view distance settings
    server.properties view-distance=10, simulation-distance=4

    server-view-distance: -1 (FartherViewDistance plugin config.yml)
  3. Galysso
    Galysso
    5/5,
    Version: 9.2.3
    The plugin does exactly what it is supposed to do. The Discord server associated with the plugins of Xuan (the developer) is open and Xuan is reactive to solve issues.
  4. MarinCod
    MarinCod
    4/5,
    Version: 9.2.1
    Hey! All the time I see this message in the console when new players enter. Can this be fixed somehow?

    [16:40:12 ERROR]: Could not pass event PlayerJoinEvent to FartherViewDistance v9.2.1
    java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/v1_18_R2/entity/CraftPlayer
    at xuan.cat.fartherviewdistance.code.branch.v18.Branch_18_Minecraft.injectPlayer(Branch_18_Minecraft.java:90) ~[FartherViewDistance-9.2.1.jar:?]
    at xuan.cat.fartherviewdistance.code.ChunkEvent.event(ChunkEvent.java:35) ~[FartherViewDistance-9.2.1.jar:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor46.execute(Unknown Source) ~[?:?]
    1. XUAN_Cat
      Author's Response
      The latest version no longer supports 1.18.1......
  5. AnimalMaceYT
    AnimalMaceYT
    4/5,
    Version: 9.1.2
    Great resource, but it's sad to see that 1.18 isn't supported (I can't update to 1.18.2 yet)
  6. Sakuyoyo
    Sakuyoyo
    5/5,
    Version: 9.1.1
    很不错的插件!在需要临时扩大视距拍照时非常好用 ----------------------------------------------------------------
  7. icezaft09
    icezaft09
    5/5,
    Version: 8.7.8
    very nice and long long distance view best for beautiful view and for nice photo shoot,

    but some time crash on Purpur spigot (paper fork) can sometime you decide to develop on it please ?

    this will make you have a good merit in your life , Thank you
    1. XUAN_Cat
      Author's Response
      If it is a bug, it will be fixed
  8. Iris_l1n
    Iris_l1n
    4/5,
    Version: 8.7.6
    I should say it is really awsome.
    But it runs a little flaw everytime I shutdown ther server.
    I am using paperMC1.18.1-165build, full version is [here](https://paste.ubuntu.com/p/fcxC7dNCgJ/) . Please check
  9. ArcaneTheGuy
    ArcaneTheGuy
    5/5,
    Version: 8.7.4
    This is a high-quality plugin with so much utility for the servers which use this. While 1.18 has made world reloading even more strenuous on servers, this plugin (almost) flawlessly allows my players to see further with excellent performance.

    I wish I could give this plugin 6 stars just for being what my server has needed.
  10. MrAxeTv
    MrAxeTv
    5/5,
    Version: 8.7.4
    Grate plugin just curies will this not use more ram and cpu and load more chunks ?