Warning: Mekanism is currently in alpha, and is not recommended for widespread use in modpacks. There are likely to be game breaking bugs, and updating from one alpha to the next may cause various mekanism blocks to disappear/void their contents. While we will try to not have this happen/keep it to a minimum make sure to make backups. You can read more about the alpha state of this project here.
49c88f0 - Work on attribute system for gases
c8b4973 - Improvements to chemical system
e3fcdc1 - Define CAV as nonnull, other minor improvements
b672fb0 - Start work on transitioning item and block models over to being created via data generators, buckets and tools module are done. Also slightly reorganize texture structure for mekanism tools
94bf266 - Fix Robit translation
1fb65a7 - Cleanup block loot table data generator code
b8a0ef8 - Continue work on moving various model files to being created via data generators
a85fc6d - Fixed integer-based emission target splits, some updates to gas attribute system
f4133fe - Increase base capacity/pull rate of tubes and pipes, fix fluid + gas gauge overflows, cleanup reactor
eee045e - Rebalance interaction between Fission Reactors, Boilers and Turbines A lot of more work is still necessary, but this will hopefully stop abuse of the system
a4b022e - Improve update delay calculations, improve balance of Thermal Evaporation Controller + Resistive Heater, fix Boilers accepting steam Also, doubled efficiency of steam in reactor to give it a further edge and doubled Turbine steam processing speed
2008669 - Fix reactor stats scaling, add a base conductivity value to the boiler, bump fuelwood heater generation
ac9ab07 - Incomplete refactoring of heat API Very incomplete, doesn't even compile- just wanted to get my current changes out. Should provide an idea of how the system will be implemented.
e14f0f1 - Some minor work on method signatures for the heat api
b56bb05 - Continued changes
df3bc25 - Slightly consolidate energy/fluid/infusion/gas tile management for better readibility
7c8da92 - Continued work
4d73458 - Continued work
ea33775 - More work
7f2cc4d - More work Reactor math sucks
13e149b - Continued work, fix a pretty serious issue with cache merging
39fdf64 - Fix some calculation issues
36f0f91 - Minor fixes, ready for testing
a63c4f0 - Work on cleaning up a few things related to the heat api rework
139c73b - Heat API fixes, better calculations for transmitter content scales (in cases where we're transferring very small amounts, #6045), fix mode change #6041 Unfortunately, as we de-register networks each time a transmitter is broken, it will appear as though the contents 'refresh' each time a transmitter is broken. This can be looked into more further
a11c2b6 - Fixed Thermodynamic Conductors We really don't need a proxied heat handler for the conductors, instead we wrap the capability around the tile
317c3f1 - Make Thermodynamic Conductors read/write
40097e4 - More work on cleaning up various calls
49008a5 - Fix some merge conflicts
20f0c44 - Fix Thermal Evaporation Controller, fix conductors not disconnecting from Quantum Entangloporter, fix persistence
88739f0 - Few more minor fixes
ddf85d3 - JavaDoc heat api, as well as some minor improvements
4fadfc9 - Base temperature system around 0 degrees Kelvin rather than ambient temp Also, debug work on Boiler.
54463fa - Fix superheating element active state, other various fixes Beginning to transition back to doubles
36dbf34 - Start transitioning to doubles
999061e - Actually finish heat transition
be8abf0 - Minor fixes, fix universal cable content render
6f43b62 - First pass at converting chemical amounts to be longs instead of ints in preparation for eventual changes to mass amounts of steam production - Various minor config fixes/adjustments, highly recommended to regenerate configs to ensure things work properly - Improve networking for various things by using varInt rather than int, as the locations we pass ints over networks they tend to be small - Partially rewrite ProjectE integration to better handle/fail gracefully if a recipe has a long amount of a chemical, and properly handle if multiple inputs are the same
3e55ff3 - Minor fixes
15f76ee - Fix some rebase errors
57915f3 - Convert dynamic network's capacity to longs. FluidNetwork still clamped to integer for now though. Also fix some potentially incorrect calculations for energy network scale at large network capacities
368f5a6 - Heat Generator fixes
e5c87a0 - Fix FloatingLong to string with decimal places, and add also allow for syncing just the decimal changing in the gui
b5ffebb - Fix heat simulation not taking heat capacity into account, fix Boiler client desync, fix Reactor heat management, fix simulation logic not taking heat capacity into account, adjust heat capacities and production rates for realism
3341511 - Make all chemical fluid variants be flagged as gaseous #6048
c12ecb2 - Update zh_tw.json to 9.9.18 (#6040)
1f7aa9d - Make Oredictionificator handle storage blocks (#6052)
e42fde8 - Update CTM mcmeta files to use the correct block registry names, and add to dev the dev version of CTM and update forge
06d5907 - Minor code cleanup
722249b - More properly handle the ability to have gas usage be a long
a1c555e - Cleanup/reorganize some config values, and add more config options for changing settings for gear in mekanism
a05dd1a - Improve Flamethrower heat logic
8d7cc8c - Improve the visual selection box of various things, and make some moving TERs have their selection boxes move with them
101cc74 - Bump version to 9.9.19                


Warning: Mekanism is currently in alpha, and is not recommended for widespread use in modpacks. There are likely to be game breaking bugs, and updating from one alpha to the next may cause various mekanism blocks to disappear/void their contents. While we will try to not have this happen/keep it to a minimum make sure to make backups. You can read more about the alpha state of this project here.
d32dd87 - Fix QE voxel model, improve interactions with TransitRequest/TransitResponse to make code cleaner and prevent some unnecessary computation
90eaa7b - Allow Fluid Tanks to push overflow water to upper tanks even if auto-eject is enabled. Also, mild performance enhancement.
6f1b2e9 - Cache pathfinder score alongside path itself, further reducing computation
e463776 - Fix energy usage of free runners when stopping fall damage, and make it only reduce the damage by as much as it has energy for. Also add a hud display string to show how much energy is currently stored in the free runners being worn
d47e417 - Fix dynamic tanks and boilers voiding contents on load
6de9665 - Implement more advanced pathfinding caching, preventing single transmitter updates from flushing the game-wide cache This should lead to pretty substantial performance increases, especially in large servers
9294e3e - Rewrite how mode changing for items works internally, and change it so using the mode change key makes the mode go forwards, and holding shift (sneak) and using the mode change key makes it go back one mode (note: this is how it used to go forwards) #5833 - Moved atomic disassembler to using the mode change key rather than sneak right clicking - Added support for scrolling for all mode items that get used in your hand - Added a few more lang keys for when modes change, and changed a couple lang keys slightly to be more "unified" - Changed key bindings to set their "category" as the localization string for Mekanism rather than directly as Mekanism - Made mode change keys only get tracked when not in GUIs - Added changeable keybinds for showing machine descriptions #5158
4574219 - Change network unique id and multiblock unique id to actually being UUIDs this will cause most multiblocks to lose their data on initial load. Fixed turbines not quite working properly due to the accidental loss of the correct block
545145e - Fix setting energy values in GUIs #5996
d7166a4 - Cache the baked quads for transmitter contents, drastically improving the FPS #5127
1a344f2 - Start work on making networks sync to clients more accurately and not require the client to request an update from the network. - The contents of the network don't sync yet on first load - Various bugs need to be fixed about the visual connections of incompatible networks, though I believe this might have been broken earlier during the port from 1.12
053cb08 - Fix some invalid connections from rendering
21945d5 - Stop networks from having a specific client side tick, as they no longer need/use it
0ce1684 - Improve network auto disconnection
f917691 - Further improve the logic, by not allowing connecting to orphan transmitters if it can have incompatible networks. Instead once a network claims an orphan then it updates the connections
b1af021 - Improve how we invalidate the transmitter's model, hopefully should finally resolve #5922
dcdd2c3 - Use our own custom handling for drawing selection boxes of some of the more advanced ones. #5747 Eventually we may try to further improve it so it draws lines at angles and such, but for now this is a quick and easy way to massively improve the FPS
a27ae7e - Define a way to sync less information on non initial update packets. Use this to do the initial sync for what is in the contents of pressurized tubes, mechanical pipes, and universal cables
c0cb85e - Fixed Robit crafting, added tighter JEI integration to Robit & Formulaic Assemblicator
671b449 - Fixed multiblocks not sparkling when reforming, fix allowed frame blocks for multiblocks
91f69e5 - Fix CME (#6009)
2d4eaa1 - Fix various issues with rendering not updating properly when incompatible networks merge after becoming compatible, or if the network is empty, and the "type" that is passing through it changes Note: There are still some issues with the networks not properly merging/once unmerged again, visually are able to connect
1732b2b - Add some safety checking against zero capacity networks #6010
5b2c63c - Fix fallback for before configs load for pipe pull rate limit. #6011
d9a2e29 - Slightly improve logic for connecting pressurized tubes or mechanical pipes
9e85eff - Further optimize mark dirty of our tiles so that we can call them in a way that does not have to recheck the blockstate if we don't believe it has changed #5997
acf8dc3 - Fix not properly handling attempting to send large amounts of items at once
f0dc5e6 - Cleanup not properly handling input/output supported checks for entangloporter side configs, and also reduce amount of duplicate code needed for creating proxies for valves in multiblocks
51b7400 - Fix bio generator not actually needing fuel to produce power #6017 and improve its fluid scale calculation
13424b6 - Fix Coord4D constructor
88c2e33 - Work on moving gui interactions to a newer packet system
76ad73c - Fix heat network flow translation
1c3ae0f - Fix a couple lang issues, and make it so that the directions are localizable
b5b6af7 - create ja_jp.json (#6025)
e3cb07c - Adjust indentation to match other json files, and remove the old ja_jp.lang file now that it has been properly ported
4c17257 - Bump dev forge version and bump TOP version to directly make use of the new PacketBuffer params
91a5eb3 - Write backend for creating sounds.json files via data generators an move our sounds.json files over to being made via data generators. Also strip out the optional replace tag from tags when it is default, and strip out forge's new optional list from tags when there are none set
4ad99b3 - Cleanup our implementation of having all types of tags be able to be provided from a single class so as to make it more easily extensible
ca61a0d - Continue work on rewriting how we handle packets, and cleanup some constructor calls
89bc6ce - Continue work on rewriting how we handle packets
67785a7 - Move transporter syncing to its own packet rather than using PacketTileEntity
ee2571d - Continue work on rewriting our packet handling system
3bcf9bc - Rewrite handling of flamethrower, jetpack, and gas mask active state sync
fc20942 - Continue work on rewriting handling of packets
27e0ff4 - Cleanup implementation of security update packet
67fee8f - Make it easier for modules to register their own packet handlers and move generator's packet to being in its own packet handler
4fbc92d - Remove the need for TileNetworkList
5fba2b7 - Fix some issues with recipe upgrading #6019, and also improve performance of calculations so that we don't bother checking items that don't have any NBT. Also fix the majority of items ending up with an empty mekData tag, and fix jei subtype interpreter not working if one item supports multiple types of data
9243dcc - Split portable teleporter packet into a client to server packet and a server to client response packet
c6533a3 - Rewrite handling of gauge dropper and add support for handling infusion types in it #5821. Also make "durability bar" for storage items like gas display the color of the stored gas
0e50209 - Void excess energy for upgrade recipes, fixes not being able to craft a robit with filled energy tablets
87e98e2 - Bump version to 9.9.18


Warning: Mekanism is currently in alpha, and is not recommended for widespread use in modpacks. There are likely to be game breaking bugs, and updating from one alpha to the next may cause various mekanism blocks to disappear/void their contents. While we will try to not have this happen/keep it to a minimum make sure to make backups. You can read more about the alpha state of this project here.
8cfe2a4 - Fix ore/resource harvest levels (#5942), fix Paxel harvest levels 
7923962 - Hopefully fix transmitter model issues (#5922), remove client-side markDirty() call We used to call markDirty() on the client as it would trigger an all-sides neighbor update which was necessary for some kind of multi-mod interaction. It's not relevant anymore though as far as I can tell, especially since we have an internal markDirty() impl which prevents such updates. 
c8476c1 - Fix harvest level changes 
7e9ff56 - Initial experimenting with using vanilla's sync/update packet system rather than our own 
8ff4379 - Move all NBT keys to strings. Some things got renamed so various misc things may be voided from Mekanism machines/blocks so I would recommend emptying things just to be on the safe side. In some cases it will just be machine configurations that get reset. Also changed how the chunk loader component saves chunk positions, so you may have to go and reload the chunks to get them to stay loaded again. Things with bounding blocks like digital miners, advanced solar generators, security desks may unbind the bounding block from the actual main block, so should probably be broken/picked up before updating 
b387c94 - Move JSON string key constants to constants to make it easier to prevent typos and if there are typos at least have them be consistent throughout serialization and deserialization. No current recipes should break as nothing has been renamed. 
006dbe6 - Only sync the energy scale to clients for energy cubes unless the gui is open 
03738bd - Fix Gas Generator sound, fix Gas Generator 'burn rate' readout (#5047
ce6aec5 - Start converting more tiles to syncing stuff via vanilla's packet system. Also fix the Bio generator processing stuff on both the client and the server instead of just the server 
1e3592b - Finish converting ITileComponents over to properly syncing their data 
7c0f0cd - Fix transmitters not checking bounds prior to placement, fix PRC GUI title 
17019a8 - Cleanup some code pertaining to inventory ejecting, ensuring we grab items based on what can be extracted rather than what is directly in the slot. #5938 
fc5e007 - Fix improper internal insertion restrictions for rotary condensentrator tanks #5940 
3ffb6c8 - Fixes pressurized tubes and mechanical pipes not being able to connect to quantum entangloporters #5950 
381eadd - Fix Fluidic Plenisher GUI, and fix tank insert/extract checks for the electric pump #5951 
8b990a4 - Fix pump & plenisher GUI scaling 
7d41e3f - Reinstate active state update delay (#5848), clean up active state mess A bunch of machines were making particle effects when they shouldn't have been, QE should not have an active state to begin with 
fb878c0 - Split onUpdate into two methods, onUpdateClient and onUpdateServer, to make the code more readable about what is happening on what side, and to note require as much indentation due to isRemote checks 
e6ac88d - Cleanup implementation/handling around isCapabilityDisabled, to only have to check it once rather than at each level of super, and to make it so manually calling it can be forgotten about. 
6371faa - Fix a potential issue with active state changes 
1951d1a - Update machine lighting on world load 
4c88139 - Work on moving transmitters to syncing their initial data via vanilla's update packet 
4f5822e - Work on moving the security desk to using vanilla's update packet and our container sync system. We still need to properly move over syncing the trusted players list 
e25085c - Create system for syncing lists as elements in containers 
1fc912d - Move evap controller and resistive heater over to vanilla update packets 
9527146 - Create a way to sync filter lists for containers - Cleanup some code pertaining to filters - Compare hashcode of list to check if it is dirty rather than comparing all the elements - Make HashList implement the List spec - Fixed error in loading frequencies 
0294ecf - Move fluid tank syncing to vanilla packet system, and cleanup implementation of lasers and move that stuff over to the new method of handling sync data 
757ed70 - Switch induction matrix over to using vanilla sync packets and the container sync system 
723c950 - Convert dynamic tank, and internal multiblocks to using vanilla update packets, and our container sync system. Also fix an NBT clash that accidentally introduced 
f0dea9f - Fix sparkling effect playing continuously 
c342a13 - Continue work on converting multiblock packet handling. Also start working on attempting to fix some of the packet spam that multiblocks have
437f2fa - Only sync fluid changes for rendering for the fluid tank, boiler water tank, and dynamic tank when the scale changes, rather than on every mb of difference. Also move the scale calculation to a util method to ensure that we render at least something if there is any contents 
7ebe623 - Use our own sync packet to avoid chunk rendering thrashing 
9bedc8b - Add support for showing how much time our TERs are taking in the debug pie chart for block entities 
324382d - Convert reactor over to using the new sync system, and fix the normal laser always firing the max amount of power even when it didn't have that much power stored 
c27ebf3 - Move syncing of formula to our container sync system, and fix a few different issues with rendering of specific gui pieces 
4c490e2 - Switch steam tanks for the turbine, reactor, and boiler to be gas tanks and use the gas variant of steam, rather than fluid tanks using "liquid steam" - Add in scale target for the steam rendering of the turbine and boiler so that we don't have to send an update packet every time the stored amount changes by a single mb - Fixed reactor active state - Fix reactor not actually using any inputs 
eb2d176 - Remove specific implementation of a few interfaces when the super class already implements them 
7facb95 - Only sync different gui information for multiblocks when the correct tab is being displayed 
361fbf9 - Always send the structure if the multiblock tile is rendering. It is a relatively small amount of extra data, removes the need for the client to send a data request, and we have also reduced a lot of multiblock packet spam already 
f79b42c - Remove no longer used baseBlock from Model3D, and improve the logic used for picking the direction to render the teleporter's portal in. No longer should have an edge case that causes it to sometimes render in the wrong direction 
382dc22 - Fix attempting to send packet initially on every block placement, and fix a few packets being sent before the data to send is set 
1736513 - Update dev version of forge + mappings, and switch back to the latest FG3, now that the fixes needed have been merged 
7e21519 - Fix a few bugs with the robit's repair screen #5964 
4799260 - Various improvements to text boxes in GUIs, and makes sure the text persists even if minecraft's window is resized 
4666b85 - Make less classes implement ITileNetwork, and fix sound for stepping on and off of chargepads 
efa7f88 - Move teleporter and quantum entangloporter syncing over to using the container sync system 
0e70296 - Fix a few minor issues with the reactor and its formed state 
83b4fff - Move registering our transmitter model loader even earlier. Should hopefully prevent #5881 and #5963 
349ff4c - Remove a couple cases we set the glow, as it did not seem to change anything, and move the configurable machine overlay to using the block highlight event to reduce the amount of calculations that have to happen if you have a lot of machines and are holding a configurator to ray trace and see if you are hovering that machine 
1c13d44 - Improve performance of rendering various TERs by batching calls made to the same render type at least within an individual TERs 
a66793a - Improve and fix a few bugs in the flame renderer 
6dcef43 - Improve accuracy of getRenderBoundingBox so that tiles can be properly culled when they are not in view, and add a full block render bounding box to transmitters so that they can render their contents even when they are barely on screen - Improve rendering logic of turbine rotors when not inside a formed turbine - Fixed turbine rotors sending update packets before the client has a tile for that position 
e940835 - Improve the render bounding boxes for multiblocks and the digital miner 
0b36c7a - Further cleanup of NBTConstants, and fix model loader causing issues in runData 
79b67de - Fix actually moving remaining items instead of just simulating the move, and thus duping the remaining items #5966 
aea149f - Do some basic cleanup to RenderResizableCuboid and remove a bunch of unused code 
bf6119d - Bump version to 9.9.16


fdaaabb - Update gradle to 4.8.1

cb72dc7 - Update dependencies

cbd82f9 - Fix warnings for build.gradle

403cdaa - Reconnect pipes across chunks when the chunk loads. Fixes #5583 (#5584)

d9b58b5 - Code cleanup (#5582)

efbcdca - Fix unused enableFog GL call. Fixes #5579 compatibility with BetterFPS' Fast fog mode

31f3277 - A small deduplication of the OreDictManager (#5577)

bebcee0 - Move all references to energy conversion ratios to their own class rather than duplicating the logic across multiple classes

ba41475 - Partial fix for #5576. Stopped it from overflowing though at some point the EnergyNetwork should still be updated to having capacity be a double.

4fbd1d8 - Fix lang keys for dumping excess and dumping being backwards #5594

9ccdaa3 - Fix being able to break nether portals by hand #5590

50d15fb - The server has to be the side that tells the client to open the gui, fixes #5593

f887183 - Fix potential null pointer when using the result of TransporterStack#getSide

c2910fc - Fixes Oredictionificator Filter not initializing properly. #5597

9c76c68 - Fix using wrong side for getting capability

0f5ef4e - Make EnergyNetwork capacity be a double (#5589)

034340e - Cleanup Tools Module code (#5578)

8082d64 - Bump version to 9.8.1