Read our FAQ!
Info
TFMG Community Edition is a fork of Create: The Factory Must Grow that contains various bug fixes and improvements. It will eventually be merged into the official mod at a later date but will be released as a fork until then.
For information on how you can modify TFMG for your modpack/mod please visit our documentation!
TFMG Description: Create is by default a steam/clockpunk mod and most addons aim to expand this part of Create and do that pretty well, we thought the next natural expansion would be moving on from steampunk to dieselpunk. We believe that create could be later used not just as a single steampunk tech mod, but due to its modularity and polishedness, it is a perfect base for other tech mods aiming to Create (get it) something new with it, essentially using it as a library. We wanna be the first ones to try and prove this concept.
All Versions
+ Add Version## Rant:
Ordering loads
Contributors:<br>
@pouffy
- Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.**
## Changelog:
### Bug Fixes:
- Fixed load orders that stopped some recipe overrides from working.
## Rant:
Wow, much changes! A few bug fixes but mostly changes to how things work.
Contributors:<br>
@pouffy @wolfieboy09 @ShallowAssumption
- Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.**
## Changelog:
### Bug Fixes:
- Fix rare
ConcurrentModificationExceptionbeing thrown withElectricalNetwork#checkForLoops - TFMGTiers now uses proper mineable tags.
- Rebar recipe now produces 2 per ingot instead of 4 to prevent duping.
- Cooling Fluid Bottles and Oil Cans no-longer void their contents instantly.
- Blast Furnace top hatches no-longer void items.
- Copycat Cable Blocks now function as actual copy cats.
- Fixed recipe duration on Blast Stoves being unreliable and improved recipe checking.
- Fixed tick duration formatting in Industrial Blasting & Coking categories.
- Fixed a bug where Bits n Bobs dyed pipes wouldn't render properly.
### Changes:
- Liquid Concrete now has it's dedicated colours for each dye type.
- TFMG now uses the standard
90mB ⇒ 1 ingotfluid units in recipes. - Small Engines now have goggle info on applied upgrades for all connected engines
- Blast Stove
- Capacity now scales with volume.
- Maximum height changed to 5.
- A modified Blast Stove will no-longer stop allowing pipe flow in some contexts.
- Surface Scanner
- Scans 7x7 area rather than 5x5
- Now can be picked up with shift and right-click of the wrench
- Better visuals for rotating on sub-levels.
- Scanners now give off a redstone signal like navigation tables from Aeronautics.
- Flamethrower
- Fuel type now pulls fluid lang key instead of relying on a new key
RutileIntegration- Added chemical composition files for relevant items/fluids.
Create: Big CannonsIntegration:- Removed mixer alloying recipes.
- Removed compacting-casting recipes.
- Added Melting recipes for TFMG metals.
- Added Casting Basin recipes for CBC metals.
- Added Vat recipe for Nethersteel.
- Chemical Vat
- Vat recipes in JEI now cycle all valid vat types.
- Distillation Tower
- Distillation Controller uses recipe-specific durations.
- Timer progression is based on the heat level of the tower.
- Progress percentage now displays in the goggle tooltip.
- Tweaked durations for all distillation recipes (200 ticks per output).
- Capacity:
- Exhaust: 1000mB -> 4000mB
- Smokestack: 8000mB -> 16000mB
- Exhaust Drain Rate:
- Exhaust: 100mB/t -> 500mB/t
- Flarestack: 25mB/t -> 100mB/t
- Smokestack: 150mB/t -> 1000mB/t
- Smoke Timer:
- Smokestack: 40t -> 500t
- The Engine Piping upgrade can now pull from any adjacent fluid handler instead of just Create's fluid tanks.
- Oil Deposits:
- Fossilstone is now only placed where a stone-type block would be.
- Oil Branches no-longer replace air.
- Oil Deposits now properly generate at the very bottom of the world.
- Oil Deposits will not place if the origin point isn't bedrock.
- Blast Furnace:
- In cases where the fuel time for Coal Coke is lower than the recipe duration, the JEI category will now show an amount of dusts needed instead of 1.
steel_from_dustrecipe now only loads if Iron Dust exists.- Recipes
- All recipes now use the
tfmgnamespace instead of some usingcreate. - Added proper crushing recipes for Lead & Nickel ores.
- Removed Create's crushing recipes for Lead & Nickel ores.
- Added ore smelting recipes for Lead, Lithium & Nickel ores.
### API Changes:
- Removed
ILockablePipe - Removed
PipeAttachmentModelMixin - Pipe Locking now uses the
tfmg:locked_pipedata attachment. - Removed
ItemFluidTank FluidContainingItem's constructor now takes in aPredicate<FluidStack>as a validator instead of a strictFluidEntry<?>.- Added
tfmg:tag_filledcondition. - Added DyedItemList for dye-based registry.
- Added DyedFluidList for dye-based registry.
- Added DyedMaterialSetList for dye-based registry.
### New Translations:
block.tfmg.engine.tooltip.upgrades->Upgrades
## Rant:
Ah yeah, hotfixes!
Contributors:<br>
@pouffy @wolfieboy09 @ShallowAssumption
- Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.**
## Changelog:
### Bug Fixes:
- Coke oven multiblocks work again
### Changes:
- Light bulbs (& variants) allow more fine-tuned redstone control of their intensity.
- Cable Connectors print their current input mode on their multimeter tooltip.
- Fix Data Generation from failing when CLF: Reburned is not present
### API Changes:
- Added an optional
showIfEmptyargument toTFMGUtils.createFluidTooltip, to reduce flashing on rapidly updating tanks.
### New Translations:
- Cable Connector Block
block.tfmg.cable_connector.input_modeblock.tfmg.cable_connector.input_mode.trueblock.tfmg.cable_connector.input_mode.false
## Rant:
This took a while... hehe
There were just a load of breaking bugs and stuff and I couldn't justify releasing with them included.
Contributors:<br>
@pouffy @wolfieboy09 @ShallowAssumption @The0x539 @Tape-Dispenser
- Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.**
## Changelog:
### Bug Fixes:
- Concrete Hoses now render correctly.
- Blast Furnaces no longer crash the world with an index out of bounds.
- TFMG fluid handlers should allow pumps to interact again.
- Blast Stoves now allow fluid extraction.
- Winding Machines can have manual item input again.
### Changes:
- Coke Oven:
- Now hides progress when no recipe is being processed.
- Exhausts & Smokestacks now accept any fluid with the new tag
tfmg:exhaustable - Ponders:
- Added ponders for the following:
- Regular Engine Assembly.
- Radial Engine Assembly.
- Large Engines.
- Vat:
- Recipes now have durations to prevent instant making of stuff, and some modified.
ChemicalVatCategorynow uses a dynamic barometer needle to display pressure.- Items now render inside vats
- Also spins with mixing and the centrifuge in the direction of rotation.
- Fluids no longer z-fight with the top of the vat.
- Oil Deposits:
- Oil Reserves now drain over time.
- Oil Reserves are now stored in a chunk attachment rather than level data.
- Oil Reserves are now created on deposit generation instead of on pumpjack assembly.
- Oil Deposit features now have a minimum height of 10 blocks.
- Fossilstone in deposits now starts at half the height instead of 4.
- Empty Oil Reserves now convert all contained deposits into Bedrock.
- Polarizer:
- Displays tooltip through the multimeter, not goggles.
- Tooltip rounds item charge (This helps prevent flickering).
- Mechanical arms can now insert and extract items.
- Particles now show when a recipe is completed.
- Blast Furnace:
- Top Hatch is now evaluated with the rest of the multiblock.
- Top Hatch now directly inserts items instead of dropping them.
- Top hatch now properly saves its inventory.
- Blast Furnace Hatches now limit certain inventories based on their place in the multiblock.
- Multimeters are no longer incompatible with Goggles.
- Added support for
Create: Liquid Fuels Reburned. - World Generation:
tfmg:striated_ores_overworldhas been removed.tfmg:striated_ores_netherhas been removed.- Split striated ore features into individual features.
- All features now have a config-toggle for enabling/disabling.
- Added
tfmg:config_booleanplacement modifier.
### API Changes:
- Created VAT operation registry.
- Marked
MachineConfig$polarizerItemChargingRateas marked for removal. TFMGUtilschanges- Deprecated fluid handlers - use
ForceableFluidTankinstead. drainFilteredTank (SmartFluidTank, int)drainFilteredTank (SmartFluidTank, FluidStack)- Tooltips
- Now deprecated:
createStorageTooltip (BlockEntity, List<Component>)createFluidTooltip (BlockEntity, List<Component>)createItemTooltip (BlockEntity, List<Component>)- Replaced by tooltip generators not dependent on a capability lookup:
createFluidTooltip (List<Component>, IFluidHanlder...)createItemTooltip (List<Component>, IItemHandler)- Created
TFMGClientConfig - Created
UIConfig. - Vat:
- Vats now use
VatOperationfor VAT machine IDs. - Vats now use
Pressureinstead of relying on anint. VatMachineRecipe$Buildernow haspressure(int)andheatLevel(int).VatMachineRecipenow uses correct builders.VatRecipeParamsnow have default values (datagen kept throwing NPE).- Vat goggle information now shows recipe progress.
- Fixed bug where recipe would get set to
nullcausing recipes to take longer. - JEI rendering for Vat Operations, Vat Operation Tooltips & Vat Types is now handled through the
VatCategoryEventclient event. drawVatTypes&drawSpritesinChemicalVatCategoryare now deprecated for removal.- Pressure, Item, and Fluid capabilities point to the controller tank contents
- Electricity:
- Removed
getPos()[long]inIElectricin favour ofgetPos()[BlockPos]. - Mixin
PipeAttachmentModelMixin#gatherModelDatano longer uses@Overwrite. - Changed
TFMGRemapperandComponentRemappera little. - Polarizer:
- Energy defaults to
2000(2kW) - Polarizing recipes now have
energyas a field to specify required amount. PolarizingRecipenow has anenergyfield.- Data gen can specify amount of energy.
- Polarizers now have an output inventory.
PolarizerBlockEntity#getItemChargingRatenow uses recipe charge rate.
## Rant:
Something something version idk :3
This patch fixes some recipes, a weird texture and a dupe bug
Contributors:
@pouffy @wolfieboy09 @pepagg
- Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.**
## Changelog:
### Bug Fixes:
- IElectric now updates when the power state changes (power/voltage usage/generation) which fixes Creative Generators not updating the network.
- Fixed Blast Furnace not being able to finish recipes.
- Fixed Distillation Controller not detecting heat properly.
- Fixed names of the Layered Galena textures.
- Fixed a duplication bug related to Sable.
- Engines no longer fully assemble on a right-click with any item unless you are in Creative.
### Changes:
- Distillation
- The amount drained now matches recipe input amount.
- The amount filled now matches the recipe result amount.
- Added a delay between processes based on the heat level of the tank.
- Added ponder for the Winding Machine.
### Known issues:
- Engines don't have ponders.
- Vats and Tanks of different types connect to each other.
- Breaking a Cable Connector doesn't fully disconnect the other end.
## Rant:
Minor bug fix :3
Contributors:
@pouffy @wolfieboy09
Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.
## Changelog:
### Bug Fixes:
- Fix TFMGMixerModes from attempting to load models on the server (client side only)
- Connecting Cable Connectors with a spool now properly updates the other.
## Rant:
Yippee new version! <br>
This one has quite a few changes to how some parts of the mod work, but it is all safely converted so don't worry!!
I can't be bothered to note all the contributors after each change, so I'll just dump them here:<br>
@pouffy @ShallowAssumption @wolfieboy09
And now for the notice at the start of every changelog!<br>
Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.
## Changelog:
### Bug Fixes:
- Our version checker no-longer prints html.
- Re-implemented the Vat Evaluation packet so vats should now evaluate properly on clients.
- All TFMG packets are now properly registered under
tfmginstead ofcreate. - Updated
doesntWorkWithin IndustrialMixerBlockEntity to use the namespaced electrode ids. - Configuration Wrench now only returns a successful interact if the player is crouching.
- Fixed Flarestack violently flashing during low input speed.
- Fixed Blue Sparks not creating fire on hit.
- Air Intake can now fill up to their capacity when production is high.
- Coke Ovens facing each-other no longer freeze.
- Polarizer charge percentage now resets regardless of power usage.
- Pumpjack disassembly now has a small delay to stop them disassembling on a quick chunk reload.
- Various Item containers now properly drop their inventories when destroyed.
- Steel Tanks now passively update their boiler state.
- Traffic Lights can now be green.
- Fixed two instances of components being retrieved unsafely in the Winding Machine.
- Lightning strikes now properly perform polarizing recipes.
- Cleared up TFMG's JEI plugin and removed Create's copied over implementation.
- Engine Cylinders and Turbine Blades have recipes again.
- Engines of different types no longer connect.
- Encased cogwheel item models now show the correct cogwheel type.
- Steel, Aluminium & Heavy Casings can now encase blocks properly.
- Fixed typos in some cogwheel texture names.
- Segmented Displays now safely decode their display contents.
- Rolled back a change done to
IElectricthat made Power Grid incompatible. - Industrial Mixers should no-longer void the Mixer Blade/Centrifuge item.
- Electrode Holders should no-longer void the Electrode item.
- Added native support for Chemica.
- Engines are now mineable.
- Spools properly prevent duplicate connections.
- Cable Insulators deduplicate existing connections on-load.
- Various fluid handlers now properly invalidate their capabilities.
### Changes:
- Added some new configs:
- Compressor minimum RPM.
- Industrial Mixer minimum RPM.
- Surface Scanner minimum RPM.
- Freezer minimum current.
- Polarizer minimum power.
- Added more config groups to the machine config.
- Blast Furnace:
- Multiblock logic has been separated into a new class.
- Tuyere position and multiblock size are now saved to the block entity nbt.
- Multiblock evaluation happens every lazyTick instead of once on placement.
- Added
lazyTickto Blast Stoves to update connectivity. - Vat:
- Vat Machines now display personal goggle/multimeter info if they are operational or not.
- Vats can now be multi-placed.
- Vat pressure and heat level do not display floats any more.
- Vat recipe
allowed_vat_typesnow uses a list ofResourceLocations. - Vat types now use
ResourceLocationin place ofString. VatRecipeGenno longer uses generics.- Vat pressure is limited to between
-9and9(inclusive). - Industrial Mixers now have an item handler.
- Added
tfmg:mixer_moderegistry. - Added
tfmg:mixer_modedata component. IndustrialMixerBlocknow handles item insertion and extraction better.- Mixer rendering is now handled through the registered mode.
- Industrial Mixers now also update the vat during a speed change or when their item handler is changed.
- The Vat's item inventory now notifies the vat when it is updated.
- Multiple vat attachments of the same type are now grouped in the tooltip.
- Compressors now have operation ids:
tfmg:compressorandtfmg:decompressor. - Freezers now have an operation id:
tfmg:freezer. - Compressors now notify the vat when their speed changes.
- Freezers now notify the vat when their electricity network changes.
- Electricity:
- Modified the extraction calculation on Cable Insulators to improve the amount of FE being consumed.
- Nicer Cable visuals.
- Engines & Engine Adjacent:
- Improved Air Intake goggle tooltip.
- Engine types are now a registry.
- Correct cylinders are now tag-based.
- Regular Engine denies
tfmg:engine/turbine. - Turbine Engine denies
tfmg:engine/cylinder. - Both cases require the input to have the
tfmg:engine_cylindercomponent to be valid. - Engine types are safely remapped from their legacy values when reading from engine nbt.
- Added JEI search aliases for Turbine Blades (
turbine) & Engine Cylinders (piston). - Surface Scanners:
- Surface Scanner grid now accuratley based on chunk grid
- Surface Scanners on Sub-Levels now re-scan when moved into a new chunk.
- Added TFMG Encased wooden cogwheels.
- Added Industrial Aluminium encased blocks.
- Cleaned up Neon Tube.
- Marked "The Factory Must WORK" as incompatible with Community Edition due to conflicting bug fixes. This may be revoked at a later date.
- Added credits to
neoforge.mods.toml. - Coke Oven progress is now displayed as a percentage.
- Winding Machine:
- Change spool to
SpoolInventory - Support legacy
SpoolNBT and migrate to new system - Create an inventory for output
- Shift-right click now takes out the spool instead of the item
- Normal right click now takes out the item and resulting item
- Wire stops rendering when a recipe has been completed
- Fixed spool not being saved/loaded correctly (
read()parsed spool but never assigned it) - Deployers can insert spools and items into the winding machine
- Deployers can also take out empty spools
- Prevent deployers from taking out non-empty spools
- Empty spool can be emptied from the spool side
- Prevent items from being inserted when output is full
### API Changes:
- Added Sable Companion as an embedded api.
- Updated mixin compatibility level. (JAVA 8 → JAVA 21)
- JEI integration has been moved to a new folder. (
recipes→inregration.jei) - Engine types are now blacklisted from the schematic cycle via the
tfmg:schematic_cycle_blacklisttag. - Engine Upgrades now use the
tfmg:upgrades_on_sideengine tag for rendering. - Large Engine fuels are now determined through the
tfmg:large_engineengine fuel type tag. - Removed
RegularEngineBlockEntity.EngineTypeenum. - Internal tag enums in
TFMGTagshave been renamed (TFMGTags.TFMGItemTags→TFMGTags.Items). - Added
formatFluidinTFMGUtilsfor fluid units. - Added
fluidProductioninTFMGTextsfor fluid production. - Added
countinTFMGTexts.Vatfor Vat Attachment counts. - Renamed & remapped
heavy_casing_encased_blocks toheavy_encased_. - Added Decimal Formats to
TFMGTextsfor properly formatting numbers. - Re-introduced Micron unit just in case.
- Added
returnItemToInventorymethod toTFMGUtils. - Removed
IndustrialMixerBlockEntity.MixerModeenum. - Removed
TFMGLang.temporaryText. - Removed
IHaveCables. - Flamethrower Fuels now use the
tfmg:hellfiretag instead of thehellfireboolean. - Flamethrower Fuels now use the
tfmg:coldtag instead of theis_coldboolean. - Removed
"hellfire"and"is_cold"fromFlamethrowerFuelTypein favour of tags. - Added
rotateQuatmethod toTFMGUtils. - Item component remapping is now handled via
ComponentRemapperinstead of the item class. - Moved TFMGRemapper from
base→remap. - The following are deprecated for removal. If you are migrating your addon to depend on Community Edition I'd recommend fixing these:
IElectric.getPos()(returns long). We are trying to move away from storing BlockPos as a long and you should useIElectric.position()instead.Electrode.Properties.item(ItemEntry<?>). Electrodes are stored as a data component and this is now irrelevant. You should assign a default component to your electrode item instead.Electrode.Properties.operationId(String)The operationId in Electrodes is now a ResourceLocation. You should use theoperationId(ResourceLocation)builder method instead.FuelType&FuelType.Builderare no-longer used to register custom engine fuels. Instead, use a datapack registry withTFMGRegistries.ENGINE_FUEL_TYPEto create types.TFMGDataComponents.FLAMETHROWER_FUELis only used for remapping and **will** be removed at a later date.- Engine Cylinders are now created with the
TFMGDataComponents.ENGINE_CYLINDERcomponent. Consequently, the following **will** be removed at a later date: TFMGDataComponents.FUEL_TAGS, no longer used for anything.TFMGDataComponents.FUELS, only used for remapping.CylinderItem, only exists for addons that still use it.
### New Translations:
People who wish to translate this mod should look out for changes here.
- For new and removed translations check the latest en_us.json in the
src/generated/assets/tfmg/langfolder. - The following already exist but will need changing:
- "tfmg.goggles.vat.tfmg.centrifuge" | " Centrifuge" → "Centrifuge"
- "tfmg.goggles.vat.tfmg.electrode" | " Electrode" → "Electrode"
- "tfmg.goggles.vat.tfmg.graphite_electrode" | " Graphite Electrode" → "Graphite Electrode"
- "tfmg.goggles.vat.tfmg.mixing" | " Mixer" → "Mixer"
- "tfmg.multimeter.large_transformer.air_cooled" | " State: Air Cooled" → "Air Cooled"
- "tfmg.multimeter.large_transformer.metal_cooled" | " State: Metal Heat Sink Cooled" → "Metal Heat Sink Cooled"
- "tfmg.multimeter.large_transformer.oil_cooled" | " State: Oil + Heat Sink Cooled" → "Oil + Heat Sink Cooled"
## Rant:
Woag Modrinth!
I'm just gonna put together the changelogs for 1.2.3 and 1.2.3a in here because I don't wanna upload both versions.
Contributors (GitHub names): <br>
@pouffy<br>
@ShallowAssumption<br>
@Garoot1111<br>
@Skr1pee<br>
@SylvanSerenity<br>
@cakeGit<br>
@Magi1053<br>
@OlziYT<br>
@nuomicici<br>
Please note that not all bugs are fixed and some new additions are subject to change and should be considered experimental.
## Changelog:
### Bug Fixes:
- Blast Stoves now have the correct max size and the connectivity no-longer shows invisible blocks.
- Fixed invalid rotation values in the Large Transformer model.
- Fixed some bugs and crashes related to null checks and number formatting.
- Removed aggressive overrides from FluidPipeBlockMixin.
- Fix NPE in RegularEngineBlockEntity.isCylinderSame when FUELS component is null.
- TFMG fluid tank logic has been migrated out of the mixin.
- Lead Blocks no-longer connect to Nickel and Lithium Blocks.
- TFMG tools now have the appropriate tags.
- Fixed Hellfire not always working on entities.
- Material variants for Mechanical Pumps now use item-accurate cog models.
- Added non-diagonal-walls tag to blast furnace reinforcement wall.
- Fixed Radial Engines creating permanent Half-Shaft visuals.
- Fixed the cable lighting and removed unused 'id' from cable connector BE.
- Fixed fluids not rendering in Steel Fluid Tanks.
- Fixed an issue where an Advanced Potato Cannon would drain all valid ammo from the player every tick whilst in survival.
- Oil Deposits no longer override the strength setting of Bedrock which resulted in them being technically mineable.
- Removed Oil Deposit from the pickaxe mineable tag.
- Added Oil Deposit to the
blocks_wind_charge_explosions&geode_invalid_blockstag. - Fixed some typos in item tooltips.
- Fixed cables having backwards lighting.
## Changes:
- Electrode optimization. **WARNING**: This will cause electrodes to be removed from holders!!
- Lithium Blades are now one item.
- Any simple Fluid Pipe can now be locked with a Screwdriver
- Screwdrivers now also indicate the lock state of the pipe you are looking at.
- Cleaned up a bunch of unnecessary mixins.
- Added a bunch of fire extinguisher sounds.
- Updated Chemical Vat JEI Category:
- Added Barometer for pressure and heat indicator icons
- Added hover-tooltips on various icons to improve context
- Flamethrower fuels are now cached to improve performance. The cache is cleared on data reload.
- Deployers now decrement the timer of held Lithium Blades.
- Removed hardcoded furnace fuel times and generated new datamap values.
- Added Engine Fuel Type datapack registry at
fuel_type/engine. - Flamethrower fuel types are now registered at
fuel_type/flamethrower. - Added autogas cylinder item for LPG.
- Engines now use a fluid predicate to determine valid fuels instead of a list of tags.
- Block positions in engines are now properly saved as a BlockPos instead of a long.
- Engine Cylinders are now components using the new registry.
- Added
tfmg:engine_cylindercomponent. - Removed
tfmg:fuel_tagscomponent as it isn't needed for remapping. - Migrated cable rendering code from TFMGUtils to CableConnectorRenderer.
- Removed redundant data components from spools.
- Reworked position data component to be a BlockPos rather than a long.
- Removed needless conversion of blockpos to longs in IElectric and it's inheritors.
- Flakes created by fire extinguishers now spawn at a position that matches the barrel.
- Flamethrower tooltip is now handled through the component.
- Added an updateJSONURL to the mods.toml so you will be notified of new versions!
## New Translations:
- Added French translation.
- Added Chinese translation.
- Sequenced Assembly Winding now has a proper step translation.