BuildCraft

Overview

Welcome to BuildCraft on GitHub

Reporting an issue

Please open an issue for a bug report only if:

  • you are sure the bug is caused by BuildCraft and not by any other mod,
  • you have at least one of the following:
    • a crash report,
    • means of reproducing the bug in question,
    • screenshots/videos/etc. to demonstrate the bug.

If you are not sure if a bug report is valid, please use the "Ask Help!" subforum.

Please only use official BuildCraft releases for any kind of bug reports unless otherwise told to do by the BuildCraft team. Custom builds (for instance from Jenkins) are unsupported, often buggy and will not get any support from the developers.

Please check if the bug has been reported beforehand. Also, provide the version of BuildCraft used - if it's a version compiled from source, link to the commit/tree you complied from.

Please mention if you are using MCPC+, Cauldron, OptiFine, FastCraft or any other mods which optimize or otherwise severely modify the functioning of the Minecraft engine. That is very helpful when trying to reproduce a bug.

Please do not open issues for features unless you are a member of the BuildCraft team. For that, use the "Feature Requests" subforum.

BuildCraft, being an open-source project, gives you the right to submit a pull request if a particular fix or feature is important to you. However, if the change in question is major, please contact the team beforehand - we wish to prevent wasted effort.

Contributing

If you wish to submit a pull request to fix bugs or broken behaviour feel free to do so. If you would like to add features or change existing behaviour or balance, please discuss it on discord before submitting a PR (https://discord.gg/v4geqgA).

Do not submit pull requests which solely "fix" formatting. As these kinds of changes are usually very intrusive in commit history and everyone has their own idea what "proper formatting" is, they should be done by one of the main contributors. Please only submit "code cleanup", if the changes actually have a substantial impact on readability.

PR implementing new features or changing large portions of code are helpful. But if you're doing such a change and if it gets accepted, please don't "fire and forget". Complex changes are introducing bugs, and as thorough as testing and peer review may be, there will be bugs. Please carry on playing your changes after initial commit and fix residual issues. It is extremely frustrating for others to spend days fixing regressions introduced by unmaintained submissions.

Frequently reported

  • java.lang.AbstractMethodError, java.lang.NoSuchMethodException
    • A mod has not updated to the current BuildCraft API
    • You are not using the correct version of BuildCraft for your Forge/Minecraft versions
    • You are using the dev version on a normal game instance (or vice versa)
  • Render issue (Quarry causes flickering) - Try without OptiFine first! This is a known issue with some versions of OptiFine.

Compiling and packaging BuildCraft

  1. Ensure that Java (found here), Git (found here) are installed correctly on your system.
  • Optional: Install Gradle (found here). You probably want to install version 4.3.1.
  1. Create a base directory for the build
  2. Clone the BuildCraft repository into 'baseDir/BuildCraft/'
  3. Clone (and update) the submodules into 'baseDir/BuildCraft with 'git submodule init' and 'git submodule update'
  4. Navigate to basedir/BuildCraft in a shell and run one of two commands:
    • ./gradlew setupCIWorkspace build to just build a current jar (this may take a while).
    • ./gradlew setupDecompWorkspace to setup a complete development environment.
    • With Gradle installed: use gradle instead of ./gradlew
    • On Windows: use gradlew.bat instead of ./gradlew
  5. The compiles and obfuscated module jars will be in 'baseDir/BuildCraft/build/libs/<build number>/modules'

Your directory structure should look like this before running gradle:


baseDir
\- BuildCraft
 |- buildcraft_resources
 |- common
 |- ...
 \- BuildCraftAPI
  |- api
  |- ...
 \- BuildCraft-Localization
  |- lang
  |- ...

And like this after running gradle:


basedir
\- BuildCraft
 |- .gradle
 |- build
 |- buildcraft_resources
 |- common
 |- ...
 \- BuildCraftAPI
  |- api
  |- ...
 \- BuildCraft-Localization
  |- lang
  |- ...

Localizations

Localizations can be submitted here. Localization PRs against this repository will have to be rejected.

Depending on BuildCraft

Instructions for depending on BC 7.1.x can be found here (for 1.7.10).

8.0.x hasn't been finished yet, so there are no instructions for depending on it :(

The following instructions are for BC 7.99.12 (1.12.2):

Add the following to your build.gradle file:

repositories {
    maven {
        name "BuildCraft"
        url = "https://mod-buildcraft.com/maven"
    }
}

If you want to depend on JUST the API then do this:

dependencies {
    deobfCompile "com.mod-buildcraft:buildcraft-api:7.99.12"
}

If you want to depend on JUST the lib then do this:

dependencies {
    deobfCompile "com.mod-buildcraft:buildcraft-lib:7.99.12"
}

If you want to depend on the whole of buildcraft do this:

dependencies {
    deobfCompile "com.mod-buildcraft:buildcraft:7.99.12"
}

Where 7.99.12 is the desired version of BuildCraft.

Comments
  • Conductive pipes explode (MC 1.4.5, BC 3.2.0)

    Conductive pipes explode (MC 1.4.5, BC 3.2.0)

    Conductive pipe, stone or golden, explodes soon after it is conncted to low-output engines via wooden conductive pipe. I'm using 4 electrical engines from Forestry connected to a single wooden conductive pipe. The golden pipe that goes right after the wooden pipe explodes in a minute after i activate the engines. There are no circuits and total output is only 8 MJ/t.

    Minecraft v1.4.5, BuildCraft v3.2.0

    Screenshots: http://postimage.org/image/g69q2hovf/

    opened by CharleyHobbes 98
  • ConnectionMatrix changed to save memory.

    ConnectionMatrix changed to save memory.

    While looking at the buildcraft code, I noticed that this is extremely innifetient. For saving, it writes 6 bytes to just store 6 booleans to save what the pipe is connected to. This changes sets each bits in a byte to write all 6 booleans. Now only uses 1 byte instead of 6.

    It turns out that this never gets written to the disk. It is used for syncing. This will still save my horrible 80 gigabyte monthly usage allowance a couple of megs.

    opened by Nefsen402 61
  • Stripes Transpot Pipe

    Stripes Transpot Pipe

    Both ssp and smp: When a stripes transport pipe tries to place a pipe that is not transport (waterproof or conductive) you get an NPE (when it is a transport pipe it replaces itself with the pipe and puts a stripes pipe infront of it).

    Smp: When it removes a block from the world (when it is powered) the block still appears on the client till you restart (it doesn't update) When placing a transport pipe, the block that had the stripe pipe doesn't update, so it still shows up as a stripe pipe, instead of the placed transport pipe.

    type: enhancement 
    opened by psxlover 59
  • Iron fluid pipe throughput

    Iron fluid pipe throughput

    Iron pipes aren't usable in-line with golden pipes as they have the flow rate of a cobble pipe. None of the flow rate limits are explained anywhere, so it's not obvious if it's supposed to act that way.

    I'm aware ABO has a golden iron pipe, but it shouldn't require an additional mod for this functionality.

    type: enhancement 
    opened by Leenhaart 52
  • Failed to compile BuildCraft

    Failed to compile BuildCraft

    BuildCraft version: Commit number 5cbf87e1faf73c8795b906f0661078717b0f03db Forge version: 1.12 Link to crash report or log: https://gist.github.com/aaronliu0130/b77beb36528479095c517c61eaf5a97a Singleplayer or multiplayer: N/A Steps to reproduce: Build the project with gradle installed. Then run gradle setupCIWorkspace build --info --debug --stacktrace Additional information: None

    opened by aaronliu0130 47
  • 8.0.x todo list

    8.0.x todo list

    This is the big, "what needs to happen before 8.0.0 can be released". Some things depend on others, and some have been assigned to me or other people who will implement them.

    Note that this is (partially) shown in https://github.com/BuildCraft/BuildCraft/projects/1

    Api:

    • [ ] Ensure that the Mj API is simple and useful. Feedback required, especially for the IMjConnectorType bit as I'm not sure how useful it will be. Also an item interface would probably make sense, as some-one will want to implement batteries or charge robots in a charging table.(EDIT: This PROBABLY means removing the "IMjConnectorType" class and related implementing classes as I don't really see how they could be helpful).
    • [ ] ~~Ensure that the new schematic task API is clearly defined and usable. Its not quite finished yet though so feedback is mostly just internally done via its implementation in the Builder and Filler.~~ Revert the builder code to the code in 7.2.x as it turns out the new set of classes and API's were not useful in any way (Assigned to @AlexIIL)

    Lib:

    • [ ] Split off the implementation of TileAutoWorkbenchBase into a seperate class as then the adv crafting table can use that code for its own crafting.
    • [ ] Implement an instant blueprint builder for looking at the blueprint items you hold, and for making built structures in the guide book. (Assigned to @AlexIIL)
    • [ ] Test the usage of the guide book with images and blueprints (Waiting for the above).

    Core:

    • [ ] Test the marker implementation thoroughly (This needs people to test and report bugs with it, ideally finding a way to fix them)
    • [x] Port the spring block as-is
    • [ ] Make the engine blocks work well with the new Mj System (Assigned to @AlexIIL)

    Builders:

    • [ ] Implement the builder (Assigned to @AlexIIL)
    • [ ] Implement the filler (Assigned to @AlexIIL)
    • [ ] Implement the animation manager with a little flying robot for block breaks, and thrown out items for block building. (Assigned to @AlexIIL)
    • [ ] Implement a block for editing blueprints and templates. (Assigned to @AlexIIL)
      1. Allowing all 3 axis of rotation, and 3 axis of mirroring
      2. Replace all types of a block with another type.
    • [ ] Implement a block for adding single blueprints together to form a "combinded blueprint" which is just a few blueprints stuck together.

    Energy:

    • [ ] Implement the full complex refining setup. This might go in factory, I'm not quite sure yet. (Assigned to @AlexIIL)

    Factory:

    • [ ] Make the quarry start with a default sized frame of ?x4x?
    • [ ] Make the quarry look around when placed to try and find valid existing frames to use as a frame (rather than always require landmarks)
    • [ ] Make the quarry require and build a 3d frame (min height of 4) rather than a 2d one
    • [ ] ~~Make the water gel turn into a pumpable fluid at the end of its gelling stage instead of a block.~~ (not sure, invalid now)

    Transport:

    • [x] Rewrite the pipe base code. (Assigned to @AlexIIL)
    • [x] Rewrite the pipe pluggable code (Assigned to @AlexIIL)
    • [x] Rewrite the base gate code.(Assigned to @AlexIIL)
    • [ ] Implement all of the existing pluggables from 7.2.x (Assigned to @AlexIIL)
    • [x] Fix the pipe bounding box (Waiting for the pipe base code)

    Silicon:

    • [x] Port the redstone chipset, removing the "puslating", "comp" and "emerald" variants. (Being implemented by afdw)
    • [ ] Port the advanced crafting table (Waiting for the splitting up of TileAutoWorkbench base code)
    • [ ] Change the programming table to work with the new robot plans (Assigned to @AlexIIL)
    • [x] Change all the table models to use minecraft's json model format rather than the wavefront format.

    Robotics:

    • [ ] Port existing robot code (Waiting for the pluggable code)
    • [ ] Change the way robots work to be simalir to asie's plans in #3113 (Assigned to @AlexIIL)

    General:

    • [ ] Write usage (+lore) for all items + blocks in BC for the guide book. Most likely going to be done by @AlexIIL
    type: enhancement priority: high 
    opened by AlexIIL 39
  • Fake player performance issue

    Fake player performance issue

    I noticed lags on the server (5-6 TPS). Warmroast shows that a problem in TileQuarry. Why you use FakePlayer for destruction of blocks? Why it can't be done as it was in the previous versions - directly through setBlockToAir()?

    Screenshot

    opened by TheAndrey 39
  • Natural gas

    Natural gas

    Hi.

    I had an idea. When you pump up oil there is a chance you also get natural gas as a biproduct. This gas can be trapped and stored in gas tanks through special gas pipes. Or, it will burn. It will either burn directly out of the miner which is dangerous, or you can put some gas pipes up in the air to burn it there. If you choose to save the gas, refining it should be necessary to use it as energy.

    type: enhancement 
    opened by derin38 36
  • Textures not showing 1.12.2

    Textures not showing 1.12.2

    Buildcraft version: 1.12.2 Forge version: 14.23.1.2559 Link to crashreport or log (on pastebin or gist, please don't put the entire log here) : Singleplayer/multiplayer: Singleplayer

    Additional information: Very few textures are showing. Some eventually load (somewhat).

    type: mod compat version: 1.12.2 
    opened by NexVoid 34
  • 8 Engines are enough for a goldPipe

    8 Engines are enough for a goldPipe

    Hello. I think i found a bug or something what is normal. To the story. I am playing on a server with tons of mods. Some of them are stupid which bring me to do not use IC2 for anything (the server has gregtech thats my reason). Now then i got a quarry which is more than expensive. Thanks to greg. After i let it run with 3 engines i had enough resources to make more engines which run on fuel (6 MJ each). The person which life next to me (in MC) asked me if he can use also my energy pipe (teleportpipe) to power his quarry. He would give me a part of his resources. I just said help me with engine building and you can use my energypipe for free. Then we placed down 18 engines with fuelsupply and run gold pipes because 6*18 = 108 MJ. Quarzpower pipes have not enought room to transfer the energy. So we placed down our quarries and they run slow. Ok slow is not the word i thaught we run them on 108 mj (54 MJ each) but it seemed they run not really faster than my old quarry which runned on 18 MJ. Than i went home and looked on my engines and i saw that not every engine realeases his power. Than i thaught the bug i posted were not fixed (engines fill up with power). But that is not possible i gave every engine his own wooden power pipe. By the way 8-8,5 engines released his power. Than i had a idea to replace the goldpowerpipes with diamondpowerpipes which has a lot more power storage to send. After i set it up all engines start to send his energy. So the result every engine sends 32MJ instead of 6MJ whyever. I do not know why but its a big problem you can only run 2 engines with quarzpipes and 8 engines with gold pipes and maximum 32 engines with diamond pipes. If we only use fuelbased combustion engine. Please rise the level of the transferlimit of pipes. its to low if you want to make a global energy system.

    Tribble or quad it.

    Speiger.

    opened by Speiger 34
  • Quarry issues with fences

    Quarry issues with fences

    For some reasons, fences don't get extracted when one on top of the other. That may explain other problems seen with the Quarry. See http://mod-buildcraft.com/forums/index.php?topic=585.0

    opened by SpaceToad 30
  • [1.12.2] weird behavior with other mods due to the Quarry block being assigned a UUID owner

    [1.12.2] weird behavior with other mods due to the Quarry block being assigned a UUID owner

    [Forge 1.12.2-14.23.5.2859] [Buildcraft 7.99.24.8]

    These bugs that I've found are very niche/obscure and I don't expect them to be fixed anytime soon. Perhaps a config option could be added to enable/disable machines like the Quarry from using player UUIDs as a quick fix? (if that doesn't break the mod entirely)

    I've been able to reproduce bugs that that affect/are caused by the BC Quarry when these mods are present Triumph: https://www.curseforge.com/minecraft/mc-mods/triumph/files (has mod dependencies) Dropt: https://www.curseforge.com/minecraft/mc-mods/dropt (has mod dependency)

    Triumph adds custom advancements. If a quarry breaks a block, either during construction or when mining, all uncompleted advancements become "soft-locked" for the player that owns the Quarry block. This is fixed when the Quarry is turned off and the savegame/server is reloaded. This happens because Triumph regards the Quarry's actions as the player's due to the quarry using the player's UUID. I can't tell if this is ultimately an issue with Triumph or BC since any advancement trigger set off by just the Quarry causes this soft-lock. I can't reproduce this bug with just the player or any other non-player blocks. I can give more info on this specific issue if needed, but nothing useful appears in the .log file that I can show.

    Dropt adds configurable drops to blocks that are broken. If a player breaks a block that normally drops xp, and that block's drops have been changed by Dropt, all blocks mined by a Quarry owned by that player will then drop xp. (the amount of xp that the player-broken block would originally have dropped) This is reset when a player breaks a new block that does not normally drop xp. This is a big problem with an active quarry, as the huge amounts of xp being dropped from quarry-mined blocks will freeze and crash your game/server. Installing a mod like Clumps mitigates this, but doesn't stop huge amounts of xp being dropped.

    auto: bug 
    opened by Sageas 0
  • The labels for marking up the area are not working properly

    The labels for marking up the area are not working properly

    Good afternoon. Could you fix the following error. When marking the territory, the labels stop working. This happens only at large coordinates of the type 10000000 80 10000000. If the markup is made at coordinates closer to the center of the map, everything works fine. Thanks for attention. image image

    auto: bug 
    opened by lllLORD2000lll 0
  • Grammar issues with advancement descriptions and titles

    Grammar issues with advancement descriptions and titles

    Describe the issue

    BuildCraft -> How does this work again? -> Iron helmet Iron helmet is missing a title and description. Defaulting to "advancements.buildcraftcore.goggles.description" & "advancements.buildcraftcore.go"

    The BuildCraft advancement "Sealing Fluids" description reads "...craft is dye..." Is it supposed to read "...craft its dye..."?

    auto: bug 
    opened by PawnixHere 0
  • BC Distribution Pipes hard crash world/server- Tekkit 2 - Technic Launcher

    BC Distribution Pipes hard crash world/server- Tekkit 2 - Technic Launcher

    Please complete the following information:

    • Forge Version:1.12.2
    • BuildCraft Version (Add Hash if from github): 7.99.24.8
    • Any additional mods: Tekkit 2 mod pack from Technic Launcher

    To Reproduce Steps to reproduce the behaviour:

    1. Place a Distribution pipe with no output
    2. send item into the distribution pipe with no output
    3. this will hard crash your world/server

    Takes like 10 min to close down the server once this error has occurred.

    auto: bug 
    opened by Obese-Banana 1
  • Diamond Transport Pipe cannot distinguish

    Diamond Transport Pipe cannot distinguish "Forestry" and "Binnies Extra Trees" unidentified saplings

    • Forge Version: forge-1.12.2-14.23.5.2860.jar
    • BuildCraft Version (Add Hash if from github): buildcraft-all-7.99.24.8.jar
    • Any additonal mods: binnie-mods-1.12.2-2.5.1.204-technic1.jar

    Java on Server: openjdk version "1.8.0_342" OpenJDK Runtime Environment (build 1.8.0_342-8u342-b07-0ubuntu1~20.04-b07) OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode)

    Java on Client: java version "1.8.0_271" Java(TM) SE Runtime Environment (build 1.8.0_271-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

    Modpack in use is Tekkit 2 V1.0.4 Played in MP without any additions, restrictions or changes made to the modpack

    The diamond transport pipe cannot distinguish between these seedlings from forestry and Binnie's extra trees

    https://lumpous.de/tekkit2_72.mp4

    auto: bug 
    opened by Lumpous 2
Releases(7.99.20)