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

Forge 11.14.4 Minecraft 1.8

Recommended Posts

Forge Version: 1.8-

Minecraft Version: 1.8



Time for another Recomended build.

This one is a bit sparse due to cpw and myself spending most of our time re-working Fernflower to support the new systems that are in place in Minecraft 1.8.2+ namely GENERICS!

Fry has done a lot of work to add new enchancements and features to Forge while we have been slaving away on Fernflower.

However, Fernflower is now complete enough where we feel confident in working on 1.8.8 and fry has finished the features he wanted for 1.8. So we're doing a Recomended build as a tie-off for 1.8.

The next version we push out should be 1.8.8, and then when 1.9 drops that. The 1.8.8 -> 1.9 gap will be FAR less then the 1.8->1.8.8 gap because 1) It's actually changin things in the game feature wise and 2) We've done all the hard work getting Fernflower ready so we don't have to do that again!


Minecraft Forge 11.14.4 Changelog:



  • New Player sensitive version of Block.getPickBlock
  • New hook to allow modders more control over the 'Reequip' animation.
  • New hooks for keyboard and mouse events in GuiScreens
  • New generic fluid renderer for modders to use in custom fluids.
  • New system to allow 'spawn eggs' to spawn modded entities. Use vanilla spawn eggs with NBT key 'entity_name' set to the modded entity's registry name.
  • Expanded loading screen to include more stages/details.
  • Made minecraft skip the first texture stitch, resulting in faster load times. If issues arise with mods use -Dfml.skipFirstTextureLoad=false to disable.
  • Loading screen now logs timing information, helpful in debugging slow mods.
  • Added detection for impropely installed mods, do not unzip mods to your mods folder unless specifically told.
  • New hooks allowing modders to control the players camera.
  • New ItemLayerModel, a simpler and faster version of ItemModelGenerator.
  • New ability to have custom transformations {non-90-degrees} in Blockstate json.
  • Readded RenderBlockOverlayEvent.
  • Updated ForgeGradle to v2.0.2, and Gradle to 2.7
  • Officially merged FML and Forge projects, nobody used FML standalone so we're no longer developing it seperatly.
  • The loading screen is now disabled on macs by default, can be enabled in config. To many macs have broken graphics drivers. Use at your own risk.
  • Renamed src distribution to mdk {Mod Development Kit} to better reflect the fact that it doesn't ship source for anything or contain Forge.
  • Temporary hook for custom TESRs in ItemEntities. MODDERS DO NOT USE THIS UNLESS 100% NESSASARY.
  • Warn users about conflicting Furnace recipies as the system doesn't support them.
  • New PlayerSetSpawnEvent for better control over players spawn.
  • New model generation pipeline to support more formats and increase performance, as well as improve lighting of custom models.
  • Readded OBJ model support, was temorarly removed due to changes in 1.8's rendering system.
  • The registry remap event is now fired in ALL cases, even if there is no remaps. This is useful for mods who wish to listen for world data changes.
  • Fixed possible NPE in mod discovery.


Bug Fix:

  • Fixed model loading errors being hidden incorrectly.
  • Fixed issue in Reed placement.
  • Fixed issue in plant placement.
  • Fixed minor issue in B3D Loader.
  • Fixed missing block rotations with wrenches on vanilla blocks {mod wrenches}.
  • Fixed NPE in brewing stands.
  • Fixed issue where splash screen config would not be created.
  • Fixed Mesa biome having wrong tag in Biome Dictionary
  • Fixed issue in Wavefront Objects with integer values.
  • Fixed Perspective transformations for items.
  • Fixed BlockState's defaulting to 'minecraft' domain.
  • Fixed particle texture for generated item models.
  • Fixed error screen rendering issues.
  • Fixed potential issue with modders messing up the fluid registry.
  • Fixed issue with scala mods not being detected in some cases.
  • Fixed issue with placing pre-texted signs as op.
  • Fixed issue causing blocks containing at least one IProperty and one IUnlistedProperty not allowing blocks to be placed.
  • Fixed leaves dropping more then they should when sheared.
  • Fixed placing skulls on fences.
  • Fixed issue where players skin would be requested to often.
  • Fixed issue in registering custom network channels.
  • Fixed server watchdog edit being blocked inapropratly.
  • Fixed issue with FakePlayers opening GUIs
  • Fixed issue where entities would not spawn if players have to many 'persistant' entities.
  • Fixed potential crash in event bus iof modders unregister a unregistered handler.
  • Fixed Piston rendering issue.
  • Fixed ConcurrentModificationException that happened when mods spawned entities in EntityJoinWorldEvent
  • Fixed issue with the OreDictionary related to mods replacing other's items in registery.
  • Fixed error message for broken textures not displaying all textures.
  • Fixed bug in GameData.findBlock.


Major New Feature:

OBJ support:

Thanks to ShadeKiller and Fry modders and resource pack creators can now use obj format model files internally and from BlockStates.json.

This allows for really fancy looking models and much more flexibility!



New lighiting system:

Fry has re-wrote a lot of the lighting engine of Minecraft. The vanilla implementation did a poor job performance wise and did not light up complex models very well.

The above image is vanilla lighting, and this one is the new system. Note: There is a config option to disable this in case you run into issues, see the in-game GUI.



Default renderer for Fluids:

If a modder so chooses, they can now use a generic integrated renderer for fluids:



Mod List GUI Changes:

I have reworked the mod list GUI, logos are now centered, the text is scrollable.

AND! Links are now clickable!

The background color has changed, so some mod logos might look weird, sorry. Deal with it ;P



Mod Update Check system:

Its been a highly requested feature, and a highly poorly implemented feature in many mods.

Forge now comes with a standard Update check system.


The updates will be displayed in the Mod List GUI, with clickable links and description if the modder provides it.

All the modder has to do is add a entry into his @Mod annotation: updateJSON pointing at a URL for a json file that follows the format specified here:


End users can disable the update checks in the config file, or by using the in-game config GUI.


I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

Link to post
Share on other sites
This topic is now closed to further replies.

  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Try to swich versions of the game, if that dest work try to install the game again.
    • Hello There! Yes I know it's been a while and there are reasons that I explain in this video! But in this video talk about some pretty cool updates and announcements to the channel that I am super excited to share with you guys! Also yes this was filmed on the Hive about a day before it shut down! I hope you all enjoy this video and if you did don't forget to like and sub for more!  
    • Hi, I'm trying to create an entity based of a minecart but the entity appears to be invisible and unable to be interacted with. I'm not seeing any errors in the debug log. I have included my entity and renderer. I have not added any attributes to this entity as I don't think there is any way to add them to minecarts. I added a message during ticks that appears when its alive but the minecart itself does not. public class TrainEntity extends AbstractMinecartEntity { public TrainEntity(EntityType<?> p_i50126_1_, World p_i50126_2_) { super(p_i50126_1_, p_i50126_2_); } public TrainEntity(World p_i1723_1_, double p_i1723_2_, double p_i1723_4_, double p_i1723_6_) { super(EntityRegister.TRAINENTITY.get(), p_i1723_1_, p_i1723_2_, p_i1723_4_, p_i1723_6_); } public static final String REG = "train_entity"; @Override public Type getMinecartType() { return AbstractMinecartEntity.Type.RIDEABLE; } public ActionResultType interact(PlayerEntity p_184230_1_, Hand p_184230_2_) { ActionResultType ret = super.interact(p_184230_1_, p_184230_2_); if (ret.consumesAction()) return ret; if (p_184230_1_.isSecondaryUseActive()) { return ActionResultType.PASS; } else if (this.isVehicle()) { return ActionResultType.PASS; } else if (!this.level.isClientSide) { return p_184230_1_.startRiding(this) ? ActionResultType.CONSUME : ActionResultType.PASS; } else { return ActionResultType.SUCCESS; } } @Override public void tick() { super.tick(); STAR.LOGGER.debug("STAR - Training Hard"); } public class TrainEntityRender<T extends TrainEntity> extends EntityRenderer<T> { protected final EntityModel<T> model = new CreeperModel<>(); public TrainEntityRender(EntityRendererManager p_i46155_1_) { super(p_i46155_1_); this.shadowRadius = 0.7F; } @Override public ResourceLocation getTextureLocation(TrainEntity p_110775_1_) { return new ResourceLocation(STAR.MODID, "textures/entity/purple_thing.png"); } @Override public void render(T p_225623_1_, float p_225623_2_, float p_225623_3_, MatrixStack p_225623_4_, IRenderTypeBuffer p_225623_5_, int p_225623_6_) { super.render(p_225623_1_, p_225623_2_, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_); //Bunch of other stuff copied from the MinecartRenderer p_225623_4_.scale(-1.0F, -1.0F, 1.0F); this.model.setupAnim(p_225623_1_, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F); IVertexBuilder ivertexbuilder = p_225623_5_.getBuffer(this.model.renderType(this.getTextureLocation(p_225623_1_))); this.model.renderToBuffer(p_225623_4_, ivertexbuilder, p_225623_6_, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); p_225623_4_.popPose(); STAR.LOGGER.debug("STAR - RENDER"); } protected void renderMinecartContents(T p_225630_1_, float p_225630_2_, BlockState p_225630_3_, MatrixStack p_225630_4_, IRenderTypeBuffer p_225630_5_, int p_225630_6_) { Minecraft.getInstance().getBlockRenderer().renderSingleBlock(p_225630_3_, p_225630_4_, p_225630_5_, p_225630_6_, OverlayTexture.NO_OVERLAY); } } Event Register: @SubscribeEvent public static void onClientSetupEvent(FMLClientSetupEvent event) { LOGGER.info("STAR - Client Setup"); //Other renderers RenderingRegistry.registerEntityRenderingHandler(EntityRegister.TRAINENTITY.get(), TrainEntityRender::new); } Any help would be greatly appreciated. 
    • I used diesieben07 suggestion and got it all working. I have included my completed entity for anyone who needs it. Entity Class: public class TestEntity extends CowEntity { public static final String REG = "simple_entity"; public TestEntity(EntityType<? extends CowEntity> p_i48567_1_, World p_i48567_2_) { super(p_i48567_1_, p_i48567_2_); STAR.LOGGER.debug("STAR - Entity Constructed"); } public static AttributeModifierMap.MutableAttribute createAttributes() { return MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 0.5D) .add(Attributes.MOVEMENT_SPEED, (double)0.2F) .add(Attributes.FOLLOW_RANGE, 20.0) .add(Attributes.ATTACK_DAMAGE, 20.0); } @Override protected void registerGoals() { STAR.LOGGER.debug("STAR - Entity Goals"); this.goalSelector.addGoal(0, new TemptGoal(this, 1.25D, Ingredient.of(Items.WHEAT), false)); } } Entity register: public class EntityRegister { public static final DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, STAR.MODID); public static final RegistryObject<EntityType<TestEntity>> TESTENTITY = ENTITIES.register(TestEntity.REG, () -> EntityType.Builder.<TestEntity>of(TestEntity::new, EntityClassification.MISC) .sized(0.98F, 0.7F) .clientTrackingRange(8) .build(TestEntity.REG)); } Thanks for all your help.
    • Ha, lol, I got confused between galloping and sprinting. Turns out horses gallop not sprint. Anyway I just override the gallop method instead and it works a treat.  Thanks for your help
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

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