Jump to content

How do you create a Camera and render whatever it sees on a custom GUI?


Recommended Posts

Posted

Been googling a while on this one but got no help whatsoever. I know you can create another viewport and render it onto a GUI that the player can see. But I have no idea how to create a new Camera or viewport or whatever you wish  to call it and display what it captures as one continuous feed. The GUI part was ok, but the camera part is what I cannot figure out. Sorry if this is a noob question as this is my first time with Forge. It's 1.11.2 if that helps

Posted
52 minutes ago, _vertig0 said:

It's 1.11.2 if that helps

Why? You should update to 1.12.2

 

The camera is usually a collection of 2 things - the viewprojection matrix and the frustrum.

  • The ViewProjection matrix is a combination of a View matrix and a Projection matrix (as evident by name). The view matrix governs how vertices are transformed based on the position and the rotation of your "camera", or a view entity, or whatever it is, and the projection matrix governs how vertices are transformed based on the FOV, the aspect ratio and the width and the height of a viewport. This matrix is the minimal information that defines a basic camera. You can go without a frustrum but you must have the viewprojection matrix. There are helper methods that allow you to construct both the view and the projection matrices in the lwjgl library and then you just multiply them together to get the viewprojection matrix. However I unfortunately don't know whether the matrices in lwjgl are row-major or colomn-major so I can't tell you the order in which you multiply them.
  • The frustrum is a collection of 6 planes defined by the viewprojection matrix used to do "culling" - basically not rendering anything that the camera can't see anyway.

So here is the theory. In practice minecraft still uses old opengl for it's shaders and so you have to tell opengl which matrix to use. To do so you would need to first specify the viewport(the rectangle that defines, well, the viewport, the area of the screen the rendering takes place within) using GlStateManager.viewport. Then you switch to a GL_PROJECTION matrix mode with GlStateManager.matrixMode and load your projection matrix. Then switch to the GL_MODEL_VIEW matrix mode and load your view matrix. You load the matrix using GL11.glLoadMatrix, or set the matrix to identity with GlStateManager.loadIdentity and then multiply it by respective matrix using GlStateManager.glMultMatrix. 

However this topic of yours will require you to use a framebuffer aswell. You can ask me more about using that but it is a pretty advanced topic, even with minecraft helpfully providing the Framebuffer class.

  • Thanks 1
Posted
9 hours ago, V0idWa1k3r said:

Why? You should update to 1.12.2

 

The camera is usually a collection of 2 things - the viewprojection matrix and the frustrum.

  • The ViewProjection matrix is a combination of a View matrix and a Projection matrix (as evident by name). The view matrix governs how vertices are transformed based on the position and the rotation of your "camera", or a view entity, or whatever it is, and the projection matrix governs how vertices are transformed based on the FOV, the aspect ratio and the width and the height of a viewport. This matrix is the minimal information that defines a basic camera. You can go without a frustrum but you must have the viewprojection matrix. There are helper methods that allow you to construct both the view and the projection matrices in the lwjgl library and then you just multiply them together to get the viewprojection matrix. However I unfortunately don't know whether the matrices in lwjgl are row-major or colomn-major so I can't tell you the order in which you multiply them.
  • The frustrum is a collection of 6 planes defined by the viewprojection matrix used to do "culling" - basically not rendering anything that the camera can't see anyway.

So here is the theory. In practice minecraft still uses old opengl for it's shaders and so you have to tell opengl which matrix to use. To do so you would need to first specify the viewport(the rectangle that defines, well, the viewport, the area of the screen the rendering takes place within) using GlStateManager.viewport. Then you switch to a GL_PROJECTION matrix mode with GlStateManager.matrixMode and load your projection matrix. Then switch to the GL_MODEL_VIEW matrix mode and load your view matrix. You load the matrix using GL11.glLoadMatrix, or set the matrix to identity with GlStateManager.loadIdentity and then multiply it by respective matrix using GlStateManager.glMultMatrix. 

However this topic of yours will require you to use a framebuffer aswell. You can ask me more about using that but it is a pretty advanced topic, even with minecraft helpfully providing the Framebuffer class.

I think i get what you're saying, draw a rectangle using the GL helper methods, and with the above methods collect the area which is to be rendered, then transfer it using something called a FrameBuffer to the GUI? I think I could do my own homework, but one question, what is a FrameBuffer? I haven't done any rendering at all so am completely clueless on this

Posted
4 hours ago, _vertig0 said:

draw a rectangle using the GL helper methods, and with the above methods collect the area which is to be rendered, then transfer it using something called a FrameBuffer to the GUI?

Actually it's the reverse. First create the framebuffer, bind it, setup the matrices and the viewport and render your stuff. Then use the resulting texture in your GUI.

Framebuffers are opengl's way of "offscreen rendering". Instead of drawing onto the main draw buffer you would draw onto a custom framebuffer which results in a texture you can render somewhere else.

  • Like 1
Posted
On 12/9/2018 at 2:46 PM, V0idWa1k3r said:

Actually it's the reverse. First create the framebuffer, bind it, setup the matrices and the viewport and render your stuff. Then use the resulting texture in your GUI.

Framebuffers are opengl's way of "offscreen rendering". Instead of drawing onto the main draw buffer you would draw onto a custom framebuffer which results in a texture you can render somewhere else.

I did try all that and unfortunately got stuck at the first part. I went and joined a world, marking my location. I saved it as coordinates in the mod (double type variables), but set the Y-Coordinate to 30 blocks higher than where I was, and saved pitch as a 90 degree face down value (The Camera is supposed to be pointing directly downwards), and then I went back to the mod...

 

And got stuck on pretty much the first OpenGL function

 

The GlStateManager class gives 4 parameters for the viewport function, all integers. I've no clue on what these are supposed to mean (Can't be coordinates, that's the View Matrix as you said earlier)

 

Also if I'm not wrong that would be the point if this were a full fledged game where normally you would draw the graphics onto a display, right? Except this time it's on a Framebuffer? And if I want to move the Camera I have to constantly update the ViewProjection Matrix?

 

Sorry for the constant annoying question. This isn't my forte :(

Posted
4 minutes ago, _vertig0 said:

The GlStateManager class gives 4 parameters for the viewport function, all integers. I've no clue on what these are supposed to mean (Can't be coordinates, that's the View Matrix as you said earlier)

You are mixing two different things. Viewport != view matrix.

On 12/8/2018 at 7:40 PM, V0idWa1k3r said:

specify the viewport(the rectangle that defines, well, the viewport, the area of the screen the rendering takes place within)

 

5 minutes ago, _vertig0 said:

Also if I'm not wrong that would be the point if this were a full fledged game where normally you would draw the graphics onto a display, right? Except this time it's on a Framebuffer? And if I want to move the Camera I have to constantly update the ViewProjection Matrix?

There is no difference between rendering to a framebuffer or rendering to the draw buffer. 

Yes, if you do want to move the camera you will have to update the matrices, but minecraft will do it for you if you simply want to render everything a second time since you will have to invoke the drawing entry method and it does everything for you.

Posted
23 hours ago, V0idWa1k3r said:

You are mixing two different things. Viewport != view matrix.

 

There is no difference between rendering to a framebuffer or rendering to the draw buffer. 

Yes, if you do want to move the camera you will have to update the matrices, but minecraft will do it for you if you simply want to render everything a second time since you will have to invoke the drawing entry method and it does everything for you.

Ah, I think you misunderstood what I said. I know the matrix and viewport are 2 different things, I was asking what the 4 parameters in the viewport function stood for. I am aware the matrix is the one responsible for the transformation logic and all that. I apologize for that. But if I guess correctly, the 4 int parameters in GlStateManager.viewport() are the 2D x-y coordinates for the on screen rectangle? So following that, if I want the whole screen to be captured on the camera, I put the coords of one extreme side in the first 2 parameters, and the coords of the other point at the extreme end 

 

Also by drawing entry method do you mean the method that renders to the Framebuffer?

 

Posted
10 minutes ago, _vertig0 said:

I put the coords of one extreme side in the first 2 parameters, and the coords of the other point at the extreme end 

You put in the coords that define the rendering rectangle within the window. If you want the whole window to be rendered then it becomes [0, 0, Width, Height].

 

11 minutes ago, _vertig0 said:

by drawing entry method do you mean the method that renders to the Framebuffer?

I mean the method that the game invokes to draw everything that is not a UI element - world, entities, items in player's hands, etc..

  • Like 1
Posted (edited)
Quote

I mean the method that the game invokes to draw everything that is not a UI element - world, entities, items in player's hands, etc..

@Override
public void initGui() {
	super.initGui();
	GlStateManager.viewport(0, 0, Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight);
	GlStateManager.matrixMode(GL11.GL_PROJECTION);
	FloatBuffer projection = GLAllocation.createDirectFloatBuffer(16);
	GlStateManager.getFloat(GL11.GL_PROJECTION_MATRIX, projection);
	GL11.glLoadMatrix(projection);
	GlStateManager.matrixMode(GL11.GL_MODELVIEW);
	//GL11.glLoadMatrix(View Matrix???);
}

Managed to use the default Minecraft projection Matrix (In FloatBuffer form since LWJGL apparently only supports that and not the actual Matrix itself) as the projection matrix for the custom Camera using a bit of a hack, but how would I create the View Matrix? The View Matrix defines the Camera position and rotation as you said, so I can't just take the default Minecraft View Matrix and slap it into the Camera as I want to set it at a specific position and control it's movement as well.

 

(Also tried looking for the LWJGL Matrix Methods and found none :((. All I found were Matrix4f in LWJGL and Minecraft's own personal Matrix4f class)

Edited by _vertig0
Posted

Why are you doing that in initGui? Rendering must happen every frame. Setting up the matrices is a part of rendering.

Why are you just grabbing the projection matrix from GL? You can't do that, you need to construct one yourself.

Besides you don't actually need to do any of this since as I've said

On 12/11/2018 at 5:35 PM, V0idWa1k3r said:

if you do want to move the camera you will have to update the matrices, but minecraft will do it for you if you simply want to render everything a second time since you will have to invoke the drawing entry method and it does everything for you.

 

Posted (edited)
2 hours ago, V0idWa1k3r said:

Why are you doing that in initGui? Rendering must happen every frame. Setting up the matrices is a part of rendering.

Why are you just grabbing the projection matrix from GL? You can't do that, you need to construct one yourself.

Besides you don't actually need to do any of this since as I've said

 

So the creation of the Matrices must happen every time the draw method is called? So if I got that right I just have to make an identity matrix or a blank one and then call the draw method (Framebuffer method?) and Minecraft will do the rest for me?

 

Edit: Could you give a bit of a code demo since I'm getting a little confused here :P

Edited by _vertig0
Posted
On 12/13/2018 at 9:02 AM, _vertig0 said:

So the creation of the Matrices must happen every time the draw method is called? So if I got that right I just have to make an identity matrix or a blank one

 

On 12/13/2018 at 7:37 AM, V0idWa1k3r said:

minecraft will do it for you if you simply want to render everything a second time since you will have to invoke the drawing entry method and it does everything for you.

In your case you do not need to change the matrices if I understand your intentions correctly.

 

You need to create a Framebuffer somewhere(just not each frame, please, ideally not even within your initGui method) then bind it, then render everything again by looking up what the game does to render the world and invoking those methods again. Then you grab the texture from your framebuffer, bind it, bind the default framebuffer and render the quad you need.

 

On 12/13/2018 at 9:02 AM, _vertig0 said:

Could you give a bit of a code demo since I'm getting a little confused here :P

Pseudo-code:

Framebuffer fbo;

// Must run on the Gl thread
void clientInit()
{
    fbo = new Framebuffer(width, height, true);
    
}

// In your GUI
void draw()
{
    Framebuffer lastFBO = Minecraft.getMinecraft().getFramebuffer();
    fbo.bind();
    
    // Draw the world
    ...
    
    if (lastFBO != null)
    {
        lastFBO.bind();
    }
    else
    {
        OpenGlHelper.glBindFramebuffer(OpenGlHelper.GL_FRAMEBUFFER, 0);
    }
    
    fbo.bindFramebufferTexture();
    
    //Draw your quad
    ...
}

 

Posted
24 minutes ago, V0idWa1k3r said:

 

In your case you do not need to change the matrices if I understand your intentions correctly.

 

You need to create a Framebuffer somewhere(just not each frame, please, ideally not even within your initGui method) then bind it, then render everything again by looking up what the game does to render the world and invoking those methods again. Then you grab the texture from your framebuffer, bind it, bind the default framebuffer and render the quad you need.

 

Pseudo-code:


Framebuffer fbo;

// Must run on the Gl thread
void clientInit()
{
    fbo = new Framebuffer(width, height, true);
    
}

// In your GUI
void draw()
{
    Framebuffer lastFBO = Minecraft.getMinecraft().getFramebuffer();
    fbo.bind();
    
    // Draw the world
    ...
    
    if (lastFBO != null)
    {
        lastFBO.bind();
    }
    else
    {
        OpenGlHelper.glBindFramebuffer(OpenGlHelper.GL_FRAMEBUFFER, 0);
    }
    
    fbo.bindFramebufferTexture();
    
    //Draw your quad
    ...
}

 

Nice! Thanks for helping with that. I've stopped trying to use direct LWJGL classes and GlStateManager to create the camera and I'm now looking at the Minecraft Source for how the In Game Camera works... Strangely only one class holds the x, y and z values for the Camera but numerous classes, including several mobs and the player class itself contain the pitch and yaw variables for the camera. And the Minecraft class contains a variable called renderViewEntity, which is the mob the camera is in, while another class named RenderSorter has a baseEntity field which also contains the entity the camera is in... Looks like I have some digging to do. I'll get back with the results after trying :)

 

Edit: Blimey, Eclipse broke down for the third time this week. Well that sucks :/

Posted

Have you tried IntelliJ?

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Posted
5 hours ago, V0idWa1k3r said:

You need to create a Framebuffer somewhere(just not each frame, please, ideally not even within your initGui method) then bind it, then render everything again by looking up what the game does to render the world and invoking those methods again. Then you grab the texture from your framebuffer, bind it, bind the default framebuffer and render the quad you need.

What I managed to figure from this is:

1. On Client Start: Create a Framebuffer

2. Every time the update method for the GUI is called:

Call bind method on my own framebuffer

Call the minecraft render method with custom camera coordinates and pitch yaw values

Bind back the default minecraft framebuffer before all hell breaks loose and graphics start spazzing out

Collect image captured on my framebuffer

Draw image on GUI and profit (Draw your quad does refer to drawing on the GUI, right?)

 

And this way I don't have to touch any matrices at all?

Posted
3 minutes ago, _vertig0 said:

2. Every time the update method for the GUI is called:

Not the update, the draw. Update happens each tick. Draw happens each frame.

 

4 minutes ago, _vertig0 said:

Call the minecraft render method with custom camera coordinates and pitch yaw values

If by "custom camera coordinates and pitch yaw values" you mean "change the renderEntity to a custom one with the desired coordinates and pitch/yaw" then yes, that is correct.

 

5 minutes ago, _vertig0 said:

Draw image on GUI and profit (Draw your quad does refer to drawing on the GUI, right?)

Yes, but you will have to draw using BufferBuilder directly. 

 

6 minutes ago, _vertig0 said:

And this way I don't have to touch any matrices at all?

Pretty much, yes. Unless you want to render the world from an orthographic perspective for one reason or another.

Posted
23 hours ago, V0idWa1k3r said:

If by "custom camera coordinates and pitch yaw values" you mean "change the renderEntity to a custom one with the desired coordinates and pitch/yaw" then yes, that is correct.

Hmm, you just gave me an interesting idea. Is there a way to spawn entities entirely client side only? I mean, if this was single player it would be easy, but if the client the mod is installed on was connected to a server, can the mod spawn a mob that only exists on the client, but not on the server? If so, I could just set the renderViewEntity field in the Minecraft class rather than having to go through the trouble of Framebuffers in the first place :D

Posted
4 hours ago, _vertig0 said:

Is there a way to spawn entities entirely client side only?

You do not need to spawn the renderViewEntity you are changing the camera to, it just needs to exist as an object. It doesn't need to be added to the world's lists or anything since you do not care for it ticking.

4 hours ago, _vertig0 said:

If so, I could just set the renderViewEntity field in the Minecraft class rather than having to go through the trouble of Framebuffers in the first place :D

Sorry to dissappoint but the "trouble of Framebuffers" exists so you can render the world to a texture to later use in your GUI. Changing the renderViewEntity has zero effect on using or not using framebuffers.

Posted
21 hours ago, V0idWa1k3r said:

You do not need to spawn the renderViewEntity you are changing the camera to, it just needs to exist as an object. It doesn't need to be added to the world's lists or anything since you do not care for it ticking.

Sorry to dissappoint but the "trouble of Framebuffers" exists so you can render the world to a texture to later use in your GUI. Changing the renderViewEntity has zero effect on using or not using framebuffers.

I just tried with a zombie and it friggin worked!! But then after 1 second the camera started just spazzing out. Do you happen to know what could cause this?

Posted
4 minutes ago, V0idWa1k3r said:

Did you reset the renderViewEntity to the player after you are done?

oh well, basically i didn't use a GUI at all because i deemed it too much of a hassle, so i just set the renderViewEntity to  Client Side Zombie and had that as a camera until the player hit the "G" key and set their view back to the normal player vision (By right the mod is supposed to be toggleable between a constant video feed from a camera elsewhere and the normal player vision). But it just spazzed out when the renderViewEntity was set to a Zombie. Tried this on both on singleplayer world and on a server (I chose Mineplex out of convenience). In both cases the zombie definitely spawned as I got it's viewpoint, but then it spazzed out like mad. Interestingly when I looked at where I was supposed to be from the camera as it spazzed out (As in the physical player) I could only see my shadow, the player model itself was gone

Posted

I am unable to replicate your issue in my test setup. You are either changing the render view entity to a new one every frame/tick or your zombie's head is just rotating all over the place for one reason or another.

Posted
12 minutes ago, V0idWa1k3r said:

I am unable to replicate your issue in my test setup. You are either changing the render view entity to a new one every frame/tick or your zombie's head is just rotating all over the place for one reason or another.

The strange part however is that it's verifiably not the zombie's head that's spinning all over the place. A quick coordinates check reveals that the zombies head is always facing 90 degrees downwards and is yawed at 0, and these values don't change at all. It's not that I'm changing the renderViewEntity every frame either, I instantiate the zombie once and that's it. The  toggle button only fires once per press (I confirmed it by adding debug messages) I even made the mod disable my mouse to make sure it wasn't a problem with the mouse and the view was still spazzing all over the place. I'll try to get a video tomorrow when I have my PC available

 

Posted
23 hours ago, V0idWa1k3r said:

I am unable to replicate your issue in my test setup. You are either changing the render view entity to a new one every frame/tick or your zombie's head is just rotating all over the place for one reason or another.

Got the video:

 (Had to upload as a youtube video)

Here are all my classes:

package com.snipermod.forgeclient;

import org.lwjgl.input.Keyboard;

import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemBow;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;

@Mod(clientSideOnly = true, name = ArrowDirector.MODNAME, modid = ArrowDirector.MODID, version = ArrowDirector.VERSION, acceptedMinecraftVersions = ArrowDirector.ACCEPTED_MINECRAFT_VERSIONS)
public class ArrowDirector {
	
    public static final String MODID = "forgeclient";
    public static final String VERSION = "1.0";
    public static final String MODNAME = "snipermod";
    public static final String ACCEPTED_MINECRAFT_VERSIONS = "[1.11.2]";
    boolean overhead = false;
    
    @Instance
    public static ArrowDirector mod;
    
    public KeyBinding key = new KeyBinding("Toggle Key", Keyboard.KEY_G, "key.categories.misc");
    public static final boolean isMultiplayer = !Minecraft.getMinecraft().isSingleplayer();
    
    @EventHandler
    public void init(FMLInitializationEvent event) {
        System.out.println("Initialising Forge Mod");
        ClientRegistry.registerKeyBinding(key);
        MinecraftForge.EVENT_BUS.register(new MEventHandler());
        Minecraft.getMinecraft().mouseHelper = new ForgeMouseWrapper();
    }
    
    public static boolean hasBowEquipped() {
    	return Minecraft.getMinecraft().player.getHeldItemMainhand().getItem() instanceof ItemBow;
    }
    
    public void update() {
    	
    	if(ArrowDirector.hasBowEquipped() == false) {
    		Minecraft.getMinecraft().setRenderViewEntity(Minecraft.getMinecraft().player);
    		this.overhead = false;
    		if(Minecraft.getMinecraft().mouseHelper instanceof ForgeMouseWrapper) {
        		ForgeMouseWrapper forgeMouse = (ForgeMouseWrapper) Minecraft.getMinecraft().mouseHelper;
        		forgeMouse.isPlayerRotationDisabled = false;
        	}
    	}
    	
    	ForgeMouseWrapper forgeMouse;
    	if(Minecraft.getMinecraft().mouseHelper instanceof ForgeMouseWrapper) {
    		forgeMouse = (ForgeMouseWrapper) Minecraft.getMinecraft().mouseHelper;
    	}
    	
    	/* To do in the code block in this area:
    	 * Update the Camera position on mouse move 
    	 * Update target location 
    	 * Restrict any movement if the bow is not pulled or is pulled
    	 * too little to launch an arrow
    	 * Do NOT allow mod to perform calculation if arrow will not launch
    	 */
    	
    }
    
}

package com.snipermod.forgeclient;

import java.util.UUID;

import com.mojang.authlib.GameProfile;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;

public class ClientViewPlayer extends EntityPlayer {

	public ClientViewPlayer(World world) {
		super(world, new GameProfile(UUID.fromString("41C82C87-7AfB-4024-BA57-13D2C99CAE77"), "[Minecraft]"));
	}
	
	@Override
	public void onUpdate() {
		return;
	}
	
	@Override
	public void onLivingUpdate() {
		return;
	}
	
	@Override
	public void onEntityUpdate() {
		return;
	}

	@Override
	public boolean isCreative() {
		return false;
	}

	@Override
	public boolean isSpectator() {
		return false;
	}
	
}

package com.snipermod.forgeclient;

import org.lwjgl.input.Mouse;

import net.minecraft.util.MouseHelper;

public class ForgeMouseWrapper extends MouseHelper {
	
	boolean isPlayerRotationDisabled = false;
	int secretMouseX;
	int secretMouseY;
	
	@Override
	public void mouseXYChange() {
		if(!isPlayerRotationDisabled) {
			super.mouseXYChange();
		} else {
			this.secretMouseX = Mouse.getDX();
			this.secretMouseY = Mouse.getDY();
		}
	}
	
}

package com.snipermod.forgeclient;

import net.minecraft.client.Minecraft;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent;

public class MEventHandler {
	
	private final ArrowDirector instance = ArrowDirector.mod;
	ClientViewPlayer view = null;
	
	@SubscribeEvent
	public void onKeypress(KeyInputEvent event) {
		if(instance.key.isPressed()) {
			if(ArrowDirector.hasBowEquipped() == false) return;
			if(!instance.overhead) {
				if(view == null) {
					view = new ClientViewPlayer(Minecraft.getMinecraft().player.world);
				}
				view.setLocationAndAngles(Minecraft.getMinecraft().player.posX, Minecraft.getMinecraft().player.posY + 10.0D, Minecraft.getMinecraft().player.posZ, Minecraft.getMinecraft().player.rotationYawHead, 90);
				view.world = Minecraft.getMinecraft().player.world;
				Minecraft.getMinecraft().setRenderViewEntity(view);
			} else if(instance.overhead) {
				Minecraft.getMinecraft().setRenderViewEntity(Minecraft.getMinecraft().player);
			}
			instance.overhead = !instance.overhead;
			if(Minecraft.getMinecraft().mouseHelper instanceof ForgeMouseWrapper) {
				ForgeMouseWrapper forgeMouse = (ForgeMouseWrapper) Minecraft.getMinecraft().mouseHelper;
				forgeMouse.isPlayerRotationDisabled = instance.overhead;
			}
		}
	}
	
	@SubscribeEvent
	public void onTick(ClientTickEvent event) {
		if(instance.overhead) {
			instance.update();
		}
	}
	
}

For the life of me I can't figure out what's wrong. Nothing else is malfunctioning in the mod, everything works smoothly- Except for the spazzing out camera feed

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Can anyone help me? I play in singleplayer with mods This is the crashlog: https://pastebin.com/C54MVSUr
    • Looks like supplementaries is conflicting with the mod spawn
    • ---- Minecraft Crash Report ---- // There are four lights! Time: 2024-11-26 09:45:49 Description: Exception in server tick loop net.mehvahdjukaar.supplementaries.common.utils.VibeChecker$BadModError: Some OTHER mod loaded the Sheets class to early, causing modded banner patterns and sherds textures to not include modded ones. Refusing to proceed further. Missing entries: [ResourceKey[minecraft:decorated_pot_patterns / spawn:crown_pottery_pattern], ResourceKey[minecraft:decorated_pot_patterns / spawn:spade_pottery_pattern]] (mods listed here are NOT the cause of this, merely the ones that got broken because of it) Check previous forge log lines to find the offending mod.     at knot//net.mehvahdjukaar.supplementaries.common.utils.VibeChecker.clientStuff(VibeChecker.java:100)     at knot//net.mehvahdjukaar.supplementaries.common.utils.VibeChecker.checkVibe(VibeChecker.java:42)     at knot//net.mehvahdjukaar.supplementaries.common.events.ServerEvents.onPlayerLoggedIn(ServerEvents.java:121)     at knot//net.mehvahdjukaar.supplementaries.common.events.fabric.ServerEventsFabric.lambda$init$0(ServerEventsFabric.java:40)     at knot//net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents.lambda$static$2(ServerPlayConnectionEvents.java:48)     at knot//net.fabricmc.fabric.impl.networking.server.ServerPlayNetworkAddon.onClientReady(ServerPlayNetworkAddon.java:66)     at knot//net.minecraft.class_3324.handler$dnm001$fabric-networking-api-v1$handlePlayerConnection(class_3324.java:10018)     at knot//net.minecraft.class_3324.method_14570(class_3324.java:215)     at knot//net.minecraft.class_3248.method_33800(class_3248.java:131)     at knot//net.minecraft.class_3248.method_14384(class_3248.java:118)     at knot//net.minecraft.class_3248.redirect$dnn000$fabric-networking-api-v1$handlePlayerJoin(class_3248.java:563)     at knot//net.minecraft.class_3248.method_18784(class_3248.java:68)     at knot//net.minecraft.class_2535.method_10754(class_2535.java:259)     at knot//net.minecraft.class_3242.method_14357(class_3242.java:172)     at knot//net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:908)     at knot//net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:824)     at knot//net.minecraft.class_1132.method_3748(class_1132.java:105)     at knot//net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671)     at knot//net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265)     at java.base/java.lang.Thread.run(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 10 (amd64) version 10.0     Java Version: 17.0.12, Azul Systems, Inc.     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Azul Systems, Inc.     Memory: 6718697432 bytes (6407 MiB) / 11031019520 bytes (10520 MiB) up to 17179869184 bytes (16384 MiB)     CPUs: 12     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz     Identifier: Intel64 Family 6 Model 45 Stepping 7     Microarchitecture: Sandy Bridge (Server)     Frequency (GHz): 3.20     Number of physical packages: 1     Number of physical CPUs: 6     Number of logical CPUs: 12     Graphics card #0 name: NVIDIA GeForce GTX 1070     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x1b81     Graphics card #0 versionInfo: DriverVersion=32.0.15.6614     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 1.60     Memory slot #0 type: DDR3     Memory slot #1 capacity (MB): 8192.00     Memory slot #1 clockSpeed (GHz): 1.60     Memory slot #1 type: DDR3     Memory slot #2 capacity (MB): 8192.00     Memory slot #2 clockSpeed (GHz): 1.60     Memory slot #2 type: DDR3     Memory slot #3 capacity (MB): 8192.00     Memory slot #3 clockSpeed (GHz): 1.60     Memory slot #3 type: DDR3     Virtual memory max (MB): 37550.15     Virtual memory used (MB): 24472.94     Swap memory total (MB): 4864.00     Swap memory used (MB): 0.00     JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx16384M     Fabric Mods:          additionz: AdditionZ 1.3.2         adorn: Adorn 5.0.1+1.20.1         advanced_runtime_resource_pack: Runtime Resource Pack 0.8.1         advancementsfullscreen: AdvancementsFullscreen 1.0         advancementssearch: AdvancementsSearch 1.0         adventurez: AdventureZ 1.4.20         agedaddition: Aged-Addition 1.0.6         alloy_forgery: Alloy Forgery 2.1.2+1.20         almanac: Almanac 1.0.2         amarite: Amarite 1.0.8             cardinal-components-base: Cardinal Components API (base) 5.2.2             cardinal-components-block: Cardinal Components API (blocks) 5.2.2             cardinal-components-entity: Cardinal Components API (entities) 5.2.2             reach-entity-attributes: Reach Entity Attributes 2.4.0         ambientenvironment: Ambient Environment 11.0.0.1         amendments: Amendments 1.20-1.2.12         another_furniture: Another Furniture 1.20.1-3.0.1         antique_atlas: Antique Atlas 2.10.0+1.20         appleskin: AppleSkin 2.5.1+mc1.20         architectury: Architectury 9.2.14         astrocraft: Astrocraft 1.4.5+1.20.1         asynclocator: Async Locator 1.3.0         athena: Athena 3.1.2         autotag-convention: AutoTag Convention 2.0.2+1.20             autotag: AutoTag 2.0.2+1.20         backslot: BackSlot 1.2.15             amecsapi: Amecs API 1.5.0+mc1.20-pre1         backslotaddon: BackSlot Addon 1.1.1         badoptimizations: BadOptimizations 2.2.0         bakery: [Let's Do] Bakery 2.0.3         balm-fabric: Balm 7.3.9             kuma_api: KumaAPI 20.1.8         bbb: Building But Better 1.20.1-fabric-1.0.2         betterarcheology: Better Archeology 1.2.1-1.20.1         bettercombat: Better Combat 1.8.6+1.20.1         betterdeserttemples: YUNG's Better Desert Temples 1.20-Fabric-3.0.3             org_reflections_reflections: reflections 0.10.2         betterendisland: YUNG's Better End Island 1.20-Fabric-2.0.6         betterfortresses: YUNG's Better Nether Fortresses 1.20-Fabric-2.0.6         betterjungletemples: YUNG's Better Jungle Temples 1.20-Fabric-2.0.5         betteroceanmonuments: YUNG's Better Ocean Monuments 1.20-Fabric-3.0.4         betterstats: Better Statistics Screen 3.12.6+fabric-1.20.1         bettertrims: BetterTrims 3.2.8         birds-boids: Birds Boids 1.1.0         blur: Blur (Fabric) 3.1.0             midnightlib: MidnightLib 1.4.1             satin: Satin 1.13.0         boids: Boids 1.2.2             blue_endless_jankson: jankson 1.2.3         bookshelf: Bookshelf 20.2.13         borderlessmining: Borderless Mining 1.1.8+1.20.1         brewery: [Let's Do] Brewery 2.0.3         cameraoverhaul: Camera Overhaul 1.4.1-fabric-universal         candlelight: [Let's Do] Candlelight 2.0.2         cardinal-components: Cardinal Components API 5.2.2             cardinal-components-chunk: Cardinal Components API (chunks) 5.2.2             cardinal-components-item: Cardinal Components API (items) 5.2.2             cardinal-components-level: Cardinal Components API (world saves) 5.2.2             cardinal-components-scoreboard: Cardinal Components API (scoreboard) 5.2.2             cardinal-components-world: Cardinal Components API (worlds) 5.2.2         cave_dweller: Cave Dweller 1.4.0         chalk: Chalk 2.2.4             com_github_mclegoman_releasetypeutils: releasetypeutils 2.1.0             fabric-simplelibs: Simple Fabric Libs 2.0.0         chalk-colorful-addon: Chalk: Colorful-Addon 2.1.1+1.19.3         chipped: Chipped 3.0.7         cloth-config: Cloth Config v11 11.1.136             cloth-basic-math: cloth-basic-math 0.6.1         collective: Collective 7.87         combatroll: Combat Roll 1.3.3+1.20.1         configurable: Configurable 2.2.3         connectiblechains: Connectible Chains 2.2.1+1.20.1         convenientdecor: Convenient Decor 0.4.3             omega-config: OmegaConfig 1.4.0+1.20.1         couplings: Couplings 1.9.5+1.20         craftedcore: CraftedCore 5.6         crawl: Crawl 0.12.0             mm: Manningham Mills 2.3         creeperoverhaul: Creeper Overhaul 3.0.2         crop_growth_modifier: Crop Growth Modifier 1.20.1-1.1.1         cyclepaintings: Cycle Paintings 3.6         darkpaintings: DarkPaintings 17.0.4         dawn: Dawn API 5.0.0             terraform-shapes-api-v1: Terraform Shapes API (v1) 7.0.1             terraform-wood-api-v1: Terraform Wood API (v1) 7.0.1         decorative_computers: decorative_computers 1.0.1         defaultoptions: Default Options 18.0.1         dehydration: Dehydration 1.3.6         desert_dungeon: Desert Dungeon 1.0.0         deuf_refabricated: DEUF Refabricated 1.1.0         distanthorizons: Distant Horizons 2.2.1-a         doapi: [Let's Do] API 1.2.15         dungeonnowloading: Dungeon Now Loading 1.5         dungeonz: DungeonZ 1.0.6         earlystage: EarlyStage 1.1.1         elytratrims: Elytra Trims 3.5.4             conditional-mixin: conditional mixin 0.6.2         elytratrims_extensions: Elytra Trims Extensions 2.2.1         emi: EMI 1.1.18+1.20.1+fabric         emi_enchanting: EMI Enchanting 0.1.2+1.20.1         emi_letsdo_compat: emi-letsdo-compat 1.3         emi_loot: EMI Loot 0.7.4+1.20.1+fabric         emi_ores: EMI Ores 1.0+1.20.1+fabric         emiffect: EMIffect 1.1.2+mc1.20.1         emitrades: EMI Trades 1.2.1+mc1.20.1             org_quiltmc_parsers_json: json 0.2.1         endermanoverhaul: Enderman Overhaul 1.0.4         endrem: End Remastered 5.2.4         entity_model_features: Entity Model Features 2.2.6         entity_texture_features: Entity Texture Features 6.2.7             org_apache_httpcomponents_httpmime: httpmime 4.5.10         entityculling: EntityCulling 1.7.1         environmentz: EnvironmentZ 2.0.8         euphonium: Euphonium 1.0.3+1.20             folk_sisby_kaleido-config: kaleido-config 0.3.1+1.3.2         everycomp: Every Compat 1.20-2.6.92         exposure: Exposure 1.7.7         extended_drawers: Extended Drawers 2.1.1+mc.1.20.1             config_toolkit: ConfigToolkit 1.0.0                 io_determann_shadow-api-17: shadow-api-17 0.1.1                 net_fabricmc_javapoet: javapoet 0.1.0             graphlib: Graph Lib 1.4.0+1.20                 kmodlib-overlay: KModLib Overlay 0.2.12+1.20                 libnetworkstack: Lib Network Stack 0.10.0             noindium: No Indium? 1.1.0+1.20         extendeddrawersaddon: ExtendedDrawersAddon 1.0.2         fabric-api: Fabric API 0.92.2+1.20.1             fabric-api-base: Fabric API Base 0.4.31+1802ada577             fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.36+1802ada577             fabric-biome-api-v1: Fabric Biome API (v1) 13.0.13+1802ada577             fabric-block-api-v1: Fabric Block API (v1) 1.0.11+1802ada577             fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.1+1802ada577             fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.41+1802ada577             fabric-client-tags-api-v1: Fabric Client Tags 1.1.2+1802ada577             fabric-command-api-v1: Fabric Command API (v1) 1.2.34+f71b366f77             fabric-command-api-v2: Fabric Command API (v2) 2.2.13+1802ada577             fabric-commands-v0: Fabric Commands (v0) 0.2.51+df3654b377             fabric-containers-v0: Fabric Containers (v0) 0.1.64+df3654b377             fabric-content-registries-v0: Fabric Content Registries (v0) 4.0.11+1802ada577             fabric-convention-tags-v1: Fabric Convention Tags 1.5.5+1802ada577             fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.19+1802ada577             fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.0.0+de0fd6d177             fabric-data-generation-api-v1: Fabric Data Generation API (v1) 12.3.4+1802ada577             fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.54+1802ada577             fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.0+1c78457f77             fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.6.2+1802ada577             fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.63+df3654b377             fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.40+1802ada577             fabric-item-api-v1: Fabric Item API (v1) 2.1.28+1802ada577             fabric-item-group-api-v1: Fabric Item Group API (v1) 4.0.12+1802ada577             fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.37+1802ada577             fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.35+df3654b377             fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.2.22+1802ada577             fabric-loot-api-v2: Fabric Loot API (v2) 1.2.1+1802ada577             fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.1.45+9e7660c677             fabric-message-api-v1: Fabric Message API (v1) 5.1.9+1802ada577             fabric-mining-level-api-v1: Fabric Mining Level API (v1) 2.1.50+1802ada577             fabric-model-loading-api-v1: Fabric Model Loading API (v1) 1.0.3+1802ada577             fabric-models-v0: Fabric Models (v0) 0.4.2+9386d8a777             fabric-networking-api-v1: Fabric Networking API (v1) 1.3.11+1802ada577             fabric-networking-v0: Fabric Networking (v0) 0.3.51+df3654b377             fabric-object-builder-api-v1: Fabric Object Builder API (v1) 11.1.3+1802ada577             fabric-particles-v1: Fabric Particles (v1) 1.1.2+1802ada577             fabric-recipe-api-v1: Fabric Recipe API (v1) 1.0.21+1802ada577             fabric-registry-sync-v0: Fabric Registry Sync (v0) 2.3.3+1802ada577             fabric-renderer-api-v1: Fabric Renderer API (v1) 3.2.1+1802ada577             fabric-renderer-indigo: Fabric Renderer - Indigo 1.5.2+85287f9f77             fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.46+df3654b377             fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.37+92a0d36777             fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.0.28+1802ada577             fabric-rendering-v0: Fabric Rendering (v0) 1.1.49+df3654b377             fabric-rendering-v1: Fabric Rendering (v1) 3.0.8+1802ada577             fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 2.3.8+1802ada577             fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.11.10+1802ada577             fabric-screen-api-v1: Fabric Screen API (v1) 2.0.8+1802ada577             fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.30+1802ada577             fabric-sound-api-v1: Fabric Sound API (v1) 1.0.13+1802ada577             fabric-transfer-api-v1: Fabric Transfer API (v1) 3.3.5+8dd72ea377             fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 4.3.1+1802ada577         fabric-language-kotlin: Fabric Language Kotlin 1.12.3+kotlin.2.0.21             org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 2.0.21             org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 2.0.21             org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 2.0.21             org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 2.0.21             org_jetbrains_kotlinx_atomicfu-jvm: atomicfu-jvm 0.25.0             org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.9.0             org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.9.0             org_jetbrains_kotlinx_kotlinx-datetime-jvm: kotlinx-datetime-jvm 0.6.1             org_jetbrains_kotlinx_kotlinx-io-bytestring-jvm: kotlinx-io-bytestring-jvm 0.5.4             org_jetbrains_kotlinx_kotlinx-io-core-jvm: kotlinx-io-core-jvm 0.5.4             org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm: kotlinx-serialization-cbor-jvm 1.7.3             org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.7.3             org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.7.3         fabricloader: Fabric Loader 0.16.9         fancymenu: FancyMenu 3.3.2             com_github_keksuccino_japng: japng 0.5.3             com_github_rtyley_animated-gif-lib-for-java: animated-gif-lib-for-java animated-gif-lib-1.7         farm_and_charm: [Let's Do] Farm & Charm 1.0.4         fastconfigapi: Fast Config API 2.1.0             com_moandjiezana_toml_toml4j: toml4j 0.7.2         fbp: FancyBlockParticles 20.1.1.1         ferritecore: FerriteCore 6.0.1         firstperson: FirstPerson 2.4.5         fishingreal: Fishingreal 1.20.1-1.7.2         fleshz: FleshZ 1.5.1         forgeconfigapiport: Forge Config API Port 8.0.0         formations: Formations 1.0.2         formationsnether: Formations Nether 1.0.5         formationsoverworld: Formations Overworld 1.0.4         fzzy_config: Fzzy Config 0.5.6+1.20.1             fabric-permissions-api-v0: fabric-permissions-api 0.3.1             net_peanuuutz_tomlkt_tomlkt-jvm: tomlkt-jvm 0.3.7         gardens_of_the_dead: Gardens of the Dead 4.0.1         geckoanimfix: GeckoLibIrisCompat 1.0.0         geckolib: GeckoLib 4 4.4.9             com_eliotlash_mclib_mclib: mclib 20         gh: Gods and Heroes 1.6.2         grassoverhaul: Grass Overhaul 23.10.11         handcrafted: Handcrafted 3.0.6         hearths: Hearths 1.0.1         herbalbrews: [Let's Do] HerbalBrews 1.0.8.1         herdspanic: Herds Panic 1.1.0         hopobettermineshaft: Hopo Better Mineshaft 1.1.8         hopobetterunderwaterruins: Hopo Better Underwater Ruins 1.1.4         immediatelyfast: ImmediatelyFast 1.3.1+1.20.4             net_lenni0451_reflect: Reflect 1.3.4         immersive_aircraft: Immersive Aircraft 1.1.2+1.20.1             org_mariuszgromada_math_mathparser_org-mxparser: MathParser.org-mXparser 5.2.1         immersive_armors: Immersive Armors 1.6.1+1.20.1         immersive_melodies: Immersive Melodies 0.3.0+1.20.1         immersivesnow: Immersive Snow 1.3.0         immersiveui: ImmersiveUI 0.2.2         indium: Indium 1.0.34+mc1.20.1         inmis: Inmis 2.7.2-1.20.1         inmisaddon: InmisAddon 1.0.4         interactic: Interactic 0.2.0+1.20         iris: Iris 1.7.5+mc1.20.1             io_github_douira_glsl-transformer: glsl-transformer 2.0.1             org_anarres_jcpp: jcpp 1.4.14             org_antlr_antlr4-runtime: antlr4-runtime 4.13.1         ironchests: Iron Chests: Restocked 5.0.2         java: OpenJDK 64-Bit Server VM 17         jobsaddon: JobsAddon 1.1.6         journeymap: Journeymap 5.10.3             journeymap-api-fabric: JourneyMap API 1.20-1.9-fabric-SNAPSHOT         jumpoverfences: Jump Over Fences 1.3.1         justoutdoorstuffs: Just Outdoor Stuffs 1.0.2         keybind_fix: Keybind Fix 1.0.0         kiwi: Kiwi Library 11.8.26+fabric         konkrete: Konkrete 1.8.1         labellingcontainers: Labelling Containers 1.8.0         labels: labels 1.20-1.20.2         lambdynlights: LambDynamicLights 2.3.2+1.20.1             pride: Pride Lib 1.2.0+1.19.4             spruceui: SpruceUI 5.0.0+1.20         lavender: Lavender 0.1.9+1.20             lavender-md: lavender-md 0.1.1+1.20             lavender-md-owo-ui: lavender-md-owo-ui 0.1.1+1.20         leahs-immersive-thunder: Immersive Thunder 1.20.1+1.2.2         letmedespawn: Let Me Despawn 1.4.4         levelz: LevelZ 1.4.13         libz: LibZ 1.0.3         lithium: Lithium 0.11.2         lmft: Load My F***ing Tags 1.0.2+1.20         loadmyresources: Load My Resources 1.0.4         logbegone: Log Begone 1.0.8         lootbeams: Lootbeams 2.1.1+1.20.1             microconfig: Microconfig 3.0.0         lootr: Lootr 0.7.33.81         luphieclutteredmod: Cluttered 2.1.0+1.20.1         mcwpaintings: Macaw's Paintings 1.0.5         meadow: [Let's Do] Meadow 1.3.19             mixinsquared: MixinSquared 0.1.2-beta.5         medieval_buildings: Medieval Buildings 1.0.1         medievalweapons: Medieval Weapons 1.4.8         melody: Melody 1.0.3         memoryleakfix: Memory Leak Fix 1.1.5         mes: Moog's End Structures 1.3.1-1.20-fabric         minecraft: Minecraft 1.20.1         mns: Moog's Nether Structures 1.0.1-1.20-fabric         modelfix: Model Gap Fix 1.15         modernfix: ModernFix 5.19.4+mc1.20.1         modmenu: Mod Menu 7.2.2         moonlight: Moonlight 1.20-2.13.25         more_armor_trims: More Armor Trims 1.4.1-1.20.1         moreculling: More Culling 1.20.4-0.24.0         mr_animated_doors: Animated Doors 1.0         mr_better_babies: Better Babies 0.6.2         mr_developer_resources: Data API 0.2         mr_dungeons: Dungeons+ 1.8.4b         mr_dungeons_andtaverns: Dungeons and Taverns 3.0.3.f         mr_dungeons_andtavernsancientcityoverhaul: Dungeons and Taverns Ancient City Overhaul 1         mr_dungeons_andtavernspillageroutpostrework: Dungeons and Taverns Pillager Outpost Rework 1.1         mr_dungeons_andtavernsstrongholdrework: Dungeons and Taverns Stronghold Rework 1         mr_lukis_grandcapitals: Luki's Grand Capitals 1.0         mr_origins_vampire: Origins: Vampire 1-v2.2.0         mr_ships: Ships 3.0.3         mr_true_ending: True Ending: Ender Dragon Overhaul 1-v1.1.0c         mr_villager_transportation: Villager Transportation 1.3.1         mru: Mineblock's Repeated Utilities 1.0.4+1.20.1+fabric         myloot: myLoot 4.0.3-1.20.1         mythicmetals: Mythic Metals 0.19.9+1.20.1             additionalentityattributes: Additional Entity Attributes 1.7.3+1.20.0             common-protection-api: Common Protection API 1.0.0         nameplate: Nameplate 1.1.4         naturalist: Naturalist 4.0.3         natures_spirit: Nature's Spirit 1.6.3-1.20.1         neruina: Neruina 2.1.2             com_fasterxml_jackson_core_jackson-annotations: jackson-annotations 2.17.0             com_fasterxml_jackson_core_jackson-core: jackson-core 2.17.0             com_fasterxml_jackson_core_jackson-databind: jackson-databind 2.17.0             org_apache_maven_maven-artifact: maven-artifact 3.8.1             org_kohsuke_github-api: github-api 1.318         nethervinery: [Let's Do] NetherVinery 1.2.14         niftycarts: NiftyCarts 20.1.3         nimble: Nimble 5.0.1         noisium: Noisium 2.3.0+mc1.20-1.20.1         nutritionz: NutritionZ 1.0.11         nyctophobia: Nyctophobia 1.9         octolib: OctoLib 0.4.2             org_yaml_snakeyaml: snakeyaml 2.2         origins: Origins 1.10.0             apoli: Apoli 2.9.0                 calio: Calio 1.11.0                 playerabilitylib: Pal 1.8.0         overflowingbars: Overflowing Bars 8.0.1         owo: oωo 0.11.2+1.20         particular: Particular 1.1.1         partyaddon: PartyAddon 1.0.4         passablefoliage: Passable Foliage 1.20.1-fabric-8.2.1         patchouli: Patchouli 1.20.1-84-FABRIC             fiber: fiber 0.23.0-2         paxi: Paxi 1.20-Fabric-4.0         pehkui: Pehkui 3.8.3+1.14.4-1.21             kanos_config: Kanos Config 0.4.1+1.14.4-1.19.4         phantom: Phantom Library 20.1.5         player-animator: Player Animator 1.0.2-rc1+1.20         plushables: Plushables 1.1.3         pockets: Pockets 1.2.0         portfolio: Portfolio 1.20.1-1.4.0-fabric         presencefootsteps: Presence Footsteps 1.9.4+1.20.1             kirin: Kirin UI 1.15.6+1.20.1         profundis: Profundis 1.6.2         promenade: Promenade 4.1.1             biolith: Biolith 1.0.0-alpha.8                 terraform-surfaces-api-v1: Terraform Surfaces API (v1) 7.0.1         puzzleslib: Puzzles Lib 8.1.24             puzzlesaccessapi: Puzzles Access Api 8.0.7         reciperemover: Recipe Remover 1.0.11         regions_unexplored: Regions Unexplored 0.5.6+1.20.1         resourcefulconfig: Resourcefulconfig 2.1.2         resourcefullib: Resourceful Lib 2.1.29             com_teamresourceful_bytecodecs: bytecodecs 1.0.2             com_teamresourceful_yabn: yabn 1.0.3         revive: Revive 1.0.7         rpgdifficulty: RpgDifficulty 1.3.15         rsls: Raise Sound Limit Simplified 1.1.5         scholar: Scholar 1.0.0         seamless_loading_screen: Seamless Loading Screen 2.0.3+1.20.1         seasonhud: SeasonHUD 1.11.2         seasons: Fabric Seasons 2.4.2-BETA+1.20         shut_up_gl_error: Shut Up GL Error 1.0.0         simplemod: SimpleMod 1.20.1         skinlayers3d: 3d-Skin-Layers 1.7.0         smallships: Small Ships 2.0.0-b1.4         smarterfarmers: Smarter Farmers 1.20-2.1.0         smitherz: SmitherZ 1.0.4         smoothscrollingrefurbished: Smooth Scrolling Refurbished 1.1.2         smoothswapping: Smooth Swapping 0.9.3.1         sodium: Sodium 0.5.11+mc1.20.1         sound_physics_remastered: Sound Physics Remastered 1.20.1-1.4.5         sounds: Sounds 2.2.0+1.20.1+fabric             mixinextras: MixinExtras 0.5.0-beta.2             yet_another_config_lib_v3: YetAnotherConfigLib 3.5.0+1.20.1-fabric                 com_twelvemonkeys_common_common-image: common-image 3.10.0                 com_twelvemonkeys_common_common-io: common-io 3.10.0                 com_twelvemonkeys_common_common-lang: common-lang 3.10.0                 com_twelvemonkeys_imageio_imageio-core: imageio-core 3.10.0                 com_twelvemonkeys_imageio_imageio-metadata: imageio-metadata 3.10.0                 com_twelvemonkeys_imageio_imageio-webp: imageio-webp 3.10.0                 org_quiltmc_parsers_gson: gson 0.2.1         sparsestructures: SparseStructures 2.2.0         spawn: Spawn 1.0.3-fabric         spawnanimations: Spawn Animations 1.9.4+mod         spider_caves: Spider Caves 20.1.0         spoiledz: SpoiledZ 1.0.10             capsaicin: Capsaicin 1.3.3+mc1.20.1         spoornpacks: SpoornPacks 5.0-1.20.1         stoneworks: Stoneworks 8.0.0         storagedelight: Storage Delight 24.9.11-1.20-fabric         superbsteeds: Superb Steeds 1.20-4         supermartijn642configlib: SuperMartijn642's Config Lib 1.1.8+a         supplementaries: Supplementaries 1.20-3.1.9         suppsquared: Supplementaries Squared 1.20-1.1.18         surveyor: Surveyor Map Framework 0.6.25+1.20         sushi_bar: Sushi Bar 0.2.2+1.20             com_moulberry_mixinconstraints: mixinconstraints 1.0.1         tawct: Time & Wind Custom Ticker 1.4.8+1.20-1.20.1         tcdcommons: TCD Commons API 3.12.3+fabric-1.20.1         tenseambience: Tense Ambience 1.7.0             com_github_umjammer_jlayer: jlayer 1.0.2         terrablender: TerraBlender 3.0.1.7             com_electronwill_night-config_core: core 3.6.7             com_electronwill_night-config_toml: toml 3.6.7         tiered: Tiered 1.3.3         tlc: The Lost Castle 1.0.1         tool_trims: Tool Trims 2.2.1         tooltipfix: ToolTip Fix 1.1.1-1.20         translucencyfix: Translucency Fix 2.2.0         travelersbackpack: Traveler's Backpack 9.1.18         travelerz: TravelerZ 1.0.1         treechop: HT's TreeChop 0.19.0         trimeffects: TrimsEffects 1.3.5         trinkets: Trinkets 3.7.2         u_desert: Unnamed Desert 1.3.1         underground_jungle: Underground Jungle 20.1.2         veinmining: Vein Mining 1.5.0+1.20.1             spectrelib: SpectreLib 0.13.15+1.20.1         villagerfix: Villager Trade Fix 1.0.4         villagesandpillages: Villages & Pillages 1.0.1         vinery: [Let's Do] Vinery 1.4.28         void_lib: Void Lib 1.1.5         voidtotem: Void Totem 3.0.1         voidz: VoidZ 1.0.11         walkers: Walkers 5.4         waterdripsound: Drip Sounds 1.19-0.3.2         welcomescreen: WelcomeScreen 1.0.1         wildlife: Wildlife 1.19.2-2.2         yungsapi: YUNG's API 1.20-Fabric-4.0.6             org_javassist_javassist: javassist 3.29.2-GA     Loaded Shaderpack: (off)     Server Running: true     Player Count: 0 / 8; []     Data Packs: vanilla, fabric, nutritionz:promenade_nutrition_compat, natures_spirit:modified_mountain_biomes, nutritionz:dehydration_x_meadow_nutrition_compat, natures_spirit:modified_dark_forest, jobsaddon:supplementaries_compat, natures_spirit:modified_birch_forest, nutritionz:candlelight_nutrition_compat, jobsaddon:earlystage_compat, nutritionz:brewery_nutrition_compat, nutritionz:herbalbrews_nutrition_compat, nutritionz:dehydration_x_vinery_nutrition_compat, nutritionz:adventurez_nutrition_compat, natures_spirit:modified_windswept_hills, jobsaddon:candlelight_compat, nutritionz:natures_spirit_nutrition_compat, nutritionz:bakery_nutrition_compat, nutritionz:spawn_nutrition_compat, nutritionz:farm_and_charm_nutrition_compat, nutritionz:naturalist_nutrition_compat, nutritionz:regions_unexplored_nutrition_compat, natures_spirit:modified_jungle, fleshz:adventurez_compat, nutritionz:vinery_nutrition_compat, natures_spirit:modified_swamp, natures_spirit:modified_flower_forest, natures_spirit:modified_desert, nutritionz:dehydration_nutrition_compat, fleshz:naturalist_compat, fleshz:meadow_compat, jobsaddon:vinery_compat, nutritionz:dehydration_x_nethervinery_nutrition_compat, nutritionz:supplementaries_nutrition_compat, jobsaddon:bakery_compat, natures_spirit:modified_savannas, nutritionz:meadow_nutrition_compat, nutritionz:nethervinery_nutrition_compat, natures_spirit:modified_badlands, Everycomp Generated Pack, Moonlight Mods Dynamic Assets, Supplementaries Generated Pack, Suppsquared Generated Pack, loadmyresources.hiddenpack (incompatible), spoornpacks, aged, aged_welcome_screen, create-the-server_datapack-v0.2, WWOO_2.3.1 (incompatible)     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     Type: Integrated Server (map_client.txt)     Is Modded: Definitely; Client brand changed to 'fabric'; Server brand changed to 'fabric'     Launched Version: 1.20.1
    • Use the public BlockEntityType constructor.
    • Use a Custom Launcher like Technic Launcher and search for a "Clean Forge 1.12.2" modpack and use this as working base
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.