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

Forge 36.2 Minecraft 1.16.5


Recommended Posts

Forge Version: 36.2.0
Minecraft Version: 1.16.5

Lots of new features and bug fixes. However 1.16.5 has been super stable for the last several months so we've spent most of development time has been focused on the 1.17 update.



  • Added a custom TextureAtlasSprite loaders for blocks that want dynamic textures without a fancy renderer
  • Added a data generators for sounds.json files
  • AbstractFurnaceTileEntity now uses the more versatile `IRecipe.assemble` function result
  • SmallFireballEntity no longer checks the mobGriefing gamerule, in favor of the MobGriefingEvent
  • Piglins now use the MobGriefingEvent when deciding when to pick up items
  • Furnaces now use the IRecipeType of the current recipe when calculating burn time
  • Draining FluidSources is now respectful of the FluidStack being removed
  • PlayerEntities now have a knockback attribute
  • The knockback calculation in `PlayerEntity#attack` has been updated to use the attribute added above
  • Potions have had some Quality Of Life improvements
  • Allow custom ladders to make trapdoors climbable
  • Added some ATs to DimensionSettings to ease their use
  • Allow any Block to announce itself as a potential respawn point
  • Added a new `ProjectileImpactEvent.FishingBobber` event
  • Removed a Nullable annotation from `canCreatureSpawn` which was causing misleading assumptions
  • Removed a faulty patch from the `Entity` class
  • Allow mobs to use custom ranged weapons
  • Allow customizable damage from Lightning Entities
  • Added a dummy `connection` to FakePlayers


  • Fixed an ongoing issue where removing a mod from a LAN world would make it unconnectable
  • Fixed an issue where sometimes the gradle runClient/runData/runServer tasks failed with the message "Unable to locate class file LaunchTesting"
  • Fixed Forgedev environments so that they no longer crash with classloading issues when running the "forge forge test server" configuration
  • Synchronized `ResourcePackList#addPackFinder` in an effort to remove a race condition
  • Fixed some vanilla block model mirroring and rotation issues (MC-227255, MC-134110)
  • The URL button for a mod in the Mods menu has been realigned with the text
  • `PacketBuffer#readLongArray`, `#readSectionPos` and `#readString`'s are no longer removed on one side
  • Fixed an obscure chunk loading deadlock when calling `getChunk`
  • Fixed shift-scrolling on Macs
  • Fixed mob kills not being assigned properly (MC-121048)

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 comment
Share on other sites

This topic is now closed to further replies.

  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Hello. When i tried making another server but for another version i cant seem to find a mods folder. and making one doesn't help.
    • public abstract class NitroglycerinFluid extends ForgeFlowingFluid { // Directly reference a log4j logger. private static final Logger LOGGER = LogManager.getLogger(); protected NitroglycerinFluid(Properties properties) { super(properties); } public static Properties createProperties() { return new Properties(() -> ModFluids.NITROGLYCERIN, () -> ModFluids.FLOWING_NITROGLYCERIN, FluidAttributes.builder(new ResourceLocation("sussybakaplus:block/nitroglycerin_still"), new ResourceLocation("sussybakaplus:block/nitroglycerin_flow")).overlay(new ResourceLocation("sussybakaplus:block/nitroglycerin_overlay")).density(3000).viscosity(1000).luminosity(15).temperature(1300)).tickRate(1).canMultiply().bucket(() -> ModItems.NITROGLYCERIN_BUCKET).block(() -> ModBlocks.NITROGLYCERIN); } @Override public boolean isSource(FluidState state) { return false; } @Override public int getAmount(FluidState state) { return state.getValue(LEVEL); } public void animateTick(Level p_76445_, BlockPos p_76446_, FluidState p_76447_, Random p_76448_) { LOGGER.info("animate"); if (!p_76447_.isSource() && !p_76447_.getValue(FALLING)) { if (p_76448_.nextInt(64) == 0) { p_76445_.playLocalSound((double)p_76446_.getX() + 0.5D, (double)p_76446_.getY() + 0.5D, (double)p_76446_.getZ() + 0.5D, SoundEvents.WATER_AMBIENT, SoundSource.BLOCKS, p_76448_.nextFloat() * 0.25F + 0.75F, p_76448_.nextFloat() + 0.5F, false); } } else if (p_76448_.nextInt(10) == 0) { p_76445_.addParticle(ParticleTypes.UNDERWATER, (double)p_76446_.getX() + p_76448_.nextDouble(), (double)p_76446_.getY() + p_76448_.nextDouble(), (double)p_76446_.getZ() + p_76448_.nextDouble(), 0.0D, 0.0D, 0.0D); } } @Nullable public ParticleOptions getDripParticle() { return ParticleTypes.DRIPPING_WATER; } @Override protected void beforeDestroyingBlock(LevelAccessor accessor, BlockPos pos, BlockState state) { BlockEntity blockentity = state.hasBlockEntity() ? accessor.getBlockEntity(pos) : null; LOGGER.info("spread to " + state.getBlock().getRegistryName().toString()); if (state.getBlock().getRegistryName().getPath().equals("fire")) { float f = 4.0F; Minecraft.getInstance().level.explode(null, pos.getX(), pos.getY(), pos.getZ(), f, Explosion.BlockInteraction.BREAK); } //Block.dropResources(state, accessor, pos, blockentity); } @Override public void tick(Level level, BlockPos pos, FluidState state) { //super.tick(level, pos, state); LOGGER.info("tick"); if (this.hasBurningNeighbors(level, pos)) { LOGGER.info("EXPLODING!!!"); float f = 4.0F; level.explode(null, pos.getX(), pos.getY(), pos.getZ(), f, Explosion.BlockInteraction.BREAK); } else { LOGGER.info(pos.toShortString() + " doesn't have any buring neighbors"); } } private boolean hasBurningNeighbors(LevelReader levelReader, BlockPos pos) { for(Direction direction : Direction.values()) { if (this.isBurning(levelReader, pos.relative(direction))) { return true; } } return false; } private boolean isBurning(LevelReader levelReader, BlockPos pos) { return (pos.getY() < levelReader.getMinBuildHeight() || pos.getY() >= levelReader.getMaxBuildHeight() || levelReader.hasChunkAt(pos)) && levelReader.getBlockState(pos).isBurning(levelReader, pos); } protected float getExplosionResistance() { return 0.0F; } public int getTickDelay(LevelReader p_76226_) { return p_76226_.dimensionType().ultraWarm() ? 1 : 1; } protected boolean isRandomlyTicking() { return true; } public Optional<SoundEvent> getPickupSound() { return Optional.of(SoundEvents.BUCKET_FILL); } } My Fluid Class
    • So how do I get the container? It doesn't need to be a event btw.
    • It says it in the log. It's 16. You need to use Java 8 instead of Java 16 for versions before 1.17.
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

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