The next update will be available on Friday, October 31, towards the evening (GMT+1)				
		
		 
				
				
	
	
		
																				
				- 
					
						
							
							
							
								
								
								
									Good day, I want to request several things to the plugin API that will make developing some plugins easier: 
 
 1. Ability to control some post effects for players - fog color, fog intensity and ambient light. This will make possible custom underground and underwater rendering, probably some custom effects on specific biomes and so on. 
 
 2. Ability to attach same LOD parameters to assets as the game uses with same distances. This should make plugin graphics configurable together with game graphics and will make LOD configuration easier. 
 
 3. Custom definitions. I think that it was planned earlier (and probably for final API version), so I just included it here. This will be a really powerful feature that will finally make custom things possible. 
 
 4. Different world generation events to change and modify ho chunks are generated and populated 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		PrefabAsset asset = PrefabAsset.loadFromAssetBundle(bundle , "wurfel2.obj"); 
 
 That will work only if prefab has "wurfel2.obj" name in Unity itself, in most cases prefab names are different from model names, for example this is how my crystal named:  
 
 
 And its mesh:  
 
 
 Both don't have .obj extension (even when model is OBJ), since Unity will change the name of imported models, and prefabs can have name that is different from model 
 
 
 
- 
					
						
							
							
							
								
								
								
									I think I finally understand your problem. I'm not sure that you can load Mesh directly from unity bundle, but you can load a prefab from it: 
	
		
		
				Prefab prefab = new Prefab();
 prefab.setPrefab(PrefabAsset.loadFromAssetBundle(bundle, "path/to/refab/in/bundle"));
 prefab.setLocalPosition(player.getPosition()); // Or any other pos
 player.addGameObject(prefab); 
 
 
 And you can change prefab material: 
	
		
		
				MaterialAsset material = MaterialAsset.create("material_name");
 // Set properties and textures here
 prefab.setMaterial("default", material); 
 
 
 "default" here is the node inside prefab  
 
 
 And done:  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Hi, can you please show your log output? Are you trying to make a procedural mesh? Also, what is Texture and Normal arguments in your case? That are turned into String 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		For second try i think to read somehow position of Z direct from chunk data, but here i am stuck i don't have idea how i can do that 
 
 Hi, size of blocks in terrain is actually the same as units that player position have (1 block = 1 unit), so you only need to get terrain from specific chunk and iterate it from above until you will find any solid tile (anything with ID greater than 0 - air, and less then 200 - water). Chunk coordinates can be generated from desired position - there is an utility function for that (in ChunkUtils class), or you can divide your position on chunk width and height with flooring the result. Block coordinates inside chunk are relative to chunk position, so their calculation is also not very hard (you need to subtract chunkPos * chunkSize from your absolute block position to get relative position in chunk), and there is also utility function for that. 
 
 
	
	
	
	
	
		what happen if i want to work with a chunk which was not yet generated by server 
 
 I think that server will just return you null 
 
 
 
- 
					
						
							
							
							
								
								
								
									There is also a bug with UI (plant selection and element shape selection) - if you will open it on the second time it will show wrong place in catalogue with missing icons, and for element shapes it will show not all available shapes. Simple movement of a slider fixes this, so looks like it is a visual bug  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		[Bugfix] Fixed bug that caused animals to fall through the ground 
 
 I'm not sure about this  
 Looks like this still can happen (when player moves and new animals are spawning)  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Just a huge metal arch in victorian style that I made. (Partially) grid aligned, so it can be used to make larger constructions 
 
  
 
 
 Metal_Arch_1682360175.blueprint 
 
 
 
- 
					
						
							
							
							
								
								
								
									I can confirm this  
 The reason is probably the same as with black screens, looks like the game don't reset visual effects 
 
  
  
  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		Oh, I wasn't aware of this issue   Does that only happen when replacing a plugin? Does that only happen when replacing a plugin?
 
 
 It happens when plugin event is triggered, sometimes it can happen on player join (probably related to player join event) 
 
 
	
	
	
	
	
		Hmm... there is a chance that old animals that got stuck somewhere prior to the update now fall through the ground, but if this happens any other animals, that's a serious issue   
 
 
 With any, and on each world launch. I'm testing things underground and see a rain from cows and chickens on each world launch  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Small bug report: - Main menu screen still can be black/dark, sometimes after leaving caves (probably related to some post effects) - Game sometimes can crash on world rejoining after plugins get update (EXCEPTION_ACCESS_VIOLATION) Actually both bugs existed in previous version (0.6.5), I just forgot about the last one 
 
 Edit: animals will fall underground on world launch  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		It's just how internal world edits work in the game   But does that mean you want to use a global block position instead? With the WorldEditBatch, that should work: You could just provide 0 for chunk coordinates and use an arbitrary block position - the game should calculate the chunk positions automatically. But does that mean you want to use a global block position instead? With the WorldEditBatch, that should work: You could just provide 0 for chunk coordinates and use an arbitrary block position - the game should calculate the chunk positions automatically.
 
 
 Yes, global position, since chunk position can be calculated from it. The strange thing is when I manually calculate chunk position and relative block position - it fails to create anything, but if I use chunk position from the player and just offsets from player block position - that works fine. Probably something is wrong with my calculations 
 
 A "cave":  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		player.setLocationTickerText("Test", true); 
 
 Looks like this method is not mentioned in javadocs, and is missing in player, are you sure that it is correct? 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		introduces many changes to the Plugin API 
 
 Is it possible to send player changes made with WorldEditBatch or with World.setTerrainData? Looks like changes are applied on server side, but not on client side, and in singleplayer they are not stored 
 
 Edit: it works, just with another calculations. I'm not sure why all calculations require chunk position and manually calculated chunk position doesn't work. Is it possible to have method that accepts only block positions and calculate chunk positions automatically? 
 
  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		Am I correct to believe that it's always going to be better to use the StringBuilder class over String? 
 
 You need to use it when you need to join more than 2 strings (for example when you need to merge 10 different messages), in other cases you can use normal string operations 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		paulevs I'm interested in knowing your thoughts on this   
 
 
 As Red mentioned above - it is not Java code since java don't have such operators for strings. And yes - the most effective code to merge multiple strings will use StringBuilder. Old java converted string merging directly into StringBuilder, and newer have some other operators. 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		
	You mean like: 
 Plugins/PluginFolderName/PluginName
 Plugins/PluginFolderName/PluginName/res/text.jpg 
 
 Yes, something like this. I build my plugin with gradle, so I just added instruction to pack all assets together with plugin jar. You can see how resulting zip looks like here, the user just need to unpack it into plugin folder 
 
  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									I got the same error, so I just packed assets together with plugin - assets can be loaded from folder correctly 
 
 
 
- 
					
						
							
							
							
								
								
								
									Good day, looks like for some reason subsurface scattering is disabled in game (so if the object material have it it will be not rendered correctly). This is probably the reason why most foliage is so dark. Will it be added in the future or we will need to fake it? 
 
 Example of object with subsurface scattering in editor:  
 
 
 Same object in the game:  
 
 
 It will also ignore direct sunlight and will be completely dark:  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		So the constructor is definitely there, even in a separate file 
 
 But that constructor accepts a String argument, and in your logs looks like you are giving it de.chaoswg.ClassASBConfig$ClassSeite, so probably instead of clazz.getDeclaredConstructor(componentType); you should call clazz.getDeclaredConstructor(String.class); 
	
	
	
	
	
		If you have another approach to overlighting large configs while still keeping dynamic while loading, let me know   
 
 
 Well, for personal usage I made a very simple config system, it stores data in internal entries which can be called at any time. In some of my other projects I used simple json configs with similar approach