Jump to content

Recommended Posts

Posted (edited)

Hi! I've got problem with mob hitboxes. Mob is really big. I set it size using setSize(48F,12F) so as you can see it's huge. Hitboxes shown ingame are ok, but there's problem with hitting it. The mob can be hit only by hitting it in the real center. Hitting borders even if they're in the hitbox range doesn't effect. Is there any way to fix it? https://imgur.com/pITIVs7

Edited by Krevik
Posted

I think it should work. I've done giants and dinosaurs before. The vanilla giant zombie is 6 times regular zombie size and the main part of a vanilla dragon is 16 by 8.

 

There might be a limit though. Maybe start small and increase it a bit at a time to see if there is an actual limit. 

 

I looked through the code a bit. The key bit of code is the EntityRenderer.getMouseOver() method. This is what decides if the player is clicking on an entity. One thing I noticed is that one thing it does it it narrows down the entities to check for using the World.getEntitiesWithinAABBExcludingEntity() method. I looked at that method and it actually has a comment that there is a MAX_ENTITY_RADIUS field that:

     * Used in the getEntitiesWithinAABB functions to expand the search area for entities.
     * Modders should change this variable to a higher value if it is less then the radius
     * of one of there entities.

 

This field is a public static field so is accessible for you. So I think what you need to do is at some time during loading you need to set that field to the size of your entity. 

 

The default is 2. So it makes sense that you might need to change this in your case.

 

Anyway, try that and see if it works.

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
  On 6/20/2018 at 4:41 AM, jabelar said:

I think it should work. I've done giants and dinosaurs before. The vanilla giant zombie is 6 times regular zombie size and the main part of a vanilla dragon is 16 by 8.

 

There might be a limit though. Maybe start small and increase it a bit at a time to see if there is an actual limit. 

 

I looked through the code a bit. The key bit of code is the EntityRenderer.getMouseOver() method. This is what decides if the player is clicking on an entity. One thing I noticed is that one thing it does it it narrows down the entities to check for using the World.getEntitiesWithinAABBExcludingEntity() method. I looked at that method and it actually has a comment that there is a MAX_ENTITY_RADIUS field that:

     * Used in the getEntitiesWithinAABB functions to expand the search area for entities.
     * Modders should change this variable to a higher value if it is less then the radius
     * of one of there entities.

 

This field is a public static field so is accessible for you. So I think what you need to do is at some time during loading you need to set that field to the size of your entity. 

 

The default is 2. So it makes sense that you might need to change this in your case.

 

Anyway, try that and see if it works.

Expand  

Thank you so much jabelar! I think it should work, anyway will try it soon

Posted (edited)
  On 6/20/2018 at 4:41 AM, jabelar said:

I think it should work. I've done giants and dinosaurs before. The vanilla giant zombie is 6 times regular zombie size and the main part of a vanilla dragon is 16 by 8.

 

There might be a limit though. Maybe start small and increase it a bit at a time to see if there is an actual limit. 

 

I looked through the code a bit. The key bit of code is the EntityRenderer.getMouseOver() method. This is what decides if the player is clicking on an entity. One thing I noticed is that one thing it does it it narrows down the entities to check for using the World.getEntitiesWithinAABBExcludingEntity() method. I looked at that method and it actually has a comment that there is a MAX_ENTITY_RADIUS field that:

     * Used in the getEntitiesWithinAABB functions to expand the search area for entities.
     * Modders should change this variable to a higher value if it is less then the radius
     * of one of there entities.

 

This field is a public static field so is accessible for you. So I think what you need to do is at some time during loading you need to set that field to the size of your entity. 

 

The default is 2. So it makes sense that you might need to change this in your case.

 

Anyway, try that and see if it works.

Expand  

Tried and it didn't work. Tried puttin World.MAX_ENTITY_RADIUS in entity class, in main class pre init, post init, init methods. Tried setting it to both 12D and 120D. Also tried not using World, but DimensionManager.getWorld(). None of these worked :/ Nothing changed.  Also found out that the problem is only with hitting it with hand/item etc... There is no such problem with arrow. Arrow recognize hitboxes perfectly

Edited by Krevik
Posted
  Reveal hidden contents

 

Posted
  On 6/21/2018 at 7:39 AM, Krevik said:

Tried and it didn't work. Tried puttin World.MAX_ENTITY_RADIUS in entity class, in main class pre init, post init, init methods. Tried setting it to both 12D and 120D. Also tried not using World, but DimensionManager.getWorld(). None of these worked :/ Nothing changed.  Also found out that the problem is only with hitting it with hand/item etc... There is no such problem with arrow. Arrow recognize hitboxes perfectly

Expand  

 

The fact that arrows work but player hitting doesn't supports my idea that the problem is somewhere in the mouse over method. Once the arrows are flying they use their own collision box to check for collisions. When the player tries to hit something it checks the space around the "look vector" which involves methods like the one I've mentioned.

 

So I still feel the problem can be understood by looking at the EntityRenderer.getMouseOver() method. I'm not certain that radius field is the problem, but it sure sounded like it should be related. Maybe you should use debug mode in Eclipse and set a breakpoint for when user clicks button and step through to see what is happening.

 

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

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

    • Start by following the docs to get a workspace setup: https://docs.minecraftforge.net/en/latest/gettingstarted/ Then poke around some of the tutorials, https://www.mcjty.eu/docs/1.20/ used to be the goto, but not sure if there are any updates for regular forge or not, but if you've brushed up on Java, it will be enough to get you started. Poke around the Minecraft and Forge sources to see how things are done. Read the FAQ for information on how to post code/logs when you run into issues. Share as much info on issues you have as possible. Use github to host projects, chances of someone helping are higher when they can actually see all your code and/or build it themselves. And finally, keep it on the forums, don't direct message people with questions, most people do not provide personal support like that. Also keep in mind forums posts are not always immediately answered, if you're looking for a quicker response, you can always try the Minecraft Forge discord server.
    • Hello, I have a Forge Minecraft sever (I host it at g-portal.com) which has always worked fine and I had no problems, but today it doesn't wanna work anymore. Today I started the server and the status said online, but after a few seconds it said this: "Start failed". And then out of nowhere it restarted itself and the same thing happened again and again and now it's in an infinite loop where it just keeps failing and then restarts. Here's the download link for the server logs: https://www.mediafire.com/file/sq30dgoonjevib1/2025-07-06-1.log/file Does anyone know how to fix this? If yes I would really appreciate help. Best wishes, Gabs1107
    • I'm experiencing a critical issue on a dedicated Arch Linux server running the latest Forge for Minecraft 1.20.1. When a player exits a Nether portal (not enters, and not via /tp) or teleports into the End via portal, the server completely freezes for 1–10 minutes. During this time, all commands are unresponsive, and the game world essentially locks up. This is with watchdog disabled. Environment: OS: Arch Linux (latest packages) Java: OpenJDK 17 (up to date) Forge Version: Latest 1.20.1 (tested multiple versions from the past ~3 months) Mods: None (issue occurs on a clean install) Server Type: Proxmox VM with: 4 virtual cores 64 GB RAM (63 GB allocated via -Xmx and -Xms flags) Observed Behavior: Observed Behavior: The server freezes for 1–10 minutes when: Exiting a Nether portal (entering does not trigger the issue) Entering or exiting the End using a portal Teleporting using commands (e.g., /tp) works only for the Nether; teleporting to the End via command also causes a freeze The issue occurs anywhere in the world, not tied to specific coordinates or builds During the freeze: The server becomes completely unresponsive to all commands and player actions No crash reports, no errors, and no warnings are logged CPU usage remains under 50%, and RAM usage stays around 6–14 GB After 1–10 minutes, the server recovers automatically and resumes normal operation
    • Hey man, I just found this section in your code.  Try to do this: { "parent": "minecraft:item/generated", "textures": { "layer0": "testmod:item/alexandrite" } } This means your png should be named alexandrite.png. Hope it helps  
  • Topics

×
×
  • Create New...

Important Information

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