GithubHelp home page GithubHelp logo

bobby's Introduction

Bobby

Modrinth CurseForge

Bobby is a Minecraft mod which allows for render distances greater than the server's view-distance setting.

It accomplishes this goal by recording and storing (in .minecraft/.bobby) all chunks sent by the server which it then can load and display at a later point when the chunk is outside the server's view-distance.

Optionally, it can also use an existing single player world to load in chunks which the server has never sent before. To make use of this feature, simply rename the world folder (not the name of the world! the name of its folder!) to "bobby-fallback".

Bobby automatically reloads its config file when it is changed. For an in-game config screen, install ModMenu and ClothConfig.

Setup

For setup instructions please see the fabric wiki page that relates to the IDE that you are using.

License

Bobby is provided under the terms of the GNU Lesser General Public License Version 3 or (at your option) any later version. See LICENSE.md and LICENSE.LESSER.md for the full license text.

bobby's People

Contributors

alpeerkaraca avatar altirix avatar banthenons avatar cadenkriese avatar felix14-v2 avatar fitfc avatar gazmanovich avatar inqurity avatar johni0702 avatar krisaphalon avatar mechazawa avatar notlin4 avatar q2297045667 avatar triphora avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bobby's Issues

Can't load chunks saved using bobby as a single player world.

After moving the region files created using bobby into a single player world, when you load the world all chunks get regenerated, if spectatorsGenerateChunks is set to false the chunks just don't load.
The log just says
[23:32:53] [Server thread/ERROR]: Chunk file at [X, Y] is missing level data, skipping
for every chunk loaded.
Opening the world in minutor or amulet does work properly.
Using bobby 2.0.4 and Ubuntu 20.04.

Chunks do not have time to load on drawing above 32 chunks

When playing on a drawing above 32 chunks in a single world, chunks often do not have time to load
Here is a visual video dimostration

Also, as a possible correction in the view-distance-overwrite = 32 parameter, add the ability to set more than 32 chunks, namely as many as specified in the max render
since this is a single player game this can be completely fixed
I really hope that this can be fixed
https://youtu.be/0qahY_rbFRU

Doesn't work in the nether

The mod doesn't seem to save the chunks in the nether. Havent tested the end but i assume it's the same issue there

In case this is intentional, could we get an option to turn on/off specific worlds?

Crash When Loading Too Many Chunks?

`---- Minecraft Crash Report ----
// Don't do that.

Time: 2/19/21 8:44 PM
Description: Unexpected error

java.lang.NullPointerException: Unexpected error
at Not Enough Crashes deobfuscated stack trace.(1.16.3+build.47)
at net.minecraft.world.World.redirect$bmf000$checkProcessTEs(World:5753)
at net.minecraft.world.World.tickBlockEntities(World:504)
at net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld:176)
at net.minecraft.client.MinecraftClient.tick(MinecraftClient:1531)
at net.minecraft.client.MinecraftClient.render(MinecraftClient:996)
at net.minecraft.client.MinecraftClient.run(MinecraftClient:656)
at net.minecraft.client.main.Main.main(Main:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224)
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Affected level --
Details:
All players: 1 total; [class_746['WyattPlayzMC'/2519759, l='ClientLevel', x=-139.38, y=128.73, z=105.02]]
Chunk stats: SodiumChunkCache: 121 F: 443 M: 525 L: 0
Level dimension: minecraft:overworld
Level spawn location: World: (2840,138,1343), Chunk: (at 8,8,15 in 177,83; contains blocks 2832,0,1328 to 2847,255,1343), Region: (5,2; contains chunks 160,64 to 191,95, blocks 2560,0,1024 to 3071,255,1535)
Level time: 65755 game time, 224004058 day time
Server brand: Waterfall <- §9TechMedia Server Core§r
Server type: Non-integrated multiplayer server
Stacktrace:
at net.minecraft.class_638.method_8538(class_638.java:449)
at net.minecraft.class_310.method_1587(class_310.java:2183)
at fudge.notenoughcrashes.mixinhandlers.InGameCatcher.handleClientCrash(InGameCatcher.java:28)
at net.minecraft.class_310.modify$zhg000$onCrash(class_310.java:5352)
at net.minecraft.class_310.method_1514(class_310.java:679)
at net.minecraft.client.main.Main.main(Main.java:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224)
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27)
-- System Details --
Details:
Minecraft Version: 1.16.3
Minecraft Version ID: 1.16.3
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_51, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 3615982944 bytes (3448 MB) / 5368709120 bytes (5120 MB) up to 7516192768 bytes (7168 MB)
CPUs: 12
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx7G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Suspected Mods: Fabric Loader (fabricloader)
Fabric Mods:
advancedchat: AdvancedChat 2.1.0
advancednbttooltip: Advanced NBT Tooltips 1.0.5
amecsapi: Amecs API 1.1.1+mc1.16-rc1
antighost: AntiGhost 1.16.5-fabric0.30.0-1.1.3
auto_third_person: Auto Third Person 1.1.0
autoconfig1u: Auto Config v1 Updated 3.3.1
bbor: BoundingBoxOutlineReloaded 2.4-1.16.3
betterpingdisplay: Better Ping Display 1.1
blue_endless_jankson: jankson 1.2.0
bobby: Bobby 0.2.0
branding: Branding 1.0.0
carpet: Carpet Mod in Fabric 1.4.12
carpet-extra: Carpet Extra 1.4.27
chatcalc: ChatCalc 2.2
chesttracker: Chest Tracker 0.7.11
clientcommands: Client Commands 2.4.7
cloth-basic-math: Cloth Basic Math 0.5.1
cloth-client-events-v0: Cloth Client Events v0 1.4.9
cloth-config2: Cloth Config v4 4.8.3
cmdkeybind: Command Macros 1.5.0-1.16
com_electronwill_night-config_core: core 3.6.0
com_electronwill_night-config_toml: toml 3.6.0
com_github_therandomlabs_trlutils-config: TRLUtils-Config master-SNAPSHOT
com_github_therandomlabs_trlutils-fabric: TRLUtils-Fabric 1.16-SNAPSHOT
com_moandjiezana_toml_toml4j: toml4j 0.7.2
completeconfig: CompleteConfig 0.9.0
cotton-client-commands: Cotton Client Commands 1.0.1+1.16-rc1
crowdin-translate: CrowdinTranslate 1.2
customwindowtitle: Custom Window Title 1.1.0
dontdropit: Don't Drop It! 2.1.0+1.16
dynamicfps: Dynamic FPS 2.0.1
easiervillagertrading: EasierVillagerTrading 1.16.5-fabric0.30.0-1.5.3
fabric: Fabric API 0.25.0+build.415-1.16
fabric-api-base: Fabric API Base 0.2.0+9f0fb4b895
fabric-biome-api-v1: Fabric Biome API (v1) 3.0.0+8367596d95
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.4+c6a8ea8995
fabric-command-api-v1: Fabric Command API (v1) 1.0.9+a4467d2a95
fabric-commands-v0: Fabric Commands (v0) 0.2.0+52d3083695
fabric-containers-v0: Fabric Containers (v0) 0.1.8+045df74f95
fabric-content-registries-v0: Fabric Content Registries (v0) 0.1.9+059ea86695
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.2+b7f9825d95
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.1+f8ac1db295
fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.0+16acbe5b95
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.3+a4467d2a95
fabric-item-api-v1: Fabric Item API (v1) 1.2.0+f8ac1db295
fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.1+a4467d2a95
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.1+730711c695
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.0+3fa9f7c595
fabric-language-scala: Fabric Language Scala 1.0.0
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.2.0+74cc3b2095
fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.1+432ea18895
fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.2+b764ce9995
fabric-models-v0: Fabric Models (v0) 0.1.1+f8ac1db295
fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.5+b50ffc7b95
fabric-networking-v0: Fabric Networking (v0) 0.1.10+e00ecb5f95
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.9.2+a89534ab95
fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.1+a4467d2a95
fabric-particles-v1: fabric-particles-v1 0.2.2+fb0d9b0e95
fabric-permissions-api-v0: fabric-permissions-api 0.1-SNAPSHOT
fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.6.1+a4467d2a95
fabric-renderer-api-v1: Fabric Renderer API (v1) 0.3.3+a4467d2a95
fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.3+a4467d2a95
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 2.2.0+f8ac1db295
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.4+f8ac1db295
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.12+f8ac1db295
fabric-rendering-v0: Fabric Rendering (v0) 1.1.1+f8ac1db295
fabric-rendering-v1: Fabric Rendering (v1) 1.3.1+f8ac1db295
fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.3.1+facf3bbf95
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.0+8724984195
fabric-structure-api-v1: Fabric Structure API (v1) 1.1.0+f8ac1db295
fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.0.3+ac8e8c5995
fabric-textures-v0: Fabric Textures (v0) 1.0.5+a4467d2a95
fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.4+2b46237995
fabricloader: Fabric Loader 0.10.6+build.214
jankson: Jankson 3.0.1+j1.2.0
kyrptconfig: Kytpt Config 1.1.4-1.16
libgui: LibGui 3.2.2+1.16.3
lionutils: LionUtils 6.0.1+1.16
litematica: Litematica 0.0.0-dev.20200913.215807
lithium: Lithium 0.6.0
lithium-api: Lithium API 0.6.0
malilib: MaLiLib 0.10.0-dev.21+arne.1
minecraft: Minecraft 1.16.3
minihud: MiniHUD 0.19.0-dev.20200912.222204
mobcountmod: MobCountMod 1.6.0-dev.20201204.233518
modmenu: Mod Menu 1.14.6+build.31
multiconnect-api: MultiConnect API 1.3.9
notenoughcrashes: Not Enough Crashes 3.1.5
phosphor: Phosphor 0.6.0+build.7
player_events: Player Events 2.0.0
player_events_api: Player Events API 2.0.0
quickcraft: Quickcraft 1.2.4
rad: Reload Audio Driver 1.0.1
randompatches: RandomPatches 1.16.1-0.0.0.5-fabric
signsearcher: Sign Searcher 0.2.1+mc1.16.3
sodium: Sodium 0.1.0
spark: spark 1.4.3
torohealth: ToroHealth Damage Indicators 1.16.3-fabric-4
tweakeroo: Tweakeroo 0.10.0-dev.20210209.145902
uglyscoreboardfix: Ugly Scoreboard Fix 1.1.0
usefulutilities: Useful Utilities 1.4.2
xaerominimap: Xaero's Minimap 20.29.1
xaeroworldmap: Xaero's World Map 1.11.4
Launched Version: 1.16.3
Backend library: LWJGL version 3.2.2 build 10
Backend API: GeForce RTX 2060/PCIe/SSE2 GL version 4.6.0 NVIDIA 457.30, NVIDIA Corporation
GL Caps: Using framebuffer using OpenGL 3.0
Using VBOs: Yes
Is Modded: Probably not. Jar signature remains and client brand is untouched.
Type: Client (map_client.txt)
Graphics mode: fast
Resource Packs: bbor (incompatible), vanilla, file/NoteBlocks, file/Meme, fabric/advancedchat, fabric/amecsapi, fabric/autoconfig1u, fabric/bbor, fabric/betterpingdisplay, fabric/carpet, fabric/chesttracker, fabric/clientcommands (incompatible), fabric/cloth-config2, fabric/cmdkeybind, fabric/dontdropit, fabric/dynamicfps, fabric/easiervillagertrading, fabric/fabric, fabric/fabric-api-base, fabric/fabric-biome-api-v1, fabric/fabric-blockrenderlayer-v1, fabric/fabric-command-api-v1, fabric/fabric-containers-v0, fabric/fabric-content-registries-v0, fabric/fabric-crash-report-info-v1, fabric/fabric-events-interaction-v0, fabric/fabric-events-lifecycle-v0, fabric/fabric-game-rule-api-v1, fabric/fabric-item-api-v1, fabric/fabric-item-groups-v0, fabric/fabric-key-binding-api-v1, fabric/fabric-keybindings-v0, fabric/fabric-lifecycle-events-v1, fabric/fabric-loot-tables-v1, fabric/fabric-mining-levels-v0, fabric/fabric-models-v0, fabric/fabric-networking-blockentity-v0, fabric/fabric-networking-v0, fabric/fabric-object-builder-api-v1, fabric/fabric-object-builders-v0, fabric/fabric-registry-sync-v0, fabric/fabric-renderer-api-v1, fabric/fabric-renderer-indigo, fabric/fabric-renderer-registries-v1, fabric/fabric-rendering-data-attachment-v1, fabric/fabric-rendering-fluids-v1, fabric/fabric-rendering-v0, fabric/fabric-rendering-v1, fabric/fabric-resource-loader-v0, fabric/fabric-screen-handler-api-v1, fabric/fabric-tag-extensions-v0, fabric/fabric-textures-v0, fabric/fabric-tool-attribute-api-v1, fabric/fabricloader, fabric/jankson, fabric/libgui, fabric/lionutils, fabric/litematica (incompatible), fabric/lithium, fabric/malilib (incompatible), fabric/minihud (incompatible), fabric/mobcountmod (incompatible), fabric/modmenu, fabric/multiconnect-api, fabric/phosphor, fabric/player_events, fabric/player_events_api, fabric/quickcraft, fabric/rad, fabric/randompatches, fabric/signsearcher, fabric/sodium, fabric/tweakeroo (incompatible), fabric/uglyscoreboardfix, fabric/xaerominimap, fabric/xaeroworldmap
Current Language: English (US)
CPU: 12x Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
Client Crashes Since Restart: 1
Integrated Server Crashes Since Restart: 0`

Got this crash a few times when I loaded possibly a few too many chunks? I am not sure why, but removing the mod resulted in no more crashes. There came a point where every time I joined the server, I would get a crash. I even attempted to compile the source for my minecraft version (1.16.3), but that too resulted in the same crash.

Crash after a few minutes of being connected to a server

Maybe related to #10. My game crashes with bobby with this error message:

The game crashed whilst unexpected error
Error: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 257
Exit Code: -1

and here is the latest log:
latest.log

it also happens without any mods.

Incompatibility with Immersive Portals?

Let me know if you need more details, but here's the gist.
When I use Bobby with my current few mods, it works just as advertised, but when I add Immersive Portals to the mix, Bobby appears to simply stop working. No crashes or anything, but my "artificially expanded" render distance reverts to the normal server render distance.
I don't use many mods at all, typically just Iris, Lithium, and a Leaf Culling mod. So I feel like my setup is sterile enough to deduce that it's just Bobby and Immersive Portals not playing nice. Not sure how though, and I'm not getting any errors or crashes to see why.

Sodium compatibility issue

When using Bobby 1.1.4 with a self build version of Sodium I get this error from Sodium (Newest version from the default branch)

https://ghostbin.co/paste/66vm7mj

I also have a older version of Sodium and with this version I dont get this error.
When join a server while this error occurs Bobby doesn't load any more chunks than the normal server distance.
When I remove Bobby and start my own build Sodium version I don't get the error anymore.

Water not rendering

water on bobby chunks doesnt seem to render (i use optifine so that might be the problem)
it looks normal when i come closer, and it still has a blue look to it so it might just be the way water is rendered (no idea)

image

Player falls into the void after teleporting big distance

I'm playing on Wynncraft with this mod, in combination with Sodium. It works great, the only thing is that when I get teleported a big distance I often fall into the void because the chunks near the player don't load. Sometimes I don't fall down, but just hover in place.
Reloading all chunks doesn't work, I have to relog in order to fix this.

This is what it looks like:
2021-08-28_11 56 41

Any ideas as to how to fix this? It looks like the server isn't fast enough in sending the chunks, but in vanilla this works just fine!

Allow render distances higher than 32 chunks for other renderes.

Currently the max view distance overwrite is locked to clients with Sodium, while Canvas is also perfectly capable of delivering excellent performance under high render distances. I'm currently playing in a default minecraft world with Canvas Renderer and have a large view up to the limit rendered while still pushing nearly 200 FPS on what I would call a mid-high end machine running on AMD Ryzen 5 3600 and an overclocked GTX 970.

I'd love to see the higher max render dist support other renderers than just sodium, especially Canvas for now. I believe just using the same config option to replace the maximum value for the vanilla render dist slider as well would be perfect with a warning on the tooltip to not change it if using the vanilla renderer to make it simple 😄

Render distance limited to 32 chunks, even with Sodium?

I tried using both saved server chunks and a bobby-fallback world. I set the max render distance to 72 in the settings file, but chunks just stop loading where they would stop loading if the render distance was set to 32.

Forge 1.12.2 support?

Is it possible to work on Forge 1.12.2 support for this mod? If it is too much to ask for, that is alright.

bobby-fallback not working

Issue: Bobby does not load chunks from bobby-fallback folder

Folder is located in minecraft/saves, called bobby-fallback. Windows won't let me delete the folder when I am in the server, saying it is in use, which suggests it is in the right place. However, the game only shows chunks that I have been sent and does not show chunks from the bobby-fallback folder.

[Feature Request] Config option to differentiate between vanilla chunks and bobby chunks

I'd find it useful for PVP servers so you don't get tricked into thinking there aren't any players in the distance, but then they suddenly pop in once they reach the vanilla chunks. Not necessary to implement right now since the bug with starlight #18 is inadvertently what I'm looking for, but would appreciate it if you implement something like it if/when the bug with starlight is fixed after it leaves beta.

Allow client to generate its own chunks that the server has never sent.

This may already be a feature that I am too smoothbrain to get working. But I would LOVE to let my client render 32 chunks locally, and then when the server sends chunks have them replace the client generated chunks. So you could truly have a render distance further than the server's even if you are exploring new chunks.

I have tried setting up a single player world with identical world gen settings to my server, renaming the folder to bobby-fallback, and setting my client render distance to 32, and bobby's max render distance to 32, and single player server view distance to 32. But I still only see chunks that the server has sent to me. but they do stick around outside of the server's render distance!

Related project

Not an issue, I just want to point to this related project I wrote ages ago.
It had a server component to sync chunks between players, so you can see ahead into areas you haven't explored yet.
It also only stored the exposed chunk sections to not illegally download hidden underground structures (it was being used on a server where secrecy matters and rules disallowed that) and also maybe save on performance.

https://github.com/Gjum/morechunks-forge
https://github.com/Gjum/morechunks-server

Glad to see an updated mod with basically the same features, love your work.

Multiplayer only crash.

[18:19:48] [Render thread/FATAL]: Unreported exception thrown!
java.lang.NoClassDefFoundError: net/minecraft/class_4298
	at de.johni0702.minecraft.bobby.FakeChunkStorage.deserialize(FakeChunkStorage.java:251) ~[bobby-2.0.2.jar:?]
	at de.johni0702.minecraft.bobby.FakeChunkManager.load(FakeChunkManager.java:260) ~[bobby-2.0.2.jar:?]
	at net.minecraft.class_631.substituteFakeChunksForUnloadedRealOnes(class_631.java:1117) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_631.handler$zcm000$bobbySubstituteFakeChunksForUnloadedRealOnes(class_631.java:1155) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_631.method_2859(class_631.java:66) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_634.method_11107(class_634.java:690) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_2666.method_11486(class_2666.java:28) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_2666.method_11054(class_2666.java:6) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_2600.method_11072(class_2600.java:21) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_1255.method_18859(class_1255.java:151) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_1255.method_16075(class_1255.java:125) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_1255.method_5383(class_1255.java:110) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_310.method_1523(class_310.java:1075) ~[intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_310.method_1514(class_310.java:728) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:217) [intermediary-minecraft-1.17.1-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234) [fabric-loader-0.11.6.jar:?]
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153) [fabric-loader-0.11.6.jar:?]
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.6.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
Caused by: java.lang.ClassNotFoundException: net.minecraft.class_4298
	at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) ~[?:?]
	at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
	at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:175) ~[fabric-loader-0.11.6.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
	... 31 more
[18:19:48] [Render thread/INFO]: Reloading ResourceManager: Default, Fabric Mods (Fabric Rendering Data Attachment (v1), Fabric Resource Loader (v0), Mod Menu, Fabric Loader, Fabric Rendering Fluids (v1), Fabric Screen API (v1), Sodium, Bobby, Fabric API Base)
[18:19:48] [Render thread/INFO]: Stopping worker threads
---- Minecraft Crash Report ----
// Uh... Did I do that?

Time: 7/6/21, 6:19 PM
Description: Unexpected error

java.lang.NoClassDefFoundError: net/minecraft/class_4298
	at de.johni0702.minecraft.bobby.FakeChunkStorage.deserialize(FakeChunkStorage.java:251)
	at de.johni0702.minecraft.bobby.FakeChunkManager.load(FakeChunkManager.java:260)
	at net.minecraft.class_631.substituteFakeChunksForUnloadedRealOnes(class_631.java:1117)
	at net.minecraft.class_631.handler$zcm000$bobbySubstituteFakeChunksForUnloadedRealOnes(class_631.java:1155)
	at net.minecraft.class_631.method_2859(class_631.java:66)
	at net.minecraft.class_634.method_11107(class_634.java:690)
	at net.minecraft.class_2666.method_11486(class_2666.java:28)
	at net.minecraft.class_2666.method_11054(class_2666.java:6)
	at net.minecraft.class_2600.method_11072(class_2600.java:21)
	at net.minecraft.class_1255.method_18859(class_1255.java:151)
	at net.minecraft.class_4093.method_18859(class_4093.java:23)
	at net.minecraft.class_1255.method_16075(class_1255.java:125)
	at net.minecraft.class_1255.method_5383(class_1255.java:110)
	at net.minecraft.class_310.method_1523(class_310.java:1075)
	at net.minecraft.class_310.method_1514(class_310.java:728)
	at net.minecraft.client.main.Main.main(Main.java:217)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)
Caused by: java.lang.ClassNotFoundException: net.minecraft.class_4298
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:175)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	... 31 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at de.johni0702.minecraft.bobby.FakeChunkStorage.deserialize(FakeChunkStorage.java:251)
	at de.johni0702.minecraft.bobby.FakeChunkManager.load(FakeChunkManager.java:260)
	at net.minecraft.class_631.substituteFakeChunksForUnloadedRealOnes(class_631.java:1117)
	at net.minecraft.class_631.handler$zcm000$bobbySubstituteFakeChunksForUnloadedRealOnes(class_631.java:1155)
	at net.minecraft.class_631.method_2859(class_631.java:66)
	at net.minecraft.class_634.method_11107(class_634.java:690)
	at net.minecraft.class_2666.method_11486(class_2666.java:28)
	at net.minecraft.class_2666.method_11054(class_2666.java:6)
	at net.minecraft.class_2600.method_11072(class_2600.java:21)
	at net.minecraft.class_1255.method_18859(class_1255.java:151)
	at net.minecraft.class_4093.method_18859(class_4093.java:23)
	at net.minecraft.class_1255.method_16075(class_1255.java:125)

-- Affected level --
Details:
	All players: 3 total; [class_746['_K0RR_'/17762, l='ClientLevel', x=-157.91, y=128.74, z=1136.63], class_745['Naciacia'/368, l='ClientLevel', x=-124.62, y=67.00, z=1187.99], class_745['_Nikola_B_bn_'/18541, l='ClientLevel', x=-127.72, y=67.00, z=1191.22]]
	Chunk stats: 1024, 165 F: 0 L: 0 U: 130
	Level dimension: minecraft:overworld
	Level spawn location: World: (48,66,176), Section: (at 0,2,0 in 3,4,11; chunk contains blocks 48,0,176 to 63,255,191), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
	Level time: 5195295 game time, 32581 day time
	Server brand: vanilla
	Server type: Non-integrated multiplayer server
Stacktrace:
	at net.minecraft.class_638.method_8538(class_638.java:370)
	at net.minecraft.class_310.method_1587(class_310.java:2399)
	at net.minecraft.class_310.method_1514(class_310.java:752)
	at net.minecraft.client.main.Main.main(Main.java:217)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)

-- Last reload --
Details:
	Reload number: 2
	Reload reason: manual
	Finished: Yes
	Packs: Default, Fabric Mods, d159876ade6b41900300c4477177819318c969bc

-- System Details --
Details:
	Minecraft Version: 1.17.1
	Minecraft Version ID: 1.17.1
	Operating System: Linux (amd64) version 5.11.0-18-generic
	Java Version: 16.0.1, Microsoft
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
	Memory: 1649081328 bytes (1572 MiB) / 4294967296 bytes (4096 MiB) up to 4294967296 bytes (4096 MiB)
	CPUs: 8
	Processor Vendor: GenuineIntel
	Processor Name: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
	Identifier: Intel64 Family 6 Model 94 Stepping 3
	Microarchitecture: Skylake (Client)
	Frequency (GHz): 4.00
	Number of physical packages: 1
	Number of physical CPUs: 4
	Number of logical CPUs: 8
	Graphics card #0 name: GP104 [GeForce GTX 1070]
	Graphics card #0 vendor: NVIDIA Corporation (0x10de)
	Graphics card #0 VRAM (MB): 288.00
	Graphics card #0 deviceId: 0x1b81
	Graphics card #0 versionInfo: unknown
	Virtual memory max (MB): 48797.27
	Virtual memory used (MB): 45412.98
	Swap memory total (MB): 32768.00
	Swap memory used (MB): 15188.12
	JVM Flags: 2 total; -Xms4096m -Xmx4096m
	Launched Version: MultiMC5
	Backend library: LWJGL version 3.2.2 build 10
	Backend API: GeForce GTX 1070/PCIe/SSE2 GL version 3.2.0 NVIDIA 460.80, NVIDIA Corporation
	Window size: 3402x1415
	GL Caps: Using framebuffer using OpenGL 3.2
	GL debug messages: 
	Using VBOs: Yes
	Is Modded: Definitely; Client brand changed to 'fabric'
	Type: Client (map_client.txt)
	Graphics mode: fancy
	Resource Packs: Fabric Mods
	Current Language: English (US)
	CPU: 8x Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
#@!@# Game crashed! Crash report saved to: #@!@# /home/k0rr/.local/share/multimc/instances/21w07a/.minecraft/crash-reports/crash-2021-07-06_18.19.48-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed
Process exited with code 255.

Option to Force Generate Bobby-Render-Distance Chunks

It would be cool if there was an option to generate a worlds chunks in the render distance set by bobby, thus allowing the player to explore chunks and fully utilize bobbies increase render distance while exploring new chunks.

The only major downside of this i can see is laggy world generation, but personally, im happy to give up a bit of fps while exploring, to be able to see chunks at an extreme render distance like bobby allows.

Help with port

Hello, I've been working on a forge port of Bobby for the last few days. It seems to be working for the most part, but when I use it in a large modpack I get issues and can't figure out why. If anyone is interested in helping me please lmk, I've made a separate issue with logs on my repo: natrow/sighted#1.

Full repo:
https://github.com/KGB-8375/sighted

Issues with Starlight

When using Bobby with starlight on servers, the chunks that are stored are blacked out.

2021-08-26_13 32 53
2021-08-26_13 32 47

Here is my mods list. It works just fine with every mod but Starlight.
Screenshot 2021-08-26 133346

1.17.1 crash

Crash Report

---- Minecraft Crash Report ----
// Don't do that.

Time: 2021/07/09 12:50
Description: Unexpected error

java.lang.NoClassDefFoundError: net/minecraft/class_4298
	at de.johni0702.minecraft.bobby.FakeChunkStorage.deserialize(FakeChunkStorage.java:251)
	at de.johni0702.minecraft.bobby.FakeChunkManager.load(FakeChunkManager.java:260)
	at net.minecraft.class_631.substituteFakeChunksForUnloadedRealOnes(class_631.java:1117)
	at net.minecraft.class_631.handler$zhc000$bobbySubstituteFakeChunksForUnloadedRealOnes(class_631.java:1155)
	at net.minecraft.class_631.method_2859(class_631.java:66)
	at net.minecraft.class_634.method_11107(class_634.java:690)
	at net.minecraft.class_2666.method_11486(class_2666.java:28)
	at net.minecraft.class_2666.method_11054(class_2666.java:6)
	at net.minecraft.class_2600.method_11072(class_2600.java:21)
	at net.minecraft.class_1255.method_18859(class_1255.java:151)
	at net.minecraft.class_4093.method_18859(class_4093.java:23)
	at net.minecraft.class_1255.method_16075(class_1255.java:125)
	at net.minecraft.class_1255.method_5383(class_1255.java:110)
	at net.minecraft.class_310.method_1523(class_310.java:1075)
	at net.minecraft.class_310.method_1514(class_310.java:728)
	at net.minecraft.client.main.Main.main(Main.java:217)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
Caused by: java.lang.ClassNotFoundException: net.minecraft.class_4298
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:175)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	... 23 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at de.johni0702.minecraft.bobby.FakeChunkStorage.deserialize(FakeChunkStorage.java:251)
	at de.johni0702.minecraft.bobby.FakeChunkManager.load(FakeChunkManager.java:260)
	at net.minecraft.class_631.substituteFakeChunksForUnloadedRealOnes(class_631.java:1117)
	at net.minecraft.class_631.handler$zhc000$bobbySubstituteFakeChunksForUnloadedRealOnes(class_631.java:1155)
	at net.minecraft.class_631.method_2859(class_631.java:66)
	at net.minecraft.class_634.method_11107(class_634.java:690)
	at net.minecraft.class_2666.method_11486(class_2666.java:28)
	at net.minecraft.class_2666.method_11054(class_2666.java:6)
	at net.minecraft.class_2600.method_11072(class_2600.java:21)
	at net.minecraft.class_1255.method_18859(class_1255.java:151)
	at net.minecraft.class_4093.method_18859(class_4093.java:23)
	at net.minecraft.class_1255.method_16075(class_1255.java:125)

-- Affected level --
Details:
	All players: 10 total; [class_746['Unitarou'/7778, l='ClientLevel', x=-5.30, y=65.00, z=-0.13], class_745['sousou1162'/7620, l='ClientLevel', x=-32.62, y=69.00, z=3.55], class_745['shibaken3648'/7685, l='ClientLevel', x=-15.50, y=66.00, z=3.50], class_745['���C���c?'/7309, l='ClientLevel', x=-4.23, y=63.00, z=-7.50], class_745['��a����p���y�������I'/7312, l='ClientLevel', x=-4.63, y=69.00, z=-9.50], class_745['��b-----����-----'/7300, l='ClientLevel', x=-19.46, y=66.00, z=-2.57], class_745['��e-----�C�x���g-----'/7306, l='ClientLevel', x=-18.49, y=66.50, z=11.53], class_745['�d��'/7348, l='ClientLevel', x=-3.61, y=44.00, z=-33.52], class_745['�K�C�h����'/7303, l='ClientLevel', x=-43.56, y=77.00, z=-0.48], class_745['��6-----����-----'/7315, l='ClientLevel', x=-5.47, y=66.00, z=4.48]]
	Chunk stats: 625, 426 F: 79 L: 33 U: 33
	Level dimension: minecraft:overworld
	Level spawn location: World: (-16,66,3), Section: (at 0,2,3 in -1,4,0; chunk contains blocks -16,0,0 to -1,255,15), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
	Level time: 39255 game time, 11118837 day time
	Server brand: Waterfall <- Purpur
	Server type: Non-integrated multiplayer server
Stacktrace:
	at net.minecraft.class_638.method_8538(class_638.java:370)
	at net.minecraft.class_310.method_1587(class_310.java:2399)
	at net.minecraft.class_310.method_1514(class_310.java:752)
	at net.minecraft.client.main.Main.main(Main.java:217)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)

-- Last reload --
Details:
	Reload number: 1
	Reload reason: initial
	Finished: Yes
	Packs: Default, Fabric Mods, MorinoParty-1.6.5.zip, SteaveVoicePack.zip

-- System Details --
Details:
	Minecraft Version: 1.17.1
	Minecraft Version ID: 1.17.1
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 16.0.1, Microsoft
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
	Memory: 3399018680 bytes (3241 MiB) / 4294967296 bytes (4096 MiB) up to 4294967296 bytes (4096 MiB)
	CPUs: 12
	Processor Vendor: GenuineIntel
	Processor Name: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
	Identifier: Intel64 Family 6 Model 158 Stepping 10
	Microarchitecture: Coffee Lake
	Frequency (GHz): 3.70
	Number of physical packages: 1
	Number of physical CPUs: 6
	Number of logical CPUs: 12
	Graphics card #0 name: NVIDIA GeForce GTX 1070 Ti
	Graphics card #0 vendor: NVIDIA (0x10de)
	Graphics card #0 VRAM (MB): 4095.00
	Graphics card #0 deviceId: 0x1b82
	Graphics card #0 versionInfo: DriverVersion=30.0.14.7111
	Memory slot #0 capacity (MB): 8192.00
	Memory slot #0 clockSpeed (GHz): 2.13
	Memory slot #0 type: DDR4
	Memory slot #1 capacity (MB): 8192.00
	Memory slot #1 clockSpeed (GHz): 2.13
	Memory slot #1 type: DDR4
	Virtual memory max (MB): 30658.35
	Virtual memory used (MB): 16927.59
	Swap memory total (MB): 14336.00
	Swap memory used (MB): 217.07
	JVM Flags: 10 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx4G -Xms4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
	Fabric Mods: 
		bobby: Bobby 2.0.2
		com_typesafe_config: config 1.4.1
		confabricate: confabricate 2.1.0-SNAPSHOT+4.1.1
		fabric: Fabric API 0.36.1+1.17
		fabric-api-base: Fabric API Base 0.3.0+a02b446313
		fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.2.0+2b5c62d013
		fabric-biome-api-v1: Fabric Biome API (v1) 3.1.11+c345aea813
		fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.5+a02b446313
		fabric-command-api-v1: Fabric Command API (v1) 1.1.2+6cefd57713
		fabric-commands-v0: Fabric Commands (v0) 0.2.2+92519afa13
		fabric-containers-v0: Fabric Containers (v0) 0.1.12+a02b446313
		fabric-content-registries-v0: Fabric Content Registries (v0) 0.2.2+a02b446313
		fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.5+be9da31013
		fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.11+6cefd57713
		fabric-entity-events-v1: Fabric Entity Events (v1) 1.1.0+a02b446313
		fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.9+a722d8c013
		fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.1+92519afa13
		fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.7+6cefd57713
		fabric-item-api-v1: Fabric Item API (v1) 1.2.4+a02b446313
		fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.10+b7ab612113
		fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.4+a02b446313
		fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.2+36b77c3e13
		fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.4.4+a02b446313
		fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.4+a02b446313
		fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.3+92519afa13
		fabric-models-v0: Fabric Models (v0) 0.3.0+a02b446313
		fabric-networking-api-v1: Fabric Networking API (v1) 1.0.12+6cefd57713
		fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.11+a02b446313
		fabric-networking-v0: Fabric Networking (v0) 0.3.2+92519afa13
		fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.10.9+b7ab612113
		fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.3+a02b446313
		fabric-particles-v1: Fabric Particles (v1) 0.2.4+a02b446313
		fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.10+e2961fee13
		fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.4+5f02c96913
		fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.8+a02b446313
		fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.0+a02b446313
		fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.5+a02b446313
		fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.13+a02b446313
		fabric-rendering-v0: Fabric Rendering (v0) 1.1.2+92519afa13
		fabric-rendering-v1: Fabric Rendering (v1) 1.6.0+a02b446313
		fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.7+b7ab612113
		fabric-screen-api-v1: Fabric Screen API (v1) 1.0.4+155f865c13
		fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.8+a02b446313
		fabric-structure-api-v1: Fabric Structure API (v1) 1.1.12+6cefd57713
		fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.1.4+a02b446313
		fabric-textures-v0: Fabric Textures (v0) 1.0.6+a02b446313
		fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.12+b7ab612113
		fabricloader: Fabric Loader 0.11.6
		io_leangen_geantyref_geantyref: geantyref 1.3.11
		java: OpenJDK 64-Bit Server VM 16
		minecraft: Minecraft 1.17.1
		org_spongepowered_configurate-core: configurate-core 4.1.1
		org_spongepowered_configurate-extra-dfu4: configurate-extra-dfu4 4.1.1
		org_spongepowered_configurate-gson: configurate-gson 4.1.1
		org_spongepowered_configurate-hocon: configurate-hocon 4.1.1
	Launched Version: fabric-loader-0.11.6-1.17.1
	Backend library: LWJGL version 3.2.2 build 10
	Backend API: NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2 GL version 3.2.0 NVIDIA 471.11, NVIDIA Corporation
	Window size: 1920x1080
	GL Caps: Using framebuffer using OpenGL 3.2
	GL debug messages: 
	Using VBOs: Yes
	Is Modded: Definitely; Client brand changed to 'fabric'
	Type: Client (map_client.txt)
	Graphics mode: fancy
	Resource Packs: vanilla, Fabric Mods, file/MorinoParty-1.6.5.zip (incompatible), file/SteaveVoicePack.zip
	Current Language: ���{�� (���{)
	CPU: 12x Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
#@!@# Game crashed! Crash report saved to: #@!@# C:\Users\un_ch\AppData\Roaming\.minecraft\directory\1.17_fabric\crash-reports\crash-2021-07-09_12.50.41-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed

MOD List

fabric-loader-1.11.6-1.17.1
fabric-api-0.36.1+1.17
bobby-2.0.2

Actions to reproduce

Crashes when joining a multi-server after startup.

Singleplayer Double Render Distance Slider

This mod is cool! however i did notice it does nothing on singleplayer.
I was thinking if you could create a second render distance slider (perhaps through modmenu's config settings), that controlled how far out these "illusion chunks" would render, that could be usefull for high-render distance performance in singleplayer. Since the game would not actually have these chunks active and being saved/loaded/etc constantly, and rather just rendered and nothing else.
Regular render distance setting: same as normal
Mod render distance setting: if larger than regular one, the saved chunks are rendered into the excess area. (essentially the same functionality the mod has right now, but with minor* changes to make it possible to use in singleplayer)

On some servers chunks flash when replaced with real chunks

I.e. when walking forward, chunks in front of you will shortly disappear before being replaced with real chunks.
Might be server-specific, happens on Wynncraft but couldn't reproduce in SP in my dev env.
Works as expected with Sodium 0.1 / Bobby 1.1.4.
Tried again with 1.1.4, and it's happening there as well now, so might just have been a change in how Wynncraft sends its chunks, not the Sodium 0.2 changes. Only tested with Sodium but not sure if it's actually required for the issue.

Disable saving loaded chunks to disk

Is it possible to add some sort of option that allows me to load chunks beyond the view distance set by the server but not save them to the disk either? Optifine is able to achieve the same thing this mod does without saving the region file to the disk so I was hoping it would be possible to implement something similar in this mod. The problem I'm experiencing at the moment is that when playing on creative servers with large buildings the folder in .bobby becomes very large because it's storing region files for every area that I visit

Light not being updated when breaking and placing blocks

2021-03-23_15 43 09

It only seems to happen when there's a lot of chunks loaded (like 32 chunk render distance)
Even when placing a torch nearby it doesn't update the light
This is without any light modifying mods, but in case it would help these are the mods i'm using:

Architectury
Autorun
Betterbeds
Blockmeter
Blur
Bobby
Cloth-config
Cmdkeybind
Connected-block-textures
Dynamic-fps
Fabric-api-0.31.0
Fallingleaves
Hydrogen
Indium
Krypton
LazyDFU
Lithium
Logical zoom
Mod menu
Soaring Clouds
Sodium extra
Sodium 0.1.1 (latest build)
Tic-tacs

Very high memory usage

Minecraft frequently crashes due to out of memory errors. I've allocated 4 GB of ram to mc, and without bobby this does not happen nearly as frequently.

Unfortunately it is not in logs, but in MultiMC console it said unable to allocate 1 GB of memory for chunk::new or something like that.

Here are some logs anyway:

[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: java.lang.OutOfMemoryError
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.nmemAllocChecked(MemoryUtil.java:247)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.memAlloc(MemoryUtil.java:271)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at grondag.canvas.buffer.TransferBufferAllocator.claim(TransferBufferAllocator.java:54)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at grondag.canvas.buffer.VboBuffer.(VboBuffer.java:48)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at grondag.canvas.terrain.render.UploadableChunk.(UploadableChunk.java:34)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at grondag.canvas.buffer.encoding.VertexCollectorList.toUploadableChunk(VertexCollectorList.java:123)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at grondag.canvas.terrain.region.BuiltRenderRegion.rebuildOnWorkerThread(BuiltRenderRegion.java:486)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at grondag.canvas.terrain.util.TerrainExecutor$Worker.run(TerrainExecutor.java:116)
[13:19:18] [Canvas Render Thread - 14/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:832)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: java.lang.OutOfMemoryError
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.nmemAllocChecked(MemoryUtil.java:247)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.memAlloc(MemoryUtil.java:271)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at grondag.canvas.buffer.TransferBufferAllocator.claim(TransferBufferAllocator.java:54)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at grondag.canvas.buffer.VboBuffer.(VboBuffer.java:48)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at grondag.canvas.terrain.render.UploadableChunk.(UploadableChunk.java:34)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at grondag.canvas.buffer.encoding.VertexCollectorList.toUploadableChunk(VertexCollectorList.java:123)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at grondag.canvas.terrain.region.BuiltRenderRegion.rebuildOnWorkerThread(BuiltRenderRegion.java:486)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at grondag.canvas.terrain.util.TerrainExecutor$Worker.run(TerrainExecutor.java:116)
[13:19:18] [Canvas Render Thread - 2/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:832)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: java.lang.OutOfMemoryError
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.nmemAllocChecked(MemoryUtil.java:247)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.memAlloc(MemoryUtil.java:271)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at grondag.canvas.buffer.TransferBufferAllocator.claim(TransferBufferAllocator.java:54)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at grondag.canvas.buffer.VboBuffer.(VboBuffer.java:48)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at grondag.canvas.terrain.render.UploadableChunk.(UploadableChunk.java:34)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at grondag.canvas.buffer.encoding.VertexCollectorList.toUploadableChunk(VertexCollectorList.java:123)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at grondag.canvas.terrain.region.BuiltRenderRegion.rebuildOnWorkerThread(BuiltRenderRegion.java:486)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at grondag.canvas.terrain.util.TerrainExecutor$Worker.run(TerrainExecutor.java:116)
[13:19:18] [Canvas Render Thread - 0/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:832)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: java.lang.OutOfMemoryError
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.nmemAllocChecked(MemoryUtil.java:247)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.memAlloc(MemoryUtil.java:271)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at grondag.canvas.buffer.TransferBufferAllocator.claim(TransferBufferAllocator.java:54)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at grondag.canvas.buffer.VboBuffer.(VboBuffer.java:48)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at grondag.canvas.terrain.render.UploadableChunk.(UploadableChunk.java:34)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at grondag.canvas.buffer.encoding.VertexCollectorList.toUploadableChunk(VertexCollectorList.java:123)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at grondag.canvas.terrain.region.BuiltRenderRegion.rebuildOnWorkerThread(BuiltRenderRegion.java:486)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at grondag.canvas.terrain.util.TerrainExecutor$Worker.run(TerrainExecutor.java:116)
[13:19:18] [Canvas Render Thread - 11/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:832)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: java.lang.OutOfMemoryError
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.nmemAllocChecked(MemoryUtil.java:247)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.memAlloc(MemoryUtil.java:271)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at grondag.canvas.buffer.TransferBufferAllocator.claim(TransferBufferAllocator.java:54)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at grondag.canvas.buffer.VboBuffer.(VboBuffer.java:48)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at grondag.canvas.terrain.render.UploadableChunk.(UploadableChunk.java:34)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at grondag.canvas.buffer.encoding.VertexCollectorList.toUploadableChunk(VertexCollectorList.java:123)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at grondag.canvas.terrain.region.BuiltRenderRegion.rebuildOnWorkerThread(BuiltRenderRegion.java:486)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at grondag.canvas.terrain.util.TerrainExecutor$Worker.run(TerrainExecutor.java:116)
[13:19:18] [Canvas Render Thread - 10/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:832)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: java.lang.OutOfMemoryError
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.nmemAllocChecked(MemoryUtil.java:247)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at org.lwjgl.system.MemoryUtil.memAlloc(MemoryUtil.java:271)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at grondag.canvas.buffer.TransferBufferAllocator.claim(TransferBufferAllocator.java:54)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at grondag.canvas.buffer.VboBuffer.(VboBuffer.java:48)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at grondag.canvas.terrain.render.UploadableChunk.(UploadableChunk.java:34)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at grondag.canvas.buffer.encoding.VertexCollectorList.toUploadableChunk(VertexCollectorList.java:123)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at grondag.canvas.terrain.region.BuiltRenderRegion.rebuildOnWorkerThread(BuiltRenderRegion.java:486)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at grondag.canvas.terrain.util.TerrainExecutor$Worker.run(TerrainExecutor.java:116)
[13:19:18] [Canvas Render Thread - 3/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:832)

Incompatibility with multiconnect

Issues at multiconnect: Earthcomputer/multiconnect#228

Chests, signs and playerheads are invisible when using Multiconnect
Connecting with 1.17.1 to a 1.16.5 server

When loading in new chunks this is send in the logs:

[14:31:46] [Render thread/FATAL]: Error executing task on Client
java.lang.NullPointerException: Cannot invoke "net.earthcomputer.multiconnect.protocols.generic.blockconnections.ChunkConnector.onNeighborChunkLoaded(net.minecraft.class_2350)" because the return value of "net.earthcomputer.multiconnect.protocols.generic.blockconnections.IBlockConnectableChunk.multiconnect_getChunkConnector()" is null
	at Not Enough Crashes deobfuscated stack trace.(1.17.1+build.32) ~[?:?]
	at net.minecraft.client.network.ClientPlayNetworkHandler.localvar$bed000$fixChunk(ClientPlayNetworkHandler:2977) ~[?:?]
	at net.minecraft.client.network.ClientPlayNetworkHandler.onChunkData(ClientPlayNetworkHandler:664) ~[?:?]
	at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket:96) ~[?:?]
	at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket:22) ~[?:?]
	at net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils:21) ~[?:?]
	at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor:151) ~[?:?]
	at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor:23) ~[?:?]
	at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor:125) ~[?:?]
	at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor:110) ~[?:?]
	at net.minecraft.client.MinecraftClient.render(MinecraftClient:1075) ~[?:?]
	at net.minecraft.client.MinecraftClient.run(MinecraftClient:728) ~[?:?]
	at net.minecraft.client.main.Main.main(Main:217) [intermediary-minecraft-1.17.1-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234) [fabric-loader-0.11.6.jar:?]
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153) [fabric-loader-0.11.6.jar:?]
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.6.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.