All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Custom Machinery

Custom Machinery

by Frinn • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Custom Machinery

make your dream machine come true

 

Did you ever been in the situation where, when creating your awesome modpack, you wanted to add a custom recipe but no available machine in your pack match what you want ?

Like "I want a machine that takes 3 items, 5 differents fluids and some energy to create another item" but no machine can do that.

Or the case when you found a mod that add a machine that can fit your needs but the mod also add tons of stuff that you don't want in your pack.

 

Well this mod let you create your own machines using datapacks and add them in the game.

You can customise everything about your custom machine, from the appearance (model, textures, sounds, lightning, custom gui) to the functionality (how many inputs and outputs, their type and capacity) and of course you can add your own recipes that will be processed by the machine.

 

Currently a custom machine can :

  • Have the appearance you want (item, block, or even a custom model).
  • Have differents appearances based on it's status (idle/running/errored/paused).
  • Emit light based on if the machine is processing a recipe.
  • Play a sound when the machine is processing a recipe.
  • Contains FE (Forge Energy, compatible with RF)
  • Contains any fluid, you decide the number of internal fluid tanks, their capacity and max input and output.
  • Contains any item, you decide the number of internal item slots.
  • Have a custom GUI when you click on the machine, where you can see the contents of the machine and the progress of the recipe.
  • Pause based on a redstone signal (configurable in the machine json)
  • Emit a redstone signal based on it's status (also configurable in the machine json)
  • Receive custom defined upgrades that change the processing of recipes (inputs/outputs/speed)
  • Be configured to allow input or outputs of energy, items and fluid for each slot/tank/buffer for each side separately.  

Currently a custom machine recipe can :

  • Consume or produce FE (Forge Energy, compatible with RF) on a per-tick basis or in one time.
  • Consume or produce any fluid on a per-tick basis or in one time, works with fluid tags.
  • Consume or produce any item, works with item tags. Support NBT and durability.
  • Process a recipe only at a certain time of the Minecraft world day.
  • Process a recipe only at a certain world position, biome or dimension.
  • Use a command when a recipe start, is processing or finish.
  • Require the usage of a fuel item to burn (like the furnace).
  • Consume or produce FE, fluids, items and use commands with a probablity (chance to be consumed/produced).
  • Give effects to nearby mobs.
  • Process a recipe only under a specific weather.
  • Process a recipe only when the machine receive a specific redstone signal.
  • Check for nearby entities, consume their health points or kill them.
  • Check for a specific sky/block light level.
  • Check/place/replace/break/destroy nearby blocks.
  • Require a complex structure to be formed around the machine.
  • Output items based on a loot table file.
  • Drop or consume items on ground.
  • Process Crafttweaker and KubeJS scripts.  

You can find some examples of working custom machines here or download the Test Datapack.

 

You can download the Test Resourcepack to see how a custom json model can be applied to a machine (the "stone generator" in this example)

 

All of this can be made using a json file in a datapack, and all changes to this file can ba applied in-game with the /reload command, no reboot of the game are needed.

 

This mod comes with a full compatibility with JEI and The One Probe and the usage of these mods are heavily advised to use Custom Machinery in the best conditions.

  This mod include complete Crafttweaker and KubeJS support for creating recipes and upgrades.

The Fabric version requires Reborn Core  

Wiki : All info you may need to make your custom machines can be found on the wiki : https://frinn.gitbook.io/custom-machinery-1.18/

Issues : If you find any bugs or if you want to suggest a new feature or functionality : https://github.com/Frinn38/Custom-Machinery/issues

Discord : For questions or support, join the Discord Server : https://discord.gg/dw9tjY4eKY

License : This mod is licensed under the GNU LESSER GENERAL PUBLIC LICENSE you are free to use this mod in any modpack.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.21
Neoforge
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.19.2
Forge
1d ago 1
1.19.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Fabric
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
# Custom Machinery 1.21.1-0.10.74

### BugFix :
# Custom Machinery 1.21.1-0.10.73

### Additions :

# Custom Machinery 1.21.1-0.10.72

### Additions :
  • Allows for item input and output requirements to take several slots id.
  • The list of specified slots act as a whitelist.
  • JSON syntax is "slots": ["slot1", "slot2"] inside of the item requirement.
  • KubeJS syntax is .requireItem("item", ["slot1", "slot2"], same for .produceItem, .transformItem, .requireItemFilter and the durability requirement.
  • Specifying a unique slot or no slots at all still works the same.
  • Allows for fluid input and output requirements to take several tanks id.
  • The list of specified tanks act as a whitelist.
  • JSON syntax is "tanks": ["tank1", "tank2"] inside of the fluid requirement.
  • KubeJS syntax is .requireFluid("fluid", ["tank1", "tank2"], same for .produceFluid and the per-tick variants.
  • Specifying a unique tank or no tanks at all still works the same.
  • Allow for button requirement to take several button ids.
  • The list of specified buttons act as a whitelist.
  • JSON syntax is "ids": ["button1", "button2"] inside of the button requirement.
  • KubeJS syntax is .requireButtonPressed(["button1", "button2"), same for .requireButtonReleased.
  • Specifying a unique button id still works the same.
# Custom Machinery 1.21.1-0.10.71

### BugFix :
  • Fix custom buckets can't be emptied into fluid tanks in machine gui.
# Custom Machinery 1.21.1-0.10.70

### BugFix :
# Custom Machinery 1.21.1-0.10.69

### BugFix :
  • Fix produceItem sometimes gives non-stackable items.
# Custom Machinery 1.21.1-0.10.68

### BugFix :
# Custom Machinery 1.21.1-0.10.67

### Additions :

### BugFix :
  • Fix crash on dedicated servers.
  • Fix crash when a machine has 2 components of same type with same id.
  • Instead, an error will be logged and one of the duplicate component will be ignored.
# Custom Machinery 1.21.1-0.10.66

### Additions :

### BugFix :
  • Fix JEI not displaying recipe id in output slot.
  • Fix potential crash with item transform requirement.
  • Fix redstone blocks and other 'weak' redstone signal sources doesn't pause the machine.
# Custom Machinery 1.21.1-0.10.65

### Additions :
  • Improve structure creator tooltip.
  • Added Integer, Double, String and NBT data requirements.
  • These new requirements allows for checking and setting the machine data without the need of a custom KubeJS function.
  • Add clockwise and counter-clockwise orientations for progress arrow.

### BugFix :
  • Fix KubeJS recipe id can't be set from scripts.
  • Fix filter not saved for variants of item component in the editor.
  • Fix too many decimals on upgrade tooltips.
  • Fix block ingredient error with some blockstates (create blaze burner).
# Custom Machinery 1.21.1-0.10.64

### Additions :
  • Added getBlockEntity and getStatus methods in MachineJS.

### BugFix :
  • Fix machine models with unculled faces can have weird shadows when the machine is facing south.
# Custom Machinery 1.21.1-0.10.63

### Additions :
  • Added 'open' and 'close' interaction sounds to machine appearance.

# Custom Machinery 1.21.1-0.10.62

### Additions :
  • Add empty item requirement that can be used to specifically require a slot of the machine to be empty.
  • Added '.requireEmptyItem()' KubeJS method.
  • That requirement can be configured to check if any slot is empty, or just a specific one.
# Custom Machinery 1.21.1-0.10.61

### BugFix :
  • Fix JEI recipe transfer button overlapping with elements.
  • Fix gui editor hints and mouse pos widgets go out of the frame.
# Custom Machinery 1.21.1-0.10.60

### BugFix :
  • Fix KubeJS effect requirement ambiguous methods.
# Custom Machinery 1.21.1-0.10.59

### Additions :
  • Added "zlevel" optional property for texture elements which can be used to make the texture render above or below anything like items, fluids, tooltips etc...


### BugFix :
  • Fix gui element priority being reversed in the gui editor.
# Custom Machinery 1.21.1-0.10.58

### BugFix :
# Custom Machinery 1.21.1-0.10.57

### Additions :
  • Add search bar in machine and upgrade editor list.

### BugFix :
  • Fix crash in machine gui editor when no textures are specified for an element.
  • Fix entangled block render structure preview when bound to a machine.
# Custom Machinery 1.21.1-0.10.56

### BugFix :
  • Fix placing structure in creative not working.
# Custom Machinery 1.21.1-0.10.55

### BugFix :
  • Fix block requirement not checking specified coordinates.
  • Fix machines and upgrade JSON files not being written as UTF_8 if that's not the default system property.
  • Fix block tags in structure.
# Custom Machinery 1.21.1-0.10.54

### BugFix :
  • Fix upgrades not being refreshed when an upgrade item is put in a slot already containing the same upgrade item.
# Custom Machinery 1.21.1-0.10.53

### Additions :
  • Use loot table for machine block breaking instead of hardcoding machine item to drop.

### BugFix :
  • Fix translatable component contents sometimes not displayed.
# Custom Machinery 1.21.1-0.10.52

### Additions :
  • Allow custom tooltips to render in jei. (Thanks to [Jishuna](https://github.com/Jishuna) for this PR).
  • Improve status gui element tooltip for multi-cores machines.

### BugFix :
  • Fix upgrade not being refreshed when switching items in slot.
  • Fix recipe modifier being mandatory instead of optional in KubeJS upgrade builder.
  • Fix bug where the machine appears as errored when all cores are idle.
# Custom Machinery 1.21.1-0.10.51

### Additions :

### BugFix :
  • Remove shadow on text gui element when displayed in jei.
# Custom Machinery 1.21.1-0.10.50

### Additions :
  • Machine creation list now displays when the machine was created and last modified.
  • Machine creation list can now be sorted alphabetically or by modification date.
  • Started working on machine upgrades editor.
  • Currently only able to create and delete upgrades, more to come soon.
  • Accessible using /cm upgrades while in-world.

### BugFix :
  • Fix crash due to sound being null (again).
# Custom Machinery 1.21.1-0.10.49

### Additions :
  • Machine upgrades can now modify several properties of the machine's components.
  • The following properties can now be modified :
  • Item component capacity, max input/output
  • Fluid component capacity, max/min input/output
  • Energy component capacity, max/min input/output
  • Experience component capacity
  • Chunkload component radius
  • Machine upgrades can now modify the amount of core a machine processor can use to process recipes.
  • These new upgrade features can be done with both json and KubeJS.
  • The wiki is updated.
  • This update should not break upgrades made with previous versions of CM.

### BugFix :
# Custom Machinery 1.21.1-0.10.48

### BugFix :
  • Fix resetOnError not working for KubeJS recipes.
# Custom Machinery 1.21.1-0.10.47

### Additions :
  • Updated to KubeJS 7.2
  • With that update comes a breaking change if you use KubeJS to create a custom machine block in a startup script.
  • The type of block must be changed from 'custommachinery' to 'custommachinery:custom_machine' or the game will fail to start.
  • Updated to latest NeoForge and Jei versions.
# Custom Machinery 1.21.1-0.10.46

### Additions :
  • Changing the inner working of block ingredients used in block and structure requirements.
  • The syntax is the same as before and scripts/recipes should not be affected by this update.
  • All support for Crafttweaker for block and structure requirements is now deleted.
  • Block ingredients now support lists and can be reversed to accept any block but the specified one.
  • Example: ["!#c:stones", "!diamond_block"] will accept any block that is not in stone tag and not a diamond block.
  • Added "order" property for block requirement which define if the blocks will be broken/placed from top to bottom or the opposite.
  • Valid values are: "increasing" (default value, from bottom to top), "decreasing" (from top to bottom) and "random".

### BugFix :
  • Fix box creator not rendering selected blocks.
# Custom Machinery 1.21.1-0.10.45

### Additions :
  • Added machine templates system.
  • When a new machine is created through the in-game editor, a machine template can be selected.
  • The newly created machine will copy all properties (appearance, components, gui...) of the template.
  • New templates can be added like any machines but must be inside machine/template/ folder.
  • Templates can be directly edited using /cm edit_template command (Only templates added by datapacks/kubejs data).
  • Added back the machine creator item, it does exactly the same thing as running /cm create command.

### BugFix :
  • Fix configuration card item recipe not working.
  • Fix a few visual bugs in the machine editor.
Custom Machinery Icon
Download Custom Machinery
Select game version
Select platform