Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Testing how 3D OBJ models display without recompiling the whole project and restarting Minecraft

Recommended Posts

Minecraft offers an option to reload resource packs while using the key combination SHIFT + F3 + T. In many cases one wants to adjust how the model looks in any of the rendering types (firstperson_righthand, gui, etc). If one modifies the original JSON file that has the transform information in the IDE and presses SHIFT + F3 + T in Minecraft, nothing happens. One has to recompile everything and start again Minecraft to see the changes. But that is only because one is modifying the source and not the resource JSON that Minecraft is loading into memory. If you modify the one that is being loaded into memory, the changes will be displayed once you press SHIFT + F3 + T in the game.



  1. Modify your JSON file containing the transformations and copy paste it in its respective place under classes/production/[YOURPROJECTNAME]_main/assets. Overwrite the existing one.
  2. Press SHIFT + F3 + T in the game to reload the resource pack.


For example, let's say I am making a mod whose root directory is named Tutorial. I have an item whose model is located in Tutorial/src/main/resources/assets/tutorialmodid/blockstates/item3dmodel.json. I would modify that file and while the game is running I would copy paste it in Tutorial/classes/production/Tutorial_main/assets/tutorialmodid/blockstates/item3dmodel.json. Then I would press SHIFT + F3 + T in the game to reload the resource pack which would show my changes.


IntelliJ IDEA:

  1. Modify your JSON file containing the transformations, go to the Build menu, and click Recompile '[nameofyourmodel.json]'.
  2. Press SHIFT + F3 + T in the game to reload the resource pack.
  3. Alternatively you can right click the JSON file either at the project view or in the tabs and hit Recompile.
  • Like 2
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.

  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Whenever i try to run the installer it says This application requires a java runtime environment 1.6.0 im runing windows 10
    • So I thought that I had gotten pretty far on my own but now apparently my code crashes the game. I am new to using the forge API and modding in general and some help on why this crashes the game and how to fix it would be greatly appreciated:   public class SpecialItem extends ShootableItem {      public SpecialItem(Properties properties){ super(properties); }      @Override      public Predicate<ItemStack> getInventoryAmmoPredicate() { return null; }      @Override      public int func_230305_d_() { return 15; }      public int tcount=0;      @SubscribeEvent public void ontick(TickEvent.ClientTickEvent event){            tcount++;      }      @Override      public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {      if (!playerIn.getCooldownTracker().hasCooldown(this)) {           playerIn.getCooldownTracker().setCooldown(this, 40);           Vector3d v3 = playerIn.getLook(1);           for (tcount = 0; tcount <= 40;) {                if (tcount%10 == 0 && tcount!= 40) {                     final SmallFireballEntity entitysmallfireball = new SmallFireballEntity(playerIn.getEntityWorld(), playerIn.getPosX(), playerIn.getPosY() + playerIn.getEyeHeight() - 0.4, playerIn.getPosZ(), v3.x + playerIn.getRNG().nextGaussian() * 0.05, v3.y, v3.z);                     entitysmallfireball./* shoot */func_234612_a_(playerIn, playerIn.rotationPitch, playerIn.rotationYaw, 0.0f, 1.5f, 1.0f); worldIn.addEntity(entitysmallfireball); } } tcount = 0;                     return ActionResult.resultSuccess(playerIn.getHeldItem(handIn));            } return ActionResult.resultFail(playerIn.getHeldItem(handIn));      } }
    • I found a way to handle this, using javapoet as you suggested. For those who are interested in how it works, you can take a look at my sample here: https://github.com/DarkShadow44/compatibilitymod/tree/sourcegen Might not work with eclipse yet, but it builds properly.
    • It's fired on the logical client and logical server. Most likely you'll only need to execute the logic on the server.
    • If you're translating individual files, there's not much you can do about it. You could use the updateMappings gradlew task, but that's better for large batches of code. As for JSON item models, that is a much more complicated issue that involves layers and custom transform types. While still possible, the tradeoff isn't really worth it.
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.