Quick Nav


Back To Top

Overview

RotaryCraft is a large "industrial-style" mod, akin to the likes of BuildCraft, IndustrialCraft, ThermalExpansion, and Minefactory Reloaded, but with a completely unique design:

Why "RotaryCraft"? The power transmission. There are no wires, generators, or anything of the sort; Engines produce rotational power - torque and speed, with power being the product of the two - and it is transmitted by shafts, gearboxes, and other transmission devices to eventually reach the machines. Nearly every work-performing machine requires some minimum amount of torque, speed, or power - or combination thereof - or gains abilities at increasingly high inputs of the same.

Design

Basic Info

RotaryCraft is designed to be as realistic as possible, using real machine specifications for power generation/consumption and real physical laws to govern the machines' behavior. For example, a hot machine will cool according to the laws of heat convection, shafts can handle torques up to what is allowed by their shear strength, various kinematic processes are modelled, and effects of excessive pressure or temperature must be considered.
A failure to consider such temperature effects.
Additionally, in most cases, recipes and production processes are modelled after their real-world counterparts; for example, the native steel to RotaryCraft, HSLA, is both a real material and is produced using additives to mimic its real-world chemical additives.
The power specifications mean that rarely can a machine be direct-driven from an engine with good results; the majority of the time, an engine's torque/speed profile will greatly mismatch whatever the machine is most able to make use of, necessitating the use of various transmission blocks such as gearboxes to change the power profile.
Sometimes lots of gearboxes.

Machines

RotaryCraft has a huge complement of over 130 machines, filling a vast array of functions, including many kinds of resource collection and productivity boosters, many kinds of processing, a large array of defences, storage, transport, decoration, supplementing existing systems, and more. Some of the most popular machines include:
  • Extractor - massive increase in ore yields, with more for better ores, as well as various bonus resources
  • Borer - tunnel digging and infinite-range high-throughput automining
  • Woodcutter - high speed versatile automated tree farming, with enchantability to boost throughput, yield, and more
  • Spawner Controller - massively turbocharged and controllable mob spawners for grinders
  • Railgun - extremely powerful point defence turret with variable damage ammunition
  • Friction Heater - external heating system for furnaces, TiC smelteries, and more, yielding fuel-free and much faster operation
  • Dew Point Aggregator - extremely high yield water production system
  • Pneumatic Item Pump - very high throughput highly controllable point-to-point item transport
  • Centrifuge - separation and extraction of materials from base products, plus Forestry integration
All of these machines, along with most others, become more powerful with increasingly large power supplies. For example, increasing input speed will often shorten operation times, usually without real limit; multiple megawatts into a grinder, woodcutter, or centrifuge may sound like overkill, but this can grant the ability to process entire stacks of resources in a single tick. Indeed, at such power levels the logistical problem usually shifts to achieving high enough extraction/supply rates to match the demands of the machines.

Tools

Many tools can be made in RotaryCraft. Some are simply different-material versions of vanilla tools; the most notable of these is the bedrock set, made by alloying dust extracted by grinding bedrock into steel. Not only are these completely unbreakable, they usually come with major bonus functionality, ranging from built-in enchantments to bonus drops to (in the case of armor) massive reductions in ability to be "one hit killed". Indeed, these tools are some of the most popular features in RotaryCraft.

The other primary set of tools is those using charged windsprings, a sort of handheld "battery" for RC power. These tools include various handheld sensors and weapons, the most popular of which by far is the Gravel Gun, a flint-firing hitscan weapon capable of extreme damage (often sufficient to destroy boss mobs in a single hit). Other tools include powered versions of things like Forestry grafters, night vision goggles, a liquid suction pump, and a handheld piston.

Progression

Additionally, RotaryCraft is designed and balanced completely differently from most other mods; rather than making progression a quest of ever-increasing resource costs that do little other than encourage grinding, RotaryCraft is designed such that progression is done directly, with each machine and/or tier building on knowledge and abilities gained in the last. Sometimes this progression is explicit, with a given machine or tool requiring materials produced in another machine - with that machine possibly having its own prerequisites; other times, it is more freeform, needing something like having previously mastered some power delivery problem, or having automated a certain resource.

The Puzzle

This makes designing your RC infrastructure into something of a puzzle; it is not a simple matter of hooking up a machine to a generator and letting it accumulate energy, as you might with RF, or even just ensuring you have an engine rated for enough power to match the machine's rated power requirement; naive "plug and play" like that is at best unreasonably inefficient and expensive, and often fails to simply work at all.
A very inefficient setup.

For example, a machine might not operate at all below a torque input of one value, with no benefits to providing additional torque. Simply combining engines might achieve that requirement, but at the cost of large amounts of wasted power, where a single engine could have sufficed with better transmission design. Similarly, combining more engines will never increase the output speed, meaning that any benefits a machine might gain from increased speed can never be realized by simply adding more power.

Furthermore, the obvious solution to many powertrains may not be efficient or even feasible in terms of the loads they create; as torque or speed increase, they put greater strain on the gears and shafts, meaning that you need better and thus more expensive materials, possibly even beyond that which you can currently produce. As a result, you may find yourself needing to get creative about how to manipulate power without exceeding those limits.
A powertrain to convert high torque into high speed with a minimum cost in high-end materials.

Special Options

Among its configuration options, RotaryCraft has a handful of settings whose effects or usage is more complex:

Difficulty

Distinct from the game difficulty, RotaryCraft has an option to control some recipe/fuel costs, failure chances, and other numerical tweaks, as a rough "grindiness/risk factor" option. Importantly, progression is not changed; recipe ingredients, power requirements, and core behaviors are not affected by this setting. The option is an integer from 1-3 (inclusive), to choose "easy", "medium", or "hard", and defaults to medium.
EffectEasyMediumHard
Bedrock Breaker Per-Cycle Yield321
Pipe Crafting Yield32168
Part Crafting Yield632
Belt Crafting Yield1682
Expensive Part Crafting Yield221
Railgun Ammo Crafting Yield1862
HSLA Bonus Chance2x1x0.5x
Blast Furnace Ingredient Consumption Chance Multiplier0.4x1x3x
Compactor Stage Output Count221
Damaged Gas Turbine Failure Chance Per Tick1/45001/18001/900
Gas Turbine Failure Chance On Damage5%20%50%
Fractionator Ingredient Consumption Chance3.125%25%75%
Fractionator Base Yield Per Cycle1600mB-3200mB1000mB-2200mB400mB-800mB
Fractionator Ghast Tear Consumption Chance Per Cycle0%0%5%
Coil Winder Steel Coil Breakage Chance Per 65kJ1%5%15%
Friction Heater Furnace Melt Chance Per Tick1/18001/6001/150
Grinder Canola Lubricant Yield128mB-280mB64mB-160mB8mB-64mB
Lubricant Usage0.25x1x2.5x


Blast Furnace And Worktable Gating

Both the blast furnace and the worktable - ie the two machines which are entry points into RotaryCraft, and thus can be used to lock access into the entire mod - support the addition of up to four distinct gating items into their recipes, to allow gating RC behind other mods in the techtree. This list is not freeform; it is curated to prevent unreasonable (here meaning thematically inappropriate or excessively expensive/lategame) from being added. The available options are as follows: The option takes the form of a string list with up to four entries, choosing up to four of the ingredient types described above (duplicates are permitted). Depending on how many entries are given, different slots in the recipe will be replaced with these items. If a chosen option does not have any valid items (such as being for a mod that is not installed), this item will be ignored and the default item will be used.

This option also allows the gating of bedrock armor and the gravel gun, using the same ingredient list. These options only allow for one gating item.

Rotational Dynamo Recipe Difficulty

This option adds one gating item (in place of a single HSLA ingot) to each of the RC-to-other-mod power conversion machines. (The 'rotational dynamo' name is an artifact of when it only applied to this machine, and the fact that changing it would reset it to defaults for all users). This option is an integer, and will choose the corresponding item from the list below:

Extra Info

RotaryCraft adds a total of zero ores and no worldgen, so you do not need to create a new world or venture to distant areas in your current one; it can be added with no issues.

There is a handbook in the mod (recipe shown below), which provides detailed information on every engine, machine, tool and resource item. Consult this frequently, especially if you are not well-experienced with RotaryCraft. Due to the mod's relatively niche playerbase, there is no reasonably complete and up to date wiki.


API

Background

RotaryCraft has an API to interface with various machines, their recipe systems, and a number of other registries and mechanics, including the power system. Most of the registries and recipe tables are accessed via static access points, while interfacing with machines or mechanics usually requires implementing some interface on a block or TileEntity.

Installation And Use

The API can be found in the "API" package of the source code; just add that to your development environment as you see fit (it was designed with simply dropping it into the source folders in mind, but can also be loaded as a library). I take special care to avoid the API making hard references to any internal RC code, so you should have no issues integrating it. To avoid a hard dependency on the API, use standard Forge @Optional (or similar) methods to conditionally strip interfaces and either conditional calls (ie calling the API function via a method which is itself only invoked if RC is loaded, thus "compartmentalizing" your references to the API within a method that is never loaded if not necessary) or reflection to invoke library methods.

Popular Uses

To use the API to add custom recipes, see the RecipeInterface class; it contains access points to the recipe systems for many machines.

To implement a block that consumes RC shaft power, create a TileEntity that implements either ShaftPowerReceiver or AdvancedShaftPowerReceiver. This will then cause RC power transfer blocks to attempt to impose the appropriate power values on your TileEntity every tick, assuming it is positioned and oriented correctly (as defined by its stated side rules). A BasicPowerHandler class is available to act as boilerplate if you so desire. Note: because machines cannot set power once they have been removed, you will need to call PowerTransferHelper.checkPowerFrom at the end of your on-tick TileEntity update; this method will return false if no power supply exists and you should then zero all copies of the power values. If you fail to do this, your machine will remain "stuck" thinking it is continuing to receive power and will effectively be operating for free.

Adding Custom Recipes

RotaryCraft can use the LuaBlock system to add custom recipes to some or all of its production blocks (such as crafting tables, machines, et cetera). To do this, create a folder called RotaryCraft_CustomRecipes in the Reika subfolder of your config directory. In that folder you can place LuaBlock files with the extension .recipes_[system], where [system] is the internal name of the machine, recipe system, or the like. The exact format and parameters required depends entirely on the nature of the recipes you are adding, and what properties and features they normally have. To see example files, as well as a list of all available recipe systems for RotaryCraft, see this folder on the GitHub repository.

It is strongly advised that you be familiar with both the specific recipe system you want to add to, as well as the mod as a whole, before attempting to add new recipes. Not only is a working understanding of the relevant parts of the mod necessary to make additions make sense from a game design standpoint, but the large number of properties RotaryCraft recipes have invites many opportunities to define properties with meaningless or invalid values, such as item counts exceeding stack limits, temperatures out of bounds, or items that do not exist. Though the recipe parsers apply many sanity checks, those cannot be fully comprehensive, and it is entirely possible to still define recipes that are syntactically but not semantically valid. These recipes, when attempted to be used, are likely to create undesired effects ingame, including failure to operate, exploits, or even crashes.

Configuration Settings

This mod contains several config options to modify values and behaviors - such as for balance or server safety concerns, or simply personal taste - to your preferences. Note that several settings may have bounds imposed on their values, either logically or explicitly; these can usually be seen in the actual settings files or ingame. These are listed in order found in the source code, which is generally the order in which they were added; They may be present in a different order ingame or in the configuration files.
The settings for the mod, when installed, can be found in the 'config/Reika' subfolder of the MC instance.

Engine Volume

Type: float
Current Default Value:
1F

GPR Renders Ores

Type: boolean
Current Default Value:
true

Instant Woodcutter

Type: boolean
Current Default Value:
true
Whether the woodcutter cuts blocks instantly as opposed to making them fall to the ground.

Allow Craftable Bedrock

Type: boolean
Current Default Value:
true

Owner-Only Machine Use

Type: boolean
Current Default Value:
false

Machine Volume Multiplier

Type: float
Current Default Value:
1.0F

Max Floodlight Range

Type: int
Current Default Value:
128

Max Heat Ray Range

Type: int
Current Default Value:
128

Max Bridge Range

Type: int
Current Default Value:
128

Max Fan Range

Type: int
Current Default Value:
128

Max Aerosolizer Range

Type: int
Current Default Value:
128

Max Vacuum Range

Type: int
Current Default Value:
128

Max Force Field Range

Type: int
Current Default Value:
128

Sonic Borer Range

Type: int
Current Default Value:
512

Spawner Mob Limit

Type: int
Current Default Value:
128

Player Detector Range

Type: int
Current Default Value:
128

Breeder Range

Type: int
Current Default Value:
128

Bait Box Range

Type: int
Current Default Value:
24

Block Ram Range

Type: int
Current Default Value:
512

Max Bait Box Mob Count

Type: int
Current Default Value:
256

Cave Scanner FOV

Type: int
Current Default Value:
16

Disable Silver Iodide Cannon Rain

Type: boolean
Current Default Value:
false

Enable Achievements

Type: boolean
Current Default Value:
true

Force Inter-Mod Ore Compatibility

Type: boolean
Current Default Value:
true

Allow Bedrock Pickaxe to Harvest Spawners

Type: boolean
Current Default Value:
true

Spawn Mobs When Harvesting Spawners By Hand

Type: boolean
Current Default Value:
true

Direct Block Damage from Machine Failures

Type: boolean
Current Default Value:
true

Difficulty Control

Type: int
Current Default Value:
2
1-3 for easy/medium/hard; controls some recipe/fuel costs, failure chances, and other numerical tweaks. Progression is not changed.

Terraformer Block Editing

Type: boolean
Current Default Value:
true
Whether the terraformer can not only change the biome but set blocks, eg spawning trees.

Reload Handbook Data on Open

Type: boolean
Current Default Value:
false

Crafting Table can Make Machines

Type: boolean
Current Default Value:
false
If false, the worktable will be required to craft machines.

EMP Charging Speed

Type: int
Current Default Value:
4

Rotate Hose/Pipe/Fuel Line Recipes

Type: boolean
Current Default Value:
false
Recipe conflict avoidance.

Railgun Block Damage

Type: boolean
Current Default Value:
true

Allow Gravel Gun PvP

Type: boolean
Current Default Value:
true

Chest Generation Tier

Type: int
Current Default Value:
4
How advanced/expensive items generating in worldgen chests can be. Higher is more.

Render projector lines

Type: boolean
Current Default Value:
true

Color Blind Mode

Type: boolean
Current Default Value:
false

Turrets can target players

Type: boolean
Current Default Value:
true

Allow RC steel to be used in other mods

Type: boolean
Current Default Value:
false
ie registers HSLA as ingotSteel.

Lock enchants on bedrock tools

Type: boolean
Current Default Value:
true

Sprinkler Particle Density

Type: int
Current Default Value:
4
0-4, with lower being fewer particles.

Spawn with RC Handbook

Type: boolean
Current Default Value:
true

Conservative Jetpack Firing

Type: boolean
Current Default Value:
true
Whether to make the jetpack be a bit less likely to fire from things like jumping, helping reduce fuel usage at the cost of making it a bit less immediate.

Allow Build Blocking of Some Machines

Type: boolean
Current Default Value:
false

Log Block Placement and Removal

Type: boolean
Current Default Value:
false

Fluid Flow Speed

Type: int
Current Default Value:
5

Block Damage from Destructive Machines

Type: boolean
Current Default Value:
true

Allow Bedrock Breaker to Break Y=0

Type: boolean
Current Default Value:
false

Jetpack Requires Jet Fuel

Type: boolean
Current Default Value:
false

Allow TNT Cannon

Type: boolean
Current Default Value:
true

Allow EMP

Type: boolean
Current Default Value:
true

Iron Ore Density

Type: float
Current Default Value:
1F
If set to >1, this will spawn extra iron ore in the world, to help with the fact RC uses a lot of it. Does nothing at <= 1

Allow Blast Glass to be Used as TE Hardened Glass

Type: boolean
Current Default Value:
false

Tools Clear Chat

Type: boolean
Current Default Value:
true
Whether using a chat-writing tool will clear your chat buffer to make it easier to read their output.

Jetpack bypasses allow-flight property

Type: boolean
Current Default Value:
true

Item Pump Spills Items If Dumping To Air

Type: boolean
Current Default Value:
true
Whether a PIP without a target inventory will spray the items everywhere.

Extractor Drill Wears Down

Type: boolean
Current Default Value:
false

Hardmode Gravel Gun

Type: boolean
Current Default Value:
false
Adjusts charge-damage curves to require more charge per unit damage and cap the damage at a lower value.

Borer Requires Maintenance

Type: boolean
Current Default Value:
false
Makes the borer's operation require a drill item it slowly consumes.

Disable Automining Machines

Type: boolean
Current Default Value:
false

Hard Mode EU Compatibility

Type: boolean
Current Default Value:
ModList.GREGTECH.isLoaded()
Whether to make EU compat more difficult, suitable for GT packs.

Pipe Block Hardness

Type: float
Current Default Value:
0F

Spawn XP from Friction Heater

Type: boolean
Current Default Value:
true

Liquid Spiller Range, Use Zero to Disable

Type: int
Current Default Value:
16

Run power transfer code on client

Type: boolean
Current Default Value:
false
Whether to also run power sync code on the client, to help with sync at the cost of additional load on the client tick.

Allow Frames to move Machines (May cause corruption)

Type: boolean
Current Default Value:
false

Power Converter Loss Percent

Type: int
Current Default Value:
0
Efficiency of the RC-to-other-mod converters. 0% loss = 100% efficiency.

Allow special bedrock tool abilities in automation

Type: boolean
Current Default Value:
true
Whether things like the bedrock axe and its tree cutting will apply when used by fake players, eg auto activators.

Borer Chunk Gen Radius

Type: int
Current Default Value:
0
How big of an AoE of chunks will the borer generate around the mining head.

Enable Light Bridge

Type: boolean
Current Default Value:
true

Enable Item Cannon

Type: boolean
Current Default Value:
true

Enable Chunk Loader

Type: boolean
Current Default Value:
true

Chunk Loader Max Radius in Chunks

Type: int
Current Default Value:
8

Allow Nonstandard Recipe Modifications

Type: boolean
Current Default Value:
false

Strong Recipe Editing

Type: boolean
Current Default Value:
false

AutoCrafter Lag Profiling And Compensation

Type: boolean
Current Default Value:
true
Make the autocrafter tick less often to reduce lag.

Increased Harvest Level for HSLA tools

Type: boolean
Current Default Value:
false

Rotational Dynamo Recipe Difficulty

Type: int
Current Default Value:
0
0-5 to choose a gating item; see above.

Borer Power Requirement Factor

Type: float
Current Default Value:
1F

Use Forestry Bees To Produce Yeast

Type: int
Current Default Value:
0
0 = disabled, 1 = slippery bee also produces yeast (alternate source); 2 = the bee is the only source of yeast.

Harder Converter Unit Recipes

Type: boolean
Current Default Value:
false

Allow other mods' aluminum dust to make Silicon

Type: boolean
Current Default Value:
false

Enable Blast Furnace recipe gating

Type: boolean
Current Default Value:
false
Whether to enable the recipe gate functionality for the blast furnace.

Enable Worktable recipe gating

Type: boolean
Current Default Value:
false
Whether to enable the recipe gate functionality for the worktable.

Item Vacuum Power Per Meter

Type: int
Current Default Value:
(int)PowerReceivers.VACUUM.getMinPower()/4

Streams Waterfall Min Height for Max Hydrokinetic Yield

Type: int
Current Default Value:
8
How tall a Streams waterfall must be to count as max yield for a hydrokinetic.

TiC Smeltery Flake Yield Amount In Ingots

Type: float
Current Default Value:
1.5F

Increase Blaze Powder To Rod Cost In IC2 Compressor (Exploit Fix)

Type: boolean
Current Default Value:
true
Normally the ic2 compressor requires 5 powder per rod, but as the grinder makes six powder per rod this is a feedback exploit. This option increases the ic2 cost to 8.

Free Water Production Factor

Type: float
Current Default Value:
1F
How much if any free water can be produced by things like the pump power surplus, spillway "scraping" (ie back to a waterfall) and rain in reservoirs.

Jetpack wings enable with sneak vs disable

Type: boolean
Current Default Value:
false

Source Code

The source code for RotaryCraft can be found here:GitHub

Downloads

1.7.10: Via CurseForge
1.6.4: Via Adfly
1.5.2: Via Adfly
1.5.1: Via Adfly
1.4.7: Via Adfly