Help Sign In/Register

Minecraft Forums

Advanced Search
  • News
  • Rules
  • Forum
  • Chat
  • Mods
  • Maps
  • Resource Packs
  • MC Station
Desktop View
  • Home
  • Member List
  • thatsIch's Profile
  • Send Private Message
  • View thatsIch's Profile
  • thatsIch
  • Curse Premium
  • Member for 12 years, 6 months, and 10 days
    Last active Tue, Jul, 17 2018 04:43:58
  • 0 Followers
  • 272 Total Posts
  • 9 Thanks
  • Member
  • Posts
  • Threads
  • Reputation
  • Comments
  • Received
  • Given
  • View thatsIch's Profile

    1

    Aug 13, 2014
    thatsIch posted a message on Applied Energistics 2 - Open Source
    Quote from DJCherryTempo

    No, it changed alot from what Ive seen. You have to grow the Certus, find print things from meteors, and I just dont see a need to use it anymore. I'll stick with JABBA personally.

    "from what Ive seen"
    is statement enough. Nobody forces you to use it but there is no reason to **** talk something if you did not even try it.
    Posted in: Minecraft Mods
  • View thatsIch's Profile

    1

    Aug 13, 2014
    thatsIch posted a message on Applied Energistics 2 - Open Source
    Quote from DJCherryTempo

    My words were just an opinion of one man, but still, I didnt like what I saw of how drastically you changed this mod.

    Seems you tried it long enough to know it did not change that much at all.
    Posted in: Minecraft Mods
  • View thatsIch's Profile

    5

    May 16, 2013
    thatsIch posted a message on [AE Add-On]M3ga's ExtraCells 2.1.x/2.2.x
    you should add to the installation: - drop AE into mod folder ^^

    in addtion: what about making a reversed version? which just holds 1k (for example), but more types? often the types are more restricting than the amount (since generally you rarely get more than 16kk other than cobble :)
    Posted in: Minecraft Mods
  • View thatsIch's Profile

    2

    Mar 17, 2013
    thatsIch posted a message on [1.6.4] ForgeIRC v1.0.18, Soul Shards v2.0.15, and Recipe Remover v1.1 [Updated 1/1/2014]
    well you find him a lot on IRC and he tried to update his mod, but due to 1.5 it became too difficult to maintain it. He postponed it until further clarifications.
    Posted in: Minecraft Mods
  • View thatsIch's Profile

    1

    Mar 2, 2012
    thatsIch posted a message on Mom's and minecraft
    never played with my parents. Mine arent into this stuff, more likely my younger siblings play minecraft, cause of creativity
    Posted in: Videos
  • View thatsIch's Profile

    1

    Jul 2, 2011
    thatsIch posted a message on Single Player Commands [V4.9] - Official Download [SPC] [+NoClip]
    Single Player Command since Beta 1.3
    forever and ever you are in my heart ~~
    *lala*

    cant miss it anymore =)
    Posted in: Minecraft Mods
  • View thatsIch's Profile

    1

    Jun 11, 2011
    thatsIch posted a message on Mod Support In 1.7 Patch
    Yeah, but hopefully it will developed further on
    so an Programmers-interface can be implemented.
    There shouldnt be any mods anymore.
    They should implement an interface for add-ons, because no programmer should be focused on fixing problems with other mods.
    Posted in: Survival Mode
  • To post a comment, please login.
  • 1
  • 2
  • Next
  • View sp614x's Profile

    1526

    Jan 13, 2012
    sp614x posted a message on [Launcher] Magic Launcher 1.3.4 (mods, options, profiles, news)

    Hello everybody,

    the Magic Launcher is a new Minecraft launcher which can load mods dynamically without changing or patching the minecraft.jar.

    No more mod installation problems, just select your mods and enjoy.

    Screenshots
















    Features


    • Minecraft
    • - selectable minecraft.jar
      - selectable environment
      - automatic version detection
      - automatic library download
      - configurable window size, also maximized
      - selectable minecraft folder
      - selectable java executable
      - java memory limit
      - java custom parameters
      - show error log
      - multiple user profiles
      - remember password
      - configuration profiles
    • Mods
    • - load mods dynamically without changing minecraft.jar
      - META-INF does not have to be deleted
      - automatic mod compatibility checking
      - external mods detection and compatibility checking
      - shortcut to external mods folder
      - configurable external mods
      - automatic mod requirements checking (ModLoader, ModLoaderMP, Forge, GuiAPI)
    • Design (screenshots)
    • - Minecraft style
    • News
    • - Minecraft
      - Reddit
      - Twitter
      - Blogspot ...

    Download


    Get all MagicLauncher versions here: magiclauncher.com


    Download MagicLauncher 1.3.4 (fixed Reddit RSS feed, fixed server status check, increased account limit to 100, fixed handling of derived profiles (Forge + LiteLoader), fixed "${version_type}" in main menu): for Windows, for Mac, for Windows/Mac/Linux
    Mirrors: for Windows, for Mac, for Windows/Mac/Linux

    Note for Minecraft 1.6.2+

    To run Minecraft 1.6.2+, go to Setup -> Environment and select 1.6.2. If the Environment 1.6.2 is not available, use the vanilla launcher to download and start Minecraft 1.6.2, then Environment 1.6.2 should appear in the list.

    To run Minecraft 1.6.2+ with Forge, go to Setup -> Environment and select 1.6.2_Forge_XYZ. If the Environment 1.6.2_Forge is not available, use the vanilla launcher to download and start Minecraft 1.6.2, then use the Forge installer to install Forge and then the Environment 1.6.2_Forge_XYZ should appear in the list.

    Starting


    Double click the downloaded file and the MagicLauncher should start.

    Older versions

    Download MagicLauncher 1.3.2 (fixed Reddit RSS feed): for Windows, for Mac, for Windows/Mac/Linux
    Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.3.1 (fixed Reddit RSS feed, added Searge and Grum twitter, removed Notch twitter feed): for Windows, for Mac, for Windows/Mac/Linux, Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.3.0 (fixed Minecraft version detection, added support for inherited profiles (Forge installer), fixed library downloads, updated server checks, fixed parsing of twitter feeds): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.2.6 (added support for version specific mods, vanilla inherited profiles, updated server checks and wiki links, fixed library classpath, fixed login with migrated accounts): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.2.5 (added support for Minecraft 1.7.4): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.2.4 (updated to use the new assets structure, fixed missing sounds in 1.7.2): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.2.3 (fixed to correctly save login name and password): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.2.2 (updated to use the Minecraft 1.7+ login protocol, added automatic library download, added check for library rules, added performance fix for Intel integrated graphics, updated server status check, fixed classic environment, fixed handling of authentication problems): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.1.7 (fixed missing sound, fixed Forge compatibility check, fixed Twitter feeds): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.1.6 (fixed window size, fullscreen and base folder for Minecraft 1.6, fixed twitter feeds to use direct links): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.1.5 (updated to support newer snapshots, added search in the log window, fixed twitter feeds, many small bugfixes): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.1.4 (compatible with the Minecraft 1.6 launcher, added Mojang server status check, added support for multiple accounts, added option "Close after login", added support for coremods, fixed external mod handling, updated Forge support, fixed crash when parsing configuration, updated news feeds): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 1.0.0 (better Forge mod detection, fixed Twitter feeds, default memory limit 512M): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.9 (fixed news to load fully in background, added multi-selection for mod list, added button Replace mod, testing in Setup uses username from login field, added warning for modified minecraft.jar): for Windows, for Mac, for Windows/Mac/Linux Mirrors: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.8 (added support for ForgeModLoader, fixed option News, fixed Forge and ModLoader detection, removed broken IGN news, equal startup and maximum memory): for Windows, for Mac, for Windows/Mac/Linux
    Alternative downloads: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.7 (added option News for faster startup, fixed Forge detection): for Windows, for Mac, for Windows/Mac/Linux
    Alternative downloads: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.6 (added custom directory for Mac/Linux): for Windows, for Mac, for Windows/Mac/Linux
    Alternative downloads: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.5 (added checkbox ExternalMods, fix for external mods after crash): for Windows, for Mac, for Windows/Mac/Linux
    Alternative downloads: for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.4 (fixed offline mode): for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.3 (copy profiles, external mods can be deactivated per configuration, automatic mod requirements checking (ModLoader, ModLoaderMP, Forge, GuiAPI)): for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.2 (added profiles, window size, window maximized, java path, java parameters and base folder, fixed external mods folder to be under custom base folder): for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.1 (added profiles, window size, window maximized, java path, java parameters and base folder): for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.9.0 (textured buttons, more complex checks, gray inactive mods, fixed SPC problems): for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.8.9 (textured buttons, more complex checks, gray inactive mods): for Windows, for Mac, for Windows/Mac/Linux
    Download MagicLauncher 0.8.8 (resizable dialogs, windows exe and 64-bit java): for Windows, for Mac, for Mac/Linux/Windows
    Download MagicLauncher 0.8.7 (remember me, native window style): for Windows, for Mac/Linux/Windows
    Download MagicLauncher 0.8.6 (fixed startup problems): Download 1

    Changelog


    1.3.4 - fixed Reddit RSS feed, fixed server status check, increased account limit to 100, fixed handling of derived profiles (Forge + LiteLoader), fixed "${version_type}" in main menu
    1.3.2 - fixed Reddit RSS feed
    1.3.1 - fixed Reddit RSS feed, added Searge and Grum twitters, removed Notch twitter
    1.3.0 - fixed Minecraft version detection, added support for inherited profiles (Forge installer), fixed library downloads, updated server checks, fixed parsing of twitter feeds.
    1.2.5 - added support for Minecraft 1.7.4
    1.2.4 - updated to use the new assets structure, fixed missing sounds in 1.7.2.
    1.2.3 - fixed to correctly save login name and password
    1.2.2 - updated to use the Minecraft 1.7+ login protocol, added automatic library download, added check for library rules, added performance fix for Intel integrated graphics, updated server status check, fixed classic environment, fixed handling of authentication problems
    1.1.7 - fixed missing sound, caused by the sound thread being interrupted while writing log. Fixed Forge mod detection when Forge is loaded as environment library. Fixed RSS feeds to use cached static files.
    1.1.6 - fixed window size, fullscreen and base folder for Minecraft 1.6, fixed twitter feeds to use direct links
    1.1.5 - updated to support newer snapshots, added search in the log window, fixed twitter feeds, fixed crash when profile name starts with quotes, fixed crash when profile environment not found.
    1.1.4 - compatible with the Minecraft 1.6 launcher, supports all Minecraft versions downloaded by the new launcher. Added Mojang server status check with fancy lights and tooltips. Added support for multiple accounts. Added option "Close after login". Added support for coremods, similar to the External Mods. Fixed external mod handling, mod activation and deactivation is done correctly now. Updated Forge support, mods are corectly reactivated after Forge has finished loading the mods. Fixed crash when parsing configuration entries ending with "\\". Updated news feeds, added Mojang news.
    1.0.0 - detects Forge mods by checking for mcmod.info, updated FML detection, fixed Twitter feeds after twitter removed the old RSS feeds, default memory limit set to 512M to avoid swapping to disk
    0.9.9 - fixed news to load fully in background should eliminate blocking on slow or missing internet connection; added multi-selection for mod list - group add, replace and remove are supported; added button Replace mod; testing in Setup uses username from login field - if empty generates a test username; added warning when using modified minecraft.jar as this usually leads to various problems.
    0.9.8 - added support for ForgeModLoader, fixed mod compatibility detection when fields and methods are still available in the parent class (Forge), fixed ModLoader detection to also check if ModLoader is inside the mod (Forge), fixed dialog Setup not to reset option News, startup and maximum memory are now equal, removed broken IGN news
    0.9.7 - added option to turn off news tabs for faster startup, fixed Forge detection, auto-resizable message dialog
    0.9.6 - added custom directory support for Mac and Linux
    0.9.5 - added checkbox ExternalMods to disable or enable all external mods at once, fix for external mods after a crash, fixed some hanging file locks on external mods
    0.9.4 - fixed offline mode to start correctly
    0.9.3 - copy profiles, external mods can be deactivated per configuration, automatic mod requirements checking (ModLoader, ModLoaderMP, Forge, GuiAPI), detection of duplicate mods, detection of internal mods placed in external mods folder, detection of empty or not unpacked mod archives.
    0.9.2 - fixed external mods folder to be under custom base folder
    0.9.1 - added configuration profiles, window size, window maximized, java path, java parameters and base folder, fixed non-ascii paths, allows mod from jar files, "Manage" creates folder "mods" if not existing
    0.9.0 - fixed some problems
    0.8.9 - textured buttons, more complex compatibility checks, gray inactive mods, checkbox Check compatibility
    0.8.8 - resizable dialogs, windows exe works with 64-bit java, button "Add mod" starts in minecraft folder, fixed HTML problems with Java 1.5, added failed start detection, extended logging, launcher closes only if Minecraft has successfully started.
    0.8.7 - implemented "Remember me", native window style, resizable/maximizable window, .EXE for Windows
    0.8.6 - colors for status fields, beter compatibility checks
    0.8.5 - UI corrections, slimmer scrollbars
    0.8.4 - fixed log window to terminate JVM on failed start, added search for ModLoader in minecraft.jar, java startup memory set to 128M
    0.8.3 - fixed java classpath when starting from path containing spaces
    0.8.2 - added incompatible mods warning, startup logging
    0.8.1 - fixed NPE if folder "mods" not existing
    0.8.0 - first release

    Fixing common problems


    1. The order of the mods is important as some of them are designed to "overwrite" parts of other mods.
    2. The ModLoader has to be first in the mods list, use the button Up to move it to first position. ModLoader is not needed if Forge 4.0 or newer is installed.
    3. Then come (if you need them) ModLoaderMP and Forge.
    4. Then come the rest of the mods and last comes OptiFine. Only one OptiFine edition may be active as they overwrite each other.
    5. Do not forget to start with a clean minecraft.jar. If it is already modified or patched, then some mods may not work correctly.
    6. A mod should appear either in the internal or the external mod list, but not in both at the same time.
    7. Mods which have status "No mods found" needs to be repackaged to be used. The mod ZIP file usually have a folder "put_in_minecraft_jar" or similar which contains one or more files like "acx.class". The contents of this folder have to be zipped in a separate ZIP file and added as an internal mod. This solution works with almost all problematic mods.
    8. If you get an error "No accelerated mode found" or "Bad OpenGL drivers" you may try running Minecraft with less memory. Go to "Setup -> Advanced", enter 256 in the field Memory and test again. This helps with some integrated graphics cards.

    TODO


    - Check for new Minecraft version and update Minecraft
    - Incremental GC (-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode)
    - XX:MaxDirectMemorySize
    - mcmod.info in subfolder
    - Configurable news tab
    - Export mod list
    - Update user skin
    - Auto login
    - Security
    - LiteLoader mods
    - Drag and drop
    - Languages
    - Command line options
    - Mods with a subdirectory root
    - Detect libraries (TurboModelThingy)
    - Better conflict detection
    - Portable, relative paths
    - Limit worlds per profile
    - Minecraft font
    - Backups
    - Support for patchers

    Posted in: Minecraft Tools
  • View simo_415's Profile

    1392

    Dec 6, 2010
    simo_415 posted a message on Single Player Commands [V4.9] - Official Download [SPC] [+NoClip]
    Single Player Commands (SPC)
    Version 4.9 for Minecraft 1.6.2


    If you're looking for a server, or need to contact me, currently the best place is through this PvP survival server: pvp.darkmines.net.



    Download Automated Installation [COMING SOON]
    for a video tutorial on how to use the installer

    Download Manual Installation [Preferred] - [Link Removed]
    NEW INSTALL INSTRUCTIONS - CLICK HERE



    Release Details
    Spotlight
    Command List
    Item and Block codes
    Downloads
    Installation Instructions
    Troubleshooting

        Installer

    Minecraft Coder Pack (MCP) Compatibility

        Special Thanks

        Want to play SMP with me? Find me on this server regularly

        Advertise Single Player Commands

        License

        Donate



    Release Details

    For Minecraft 1.6.2 - Download Here

    Big thanks to q3hardcore for many of the new features

    /killall and /butcher now work
    /wand fixed
    Compatability with Mod Loader, PlayerAPI and Forge
    The current SPC installer is broken, a new one is being worked on which will be out in a few weeks (hopefully)
    New installation instructions, below.
    Many other things

    How to install (Minecraft 1.6.2)

    1. Close Minecraft launcher (if open)
    2. Navigate to where minecraft is installed (eg: on Windows %appdata%/.minecraft)
    3. Go to versions and copy the 1.6.2 directory and name it something else (eg: 1.6.2.mods). Alternatively, if you have done this for another mod already backup the Minecraft JAR.
    4. Open the jar file (using an archive utility, such as 7zip) in the mod directory you created (eg: 1.6.2.jar) and copy all of the files into it except for WorldEdit.jar
    5. Delete the files in the META-INF directory except for MANIFEST.MF
    6. Close the jar file
    7. Copy WorldEdit.jar into .minecraft/bin
    8. Rename the jar file to the same name as the directory (eg: 1.6.2.mods.jar)
    9. Rename the json file to the same name as the directory (eg: 1.6.2.mods.json)
    10. Open the json file in a text editor and the line that contains the id (eg: "id": "1.6.2") change it to the same name as the directory (eg: "id": "1.6.2.mods")
    11. Save and close the json file.
    12. Start up the Minecraft launcher
    13. Create a new profile
    14. Select the version that you just created (eg: 1.6.2.mods)
    15. Select the rest of your settings.
    16. Launch the game.

    Note: Using a 3rd party launcher such as Magic Launcher may save you a lot of time in managing mods.

    Code is open source at: https://github.com/simo415/spc

    For more information on commands use /help in game or visit http://youtube.com/user/spcmod


    The Spotlight
    Periodically I will put up a picture and video which I think are good representations as to what Single Player Commands is capable of. If you would like to get your picture or video featured here please send me a link (via PM or post) and if I like them they will get featured.
    Note: Videos should focus on SPC and can be any length (preferably at least 30 seconds)

    by drawingkid1313


    Command List

    Stuck on a command, confused or just looking for something new? Check out http://www.youtube.com/user/spcmod for a simple demo of most of the commands this mod provides.

    To bring up the command "console" type 'T' then type in the command. Below is a brief run through of the command list:

    Commands

    ADMIN: Due to the number of youtube links here, this content has been removed.

    WorldEdit Commands

    For a list of WorldEdit commands please visit the WorldEdit wiki page: http://wiki.sk89q.co...dEdit/Reference

    Global Command
    //limit - Set a maximum number of blocks to change at most for all operations. This only affects yourself. Use this to prevent catastrophic accidents. This command will not override the limit in the configuration if it is set.

    Brushes
    //brush clipboard - Switch to the clipboard tool.
    //brush cylinder [-h] [height] - Switch to the cylinder brush tool.
    //brush smooth [iterations] - Smooth the region.
    //brush sphere [-h] - Switch to the sphere brush tool.
    //mask - Clear the mask
    //mask - Set a mask
    //mat - Change the material used by your current brush.
    //size - Change the size of the current brushes

    Chunk tools
    //chunkinfo - Get the filename of the chunk that you are in.
    //delchunks - Generate a shell script to delete chunks.
    //listchunks - Print a list of used chunks.

    Clipboard
    //clearclipboard - Clear your clipboard.
    //copy - Copies the currently selected region. Be aware that it stores your position relative to the selection when copying.
    //cut - Cuts the currently selected region.
    //flip [dir] - Flip the clipboard.
    //load - Load .schematic into clipboard.
    //paste [-ao] - Pastes the clipboard.
    //rotate - Rotate the clipboard.
    //save - Save clipboard to .schematic.

    General commands
    //search - Search for an item by its name.
    //worldedit reload - Reloads WorldEdit's configuration.
    //worldedit tz - Set your timezone. This is temporary.
    //worldedit version - Gets WorldEdit's version.

    Generation
    //cyl [height] - Create a vertical cylinder.
    //forestgen [type] [density] - Make a forest.
    //hcyl [height] - Create a vertical hollow cylinder.
    //hsphere [raised?] - Create a hollow sphere.
    //pumpkins - Make a pumpkin forest
    //sphere [raised?] - Create a sphere.

    Getting around
    //ascend - Go up one level.
    //ceil [clearance] - Get to the ceiling.
    //descend – Go down one level.
    //jumpto - Jump to the block that you are looking at.
    //thru - Go through the wall that you are looking at.
    //unstuck - Go up to the first free spot.
    //up [distance] - Go up some distance.


    History
    //clearhistory - Clear your history.
    //redo [number of steps] - Redo your last (undo) action. This command replays back history and does not repeat the command.
    //undo [number of steps (default – last)] - Undo your last action.

    Region operations
    //move [count] [direction] [leave-id] - Move the selection's contents. A block can be specified to fill in the left over area.
    //overlay - Place a block on top of blocks inside the region.
    //outline - Build walls, floor, and ceiling.
    //regen - Regenerate the selection region.
    //replace - Replace all non-air blocks blocks inside the region.
    //replace - Replace all blocks of the specified block(s) with another block inside the region.
    //set - Set all blocks inside the selection region to a specified block.
    //smooth [iterations] - Smooth the selection's heightmap.
    //stack [count] [direction] - Stacks the selection.
    //walls - Build the walls of the region (not including ceiling and floor).

    Scripting
    //cs

    Posted in: Minecraft Mods
  • View techbrew's Profile

    332

    Nov 7, 2011
    techbrew posted a message on JourneyMap 5.5.x: Realtime mapping in-game or in a web browser as you explore
    JourneyMap for Minecraft
    with support for the JourneyMap API

    Downloads:
    http://journeymap.info/Download


    How to Install:
    http://journeymap.info/Install

    NO TECHNICAL SUPPORT WILL BE PROVIDED ON THIS THREAD.
    DON'T POST LOGS OR BUGS HERE.

    Technical Support:
    http://journeymap.info/Support

    Mod Spotlight:


    See http://journeymap.info/ for information about how to install and use this mod, complete release notes, rules about inclusion in modpacks, translation, technical support, etc.

    Posted in: Minecraft Mods
  • View Calacbolg's Profile

    3884

    Feb 26, 2013
    Calacbolg posted a message on Cubic Chunks: Reduced lag, infinite height, and more [The #1 Suggestion Thread of all time!][Updated! 6/14]
    This system will not increase lag! The entire point of this system is to avoid the lag caused by higher height limits.


    Table of Contents:

    Overview
    The benefits
    The features
    The disadvantages
    The problems
    Changes in how things work
    Data storage
    Changes to world features
    Coping with sunlight
    Changes to servers
    Render/Load distance alterations
    Frequently Asked Questions
    [WIP] The Cubic Chunks Mod!
    Gallery
    Supporting this suggestion
    Special thanks

    [spoiler=Tl:dr]Q: Won't this increase lag?
    A: Absolutely not. The title of this suggestion and big red letters at the top of this post aren't lying. If you want to know how, then I suggest you actually read this post.

    Q: Will this change terrain? Will this break existing worlds?
    A: No. Terrain change is not necessary. Existing worlds can be converted fairly easily with a process described later in this post.

    Q: How can sunlight or rain work with infinite vertical space?
    A: I suggest you read Coping with sunlight, because it's too complex for a tl;dr.

    Q: I have a different question but still don't feel like reading this post. What do I do?
    A: Too bad, read the FAQ. I put way too much work into this for the entirety of it to be ignored.[/spoiler]



    Overview:

    In Minecraft, the sky is the limit - literally. It doesn't matter how many thousands of blocks a player has traveled, or what dimension they're in, or even if they're playing in creative or survival, the highest they can ever build is up to a height of 256. Why is that? If Minecraft can have a world that's infinite in the north, in the south, in the east, and in the west, why can't that world be infinite up and down too?

    In Minecraft's earliest days, in Classic and Indev, the world was not infinite in any direction. This was because the entire world needed to be generated at the same time, and the entire world needed to be simulated at the same time as well. This led to a conundrum - the bigger the world, the more it lagged.
    Notch didn't like this. He knew his players liked to explore and build large creations, so he found a way to make the world truly infinite. When the Minecraft '' class='bbc'>Infdev came out, it brought with it truly infinite worlds. Suddenly, players could travel hundreds of thousands of blocks in any direction, and never encounter a barrier, or become too laggy.
    The Infdev update brought about a very large change to Minecraft worlds to accomplish this feat. For the first time, instead every world being just a single huge piece, they were broken up into a two-dimensional grid of pieces, called chunks. Through breaking the world up into pieces, this 'chunk system' enabled infinite worlds by letting Minecraft create new pieces and simulate them only when it needs to.

    Why does that not apply to the vertical axis? Because the type of 'chunk system' Minecraft uses right now is a linear one, which, by using only a two-dimensional grid to map out chunks, means that it is impossible for chunks to stack on top of one another, and by extension, meaning that a single chunk must cover the entire vertical space. This brings back the problem that the Infdev update was supposed to eradicate, now only with chunks, instead of an entire world; the bigger a chunk is, the more laggy it is. You can't just increase the height limit and make chunks taller, because it will become laggier, and laggier, and laggier to do it.
    That's why, to fix this, Minecraft must change over to a cubic chunk system. Under this system, 163 block chunks are aligned on a three-dimensional grid, completely eliminating maximum height as an aspect of lag.

    The immediate benefits:
    •Minecraft worlds become as virtually infinite vertically as they are horizontally: The absolute limit being Y = ±30,000,000.
    •A large FPS increase: Alpha testers report an FPS increase of 100~200%.
    •Increase in running capability: Computers running Minecraft on Tiny render distance will handle only 30% the blocks they do now.

    The possible features:
    •Spherical render/load distance: Reduce handled blocks by up to 30% by cutting corners made of unneeded chunks.
    •Server chunk occlusion/exclusion: Reduce bandwidth usage and defeat hackers by only sending data for visible chunks.
    •Three-dimensional biomes: Save biome data per chunk rather than per block column, create volcanoes with magma chambers, underground rivers, tropical skylands floating over icy taigas, and more.

    The disadvantages:
    •Unloaded gravity-pause: Falling non-player entities and fluids will be forced to pause their fall if they reach unloaded chunks, but will resume falling when those chunks are loaded.
    •Slow falling-pause: Players with slower computers and smaller render distances will have falling occasionally paused as they fall into unloaded chunks, until new chunks can be loaded.

    The problems:
    •Current sunlight and rain calculation methods cannot work with infinite vertical space: The solution to this is described here.
    •Current BiomeDecorator cannot work with multiple vertical chunks simultaneously: The BiomeDecorator code must be altered to function correctly with this, or removed.
    •Current cave generation method is executed an extra time for each vertical chunk created simultaneously, leading to lag spikes on world generation: Cave generation's method must be altered to suit this system more.
    •Current grass/dirt generation algorithm forces additional chunk requests when chunks are loaded, causing chunks to load slower than they should: This algorithm must be replaced with something else.



    Changes in how things work:

    Obviously, the implementation of this new chunk system will change quite a few things. These changes are mostly either necessary or in the interest of increased efficiency. Such changes are categorized and explained below.

    How worlds will be stored:
    [spoiler]How the current storage works, and what changes:
    Interestingly enough, the current method of storage, the Anvil format, is derived from the storage method that the original Cubic Chunks mod used. The Anvil format stores individual chunk as a series of 163 quasi-cubic chunks. These 'fake' cubic chunks allow for easier reference of specific data, but they still can't be separated from each other, meaning that it fails to reap the full benefits of this system. Even so, the change allowed Mojang to double the maximum height with no performance hit. Chunks are stored in groups of 322, inside 'MCRegion' files, for a total of 1024 chunks.
    By nature, cubic chunks does away with the 'quasi-cubic' nonsense. In terms of chunk grouping, instead of using groups of 323 chunks, new "3DRegion" files would contain groups of 163. This means each 3DRegion file contains 4096 chunks, four times as many as MCRegion files. However, each 3DRegion contains only one fourth the amount of blocks. For per-chunk positional metadata, 3DRegion files would use the same number of bits as MCRegion files, after compression. Calculations show that the same area encompassed by a single MCRegion file would consume 64 kilobytes of extra space with 4 3DRegion files, which is nothing.

    Converting existing worlds:
    Most people are probably wondering something like "But won't this totally destroy all existing worlds?". Absolutely not; conversion could not be simpler. When a non-cubic world is loaded after the implementation of this system, a conversion process will begin and convert the entire world at once(To avoid making chunk loading take longer during play). First, all existing MCRegion files will be divided into quarters to create 3DRegion files. Then, all existing chunks are divided into sixteenths using the quasi-cubic properties to identify boundaries. After that, conversion is done.

    The "isEmpty" flag optimization:
    A 1-bit flag is added to each chunk, named "isEmpty". If the chunk consists of 100% air blocks, this bit is 1, any other case makes it 0. When the bit is 1, all data for the chunk besides the isEmpty flag is deleted and ignored, which reduces filesize. Empty chunks are never loaded, and locations where they occur are merely simulated as entities reside in them. The chunk will only load when something requires saving inside it.[/spoiler]

    Changes to terrain, ores, etcetera:
    [spoiler]Terrain:
    By default, nothing will change. Small bits of terrain generation code need to be reconfigured to work properly with Cubic Chunks.

    Biomes:
    By default, nothing will change.

    Ore generation:
    By default, nothing will change.

    Structures:
    By default, nothing will change.

    The Void:
    After conversion to Cubic Chunks, the void and bedrock layer will still exist and generate as they always have. However, the void(Not the bedrock layer!) will not exist as a hard limit and is able to be moved, but not removed, by editing an associated NBT data tag inside a world's level.dat. This feature, that allows for increasing the maximum depth, is intentionally disabled without external programs, to prevent terrain change of any sort. It is intended to be used by experienced mapmakers and world generation mods only.

    Superflat settings:
    Existing superflat worlds will not change. However, new superflat worlds will gain a new decoration parameter, 'void'. Inclusion of this parameter will cause the void to form below the lowest defined layer. Exclusion of it will cause all layers below the lowest defined layer to copy the settings of that layer.[/spoiler]

    Coping with sunlight:
    [spoiler]There used to be a solution here, but it wasn't deemed good enough by Jeb. Suggest solutions in this thread.[/spoiler]

    Changes to servers:
    [spoiler]Settings:
    There's a setting inside the Server.properties file called 'max-build-height'. The setting makes it impossible for any player to place or remove blocks above that height.
    With the implementation of Cubic Chunks, a new setting named "maximum-generation-depth" would be added. The void, bedrock layers, and magma layers will generate normally at and above the Y level designated by the value of this setting.

    Chunk occlusion/exclusion:
    Using the raytracing methods already available in the code and used for explosion calculations, servers can identify which chunks are visible to a player, within safe assumptions, and only send the data for those chunks. This both reduces bandwidth usage, and cripples the usefulness of X-Ray cheats.[/spoiler]

    Render/Load distance alterations:
    [spoiler]After the implementation of Cubic Chunks, view distances' radii will apply to the vertical axis too. This reduces handled blocks in the cases of tiny and short render distances, and increases them in the cases of normal and far render distances. This can be optimized by utilizing a spherical render distance instead of a cubic one, which would reduce handled blocks in all distances except Far.[/spoiler]



    Frequently Asked Questions:

    [spoiler=FAQ]Q: This is impossible.
    A: No it's not. See below.

    Q: Is this available as a mod?
    A: Not yet! But it will be!

    Q: I like X-ray! What if I don't want it to be broken?
    A: First of all, breaking X-ray hacks will only be possible to do in multiplayer. That said, the system that would break X-ray would be possible to disable by the server owner. If the owner doesn't disable the system, then they don't want you using X-ray, and you should not be doing what the server owner doesn't want in the first place.

    Q: I play on a PvP/Anarchy/Raid/Faction server. Won't this system let people pillar up into the sky and create a base thousands of blocks in the air and never be found?
    A: No.

    Q: I like Minecraft's current height limits. What if I don't want to have an infinite sky or infinite underground?
    A: If this system is added, all worlds will not automatically gain an infinite underground. As stated below, the Void will remain in all worlds, even after the conversion to Cubic Chunks. The ability to remove the Void will simply be there. As for infinite space in the sky, the current build limit is over one hundred blocks above any terrain that vanilla Minecraft can possibly generate. It is ENTIRELY your decision on whether or not you take advantage of this height. If you play on a server, like stated above, the server owner can set a maximum build height. If s/he doesn't, then don't play on their server - you don't play on servers where the server owners allow things you don't like. Why would you play on an anarchy server if you hate being stolen from and killed?

    Q: Will this affect Redstone at all?
    A: No. This system will simply make it possible to make larger redstone circuitry than before.

    Q: Won't this break existing worlds?
    A: No. Existing worlds can be easily converted by dividing each MCRegion file into 4 pieces, then slicing the existing 256 block-high chunks inside them into 16 individual chunks.

    Q: Won't this affect mods? Won't mod authors have a hard time updating their mods?
    A: The answer to this question depends solely on the answer to the following two questions: Do parts of the modification code rely on chunk data/metadata? Does the mod author want to take advantage of the features of the new chunk system? If the answers to the first and second question are both "No", then updating a mod to this system should be very easy and quick. If the answer to the first question is "Yes", then those parts of the code will need to be rewritten somewhat, but in most cases, the changes should be fairly quick and easy. The only time that it should be hard to update a mod to this system, is if the answer to the second question is "Yes".

    Q: Won't this require a total rewrite of the mod API if that's released first?
    A: No. Whether or not even a small part of the mod API needs to be rewritten depends on the way that it is implemented and whether or not there are API inclusions for chunk handling and other chunk-related behavior.

    Q: Could a player fall into unloaded chunks if chunks aren't loaded fast enough?
    A: No, they could not, and for several reasons. Minecraft has a terminal velocity, though it might not seem like it. This velocity is slower than it should take to load new chunks below the player. In cases with exceptionally slow computers, even if the player did manage to reach an unloaded chunk, their fall would be paused until that chunk can be loaded.

    Q: What would happen when water, sand, or a mob falls into an unloaded chunk?
    A: Nothing. The water/sand/mob would freeze in place until the chunk is loaded and it can continue moving. You can already see this same thing happening on the horizontal axis.

    Q: What will happen to the Void?
    A: It will still exist, along with all its effects. The only difference is that the Void is no longer a hard limit and it can be moved. After the conversion to Cubic Chunks, the Void's location will be stored in a world's ' class='bbc'>level.dat, and this location can be changed with NBT editing tools. When and where the Void exists, chunks will cease to generate.

    Q: Will this affect terrain?
    A: No. However, terrain generators will gain the ability to use infinite height.

    Q: Will this affect ore generation?
    A: No. Ore is a part of terrain generation. As stated above, terrain will not be changed.

    Q: Won't all current terrain generators be incompatible with this system and need to be rewritten?
    A: No. Terrain generators work independently of chunks. When a chunk is generated for the first time, it calls the terrain generator and receives a specific section of the resultant terrain to save inside itself. Because of this, some custom terrain generators can generate steep terrain all the way to Y256, where you can experience a large, flat cut-off. Since there are no chunks above Y256 to call the terrain generator for terrain, no terrain exists there.

    Q: What would happen if there's a huge solid ceiling so far above you that it is unloaded? Wouldn't you just see the sky, just with everything being completely dark?
    A: Yes. This already happens on the horizontal axis, and it is an issue with sky rendering, not this chunk system. As such, this has nothing to do with this suggestion. Please do not post about this.

    Q: If you go deep underground, will your plants grow/ores smelt/animals grow?
    A: No, because those chunks would be unloaded, just as if you had walked far away. This is a flaw with any chunk system, regardless of shape. It is a necessary evil that allows Minecraft to have infinite worlds. The only way to fix this would be to introduce a separate new system that works with chunks as they are loaded and unloaded. This suggestion deals with the chunk system itself, and not sister processes. Because of that, that is outside of the scope of this suggestion. Please do not post about this.[/spoiler]



    [WIP] The Cubic Chunks Mod! (Tall Worlds Mod):

    Cuchaz has taken it upon himself to bring us the glorious Cubic Chunks, since Mojang refuses to do so.

    Cuchaz is using a API of his own creation to help assist in the making of this mod, and he's quite far along, as seen in these two tech demo videos:
    [spoiler=T-Demo 1: Vertical chunk loading][/spoiler]
    [spoiler=T-Demo 2: Broken height cap and no lag!][/spoiler]
    With the basic functionality in place - a complete overhaul of the basic chunk system, and height limit removed - this whole concept can already be considered proven. What remains is making sure everything else functions correctly under the new chunk system. In any case, stay tuned for future updates if it interests you(If it doesn't, then you are the weakest link - goodbye!).

    You can follow the mod's development in much more depth in its very own topic!


    Gallery:

    [spoiler=A mountainside with an experimental engine using Cubic Chunks designed by Nocte. 960 block view radius, and 30 FPS.][/spoiler]
    [spoiler=A different view of the mountainside with the same engine by Nocte. This time, with 1600 block view radius and 15 FPS.][/spoiler]
    [spoiler="A video demonstrating Nocte's engine."]

    Support & Submission to Mojang:

    If you support this, hit the rep button in the bottom-left corner of this post. It is the only good way of accurately measuring support here.

    If you wish, you can put the following banner, courtesy of laz2727, into your signature. It helps to attract support from all parts of the forum!
     [url=http://www.minecraftforum.net/topic/1707097-cubic-chunks-infinite-height-elimination-of-x-ray-and-more-60-supporters/page__st__0][img]http://img833.imageshack.us/img833/443/hov.png[/img][/url]


    Please help us get word out of this suggestion! Share this with your friends, with Minecraft celebrities if you're familiar with them, or even with Mojangsters like Jeb or Dinnerbone! (Do not share this with Notch. Notch doesn't work with Minecraft anymore.)

    The purpose of this suggestion is to have Cubic Chunks implemented in Vanilla. Being available as a modification does not fulfill that purpose. The modification featured in this suggestion is to act as a proof-of-concept only(Note: Its being featured here is to act as a proof-of-concept. The modification itself is on its way to becoming a fully fledged modification).



    Special thanks:
    Cuchaz, for taking Barteks' proof and running with it, to give us a truly functional Cubic Chunks mod.
    Barteks2x, for updating the Cubic Chunks mod to 1.6.2, proving that it is possible.
    Azraile, for posting the original suggestion and allowing me to take ownership of it.
    Nocte, for helping resolve flaws and designing Hexahedra.
    MineCrak, for a large amount of valuable insight and enthusiasm into the topic of Cubic Chunks.
    aaronfranke, for helping resolve flaws.
    PanJouda, for creating the original banner.
    Flexico, for creating the predecessor to the current banner.
    laz2727, for creating the current banner.
    Robinton, for creating the original Cubic Chunks mod.
    The_Watchman13, for answering all those stupid questions so I don't have to.



    Note: Many calculations and information can be found among the many posts of this topic. There are too many for me to cite here, but if you wish, you can search for them yourself.
    Posted in: Suggestions
  • View Benimatic's Profile

    1192

    Aug 19, 2011
    Benimatic posted a message on The Twilight Forest (v2.3.5: Wrecking Block)

    Imagine stepping through a portal into a twilight realm, filled with trees as far as they eye can see. Breathtaking vistas and amazing discoveries await you around every corner. But beware! Not all denizens of the forest respond to your intrusion lightly.

    Updated March 29th to version 2.3.5. This version supports Minecraft 1.7.10. New in this version, the Snow Queen rules over the Aurora Palace high atop the glacier, while trolls inhabit caves deep in the rock of the highlands. In addition to these new areas to explore, this version also revises the progression system to feature very visible weather effects in "locked" biomes, instead of less-visible magic effects. Version 2.3.4 adds a /tfprogress command to advance a player's progress, as well as hint monsters that may appear if you're struggling with the progression system. Version 2.3.5 fixes bugs, adds the knightmetal block-and-chain tool and adds a bit of new swamp scenery.

    If you haven't played one of the 2.0 versions, there is a new progression system. See the details on the wiki page.

    Download:

    Support:
    Support this mod on www.patreon.com/benimatic.
    Follow me on Twitter: @benimatic.

    Old Versions:

    Download v2.3.3 - universal mod package for Minecraft 1.7.10. Requires Minecraft Forge 10.13.2.1291 or higher. Uploaded 2/7/14

    Download v2.3.2 - universal mod package for Minecraft 1.7.10. Requires Minecraft Forge 10.13.0.1199 or higher. Uploaded 9/22/14

    Download v2.3.1 - universal mod package for Minecraft 1.7.10. Requires Minecraft Forge 10.13.0.1199 or higher. Uploaded 9/18/14

    Download v2.2.3 (mirror)- universal mod package for Minecraft 1.7.2. Also supports 1.7.10. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 7/17/14

    Download v2.2.1(mirror)- universal mod package for Minecraft 1.7.2. Also supports 1.7.10. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 7/12/14

    Download v2.2.0(mirror)- universal mod package for Minecraft 1.7.2. Also supports 1.7.10. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 6/29/14

    Download v2.1.1 - universal mod package for Minecraft 1.7.2. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 6/14/14

    Download v2.1.0 - universal mod package for Minecraft 1.7.2. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 6/8/14

    Download v2.0.3 - universal mod package for Minecraft 1.7.2. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 3/10/14

    Download v2.0.2 - universal mod package for Minecraft 1.7.2. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 3/6/14

    Download v2.0.1 - universal mod package for Minecraft 1.7.2. Requires Minecraft Forge 10.12.0.1024 or higher. Uploaded 3/4/14

    Download v1.20.4 - universal mod package for Minecraft 1.6.4. Requires Minecraft Forge 9.11.0.916 or higher. Uploaded 3/15/14

    Download v1.20.3 - universal mod package for Minecraft 1.6.4. Requires Minecraft Forge 9.11.0.916 or higher. Uploaded 11/26/13

    Download v1.20.2 - universal mod package for Minecraft 1.6.4. Requires Minecraft Forge 9.11.0.916 or higher. Uploaded 11/11/13

    Download v1.20.1 - universal mod package for Minecraft 1.6.4. Requires Minecraft Forge 9.11.0.916 or higher. Uploaded 10/7/13

    Download v1.20.0 - universal mod package for Minecraft 1.6.4. Requires Minecraft Forge 9.11.0.880 or higher. Uploaded 9/22/13

    Download v1.19.3 - universal mod package for Minecraft 1.6.2. Requires Minecraft Forge 9.10.0.804 or higher. Uploaded 9/8/13

    Download v1.19.0 - universal mod package for Minecraft 1.6.2. Requires Minecraft Forge 9.10.0.790 or higher. Uploaded 8/4/13

    Download v1.18.2 - universal mod package for Minecraft 1.5.2. Requires Minecraft Forge 7.8.0.684 or higher. Uploaded 6/30/13

    Download v1.18.1 - universal mod package for Minecraft 1.5.2. Requires Minecraft Forge 7.8.0.684 or higher. Uploaded 5/27/13

    Download v1.18.0 - universal mod package for Minecraft 1.5.2. Requires Minecraft Forge 7.8.0.684 or higher. Uploaded 5/11/13

    Download v1.17.2 - universal mod package for Minecraft 1.5.1 or 1.5.2. Requires Minecraft Forge 7.7.0.600 or higher. Uploaded 4/30/13

    Download v1.17.1 - universal mod package for Minecraft 1.5.1 or 1.5.2. Requires Minecraft Forge 7.7.0.600 or higher. Uploaded 3/30/13

    Download v1.17.0 - universal mod package for Minecraft 1.5.1 or 1.5.2. Requires Minecraft Forge 7.7.0.600 or higher. Uploaded 3/21/13

    Download v1.16.3 - universal package for Minecraft 1.5.0. Requires Minecraft Forge 7.7. Uploaded 3/20/13

    Download v1.16.2 - universal package for Minecraft 1.5.0. Requires Minecraft Forge 7.7. Uploaded 3/18/13

    Download v1.15.4 - universal package for Minecraft 1.4.7. Requires Minecraft Forge 6.6. Uploaded 3/2/13

    Download v1.15.3 (adf.ly link) - universal package for Minecraft 1.4.7. Requires Minecraft Forge 6.6. Uploaded 2/16/13

    Download v1.15.2 - universal package for Minecraft 1.4.7. Requires Minecraft Forge 6.6. Uploaded 2/10/13

    Download v1.15.1 - universal package for Minecraft 1.4.7. Requires Minecraft Forge 6.6. Uploaded 1/19/13

    Download v1.15.1 - universal package for Minecraft 1.4.7. Requires Minecraft Forge 6.6. Uploaded 1/12/13

    Download v1.14.0 - universal package for Minecraft 1.4.6. Requires Minecraft Forge 6.5. Uploaded 12/21/12

    Download v1.13.2 - universal package for Minecraft 1.4.5. Requires Minecraft Forge 6.4. Uploaded 12/16/12

    Download v1.13.1 - universal package for Minecraft 1.4.5. Requires Minecraft Forge 6.4. Uploaded 11/26/12

    Download v1.13.0 - universal package for Minecraft 1.4.4 or Minecraft 1.4.5. Requires Minecraft Forge 6.3 (for 1,4,4) or Forge 6.4 (for 1.4.5). Uploaded 11/14/12

    Download v1.12.3 - universal package for Minecraft 1.4.2. Requires Minecraft Forge 6.0.1.whatever. Uploaded 11/14/12

    Download v1.12.2 - universal package for Minecraft 1.4.2. Requires Minecraft Forge 6.0.1.whatever. Uploaded 11/5/12

    Download v1.12.0 - universal package for Minecraft 1.4.2. Requires Minecraft Forge. Uploaded 10/25/12

    Download v1.11.11 - package for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 10/19/12

    Download v1.11.10 - package for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 10/6/12

    Download v1.11.8 - package for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 9/27/12

    Download v1.11.5 - package for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 9/11/12

    Download v1.11.4 - universal files for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 9/3/12

    Download v1.11.3 - universal files for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 8/26/12

    Download v1.11.1 - universal files for Minecraft 1.3.2. Requires Minecraft Forge. Uploaded 8/20/12

    Download v1.10.1 - client files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 6/8/12

    Download v1.10.1 - server - server files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 6/8/12
    Download v1.10.0 - client files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 6/5/12


    Download v1.9.1 - client files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 6/3/12

    Download v1.9.1 - server - server files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 6/3/12


    Download v1.9.0 - client files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 5/1/12

    ]Download v1.9.0 - server - server files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 5/1/12

    Link Removed - client files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 4/19/12 Updated 4/22 - fixed a few stray pixels on the items and armors.

    Link Removed - server files for Minecraft 1.2.5. Requires Minecraft Forge. It is highly recommended that you update your forge to 3.1.2.90 or newer. Uploaded 4/19/12

    Link Removed - client files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 4/8/12

    Link Removed - server files for Minecraft 1.2.5. Requires Minecraft Forge. Uploaded 4/8/12


    Link Removed - client files for Minecraft 1.2.4. Requires Minecraft Forge (& ModLoader & ModloaderMp). Uploaded 4/1/12 (Re-uploaded on 4/3 to fix a bug causing more-than-usual lag in SMP. Download the file again if you're having that problem.)

    Link Removed - server files for Minecraft 1.2.4. Requires Minecraft Forge (& ModloaderMp). Uploaded 4/1/12
    Link Removed - client files for Minecraft 1.2.3. Requires Minecraft Forge. Uploaded 3/13/12

    Link Removed - server files for Minecraft 1.2.3. Requires Minecraft Forge. Uploaded 3/13/12

    Link Removed - client files for Minecraft 1.2.3. Uploaded 3/8/12

    Link Removed - client files for Minecraft 1.1. Uploaded 1/26/12

    Link Removed - server files for Minecraft 1.1. Only needed for a multiplayer server, of course. Uploaded 1/26/12

    Link Removed - for Minecraft 1.1. Uploaded 1/20/12

    Link Removed - for Minecraft 1.0. Uploaded 11/29/11

    Link Removed - for Minecraft 1.8.1. Uploaded 11/02/11

    Link Removed - for Minecraft 1.8.1. Uploaded 10/04/11

    Link Removed - for Minecraft 1.8.1. Uploaded 9/27/11

    Download v0.1p4 -updated 08/22 - for Minecraft 1.7.3. Note that saves from previous updates are not fully compatible so you will have to start a new game.

    Download server mod 0.1p4 - for Minecraft 1.7.3. Only needed if you are running an SMP server. To install, drop files into the minecraft_server.jar. Note that it replaces the normal world, so you will need to generate a new world to use this.

    Change Log:
    View the change log on the wiki.

    FAQ:
    View the FAQ on the wiki.

    Installation Instructions:
    View the installation instructions on the wiki.

    Getting There:
    To make a portal to the Twilight Forest, make a 2 x 2 shallow pool (4 squares) of water in a grassy area, and surround it entirely with natural stuff. Flowers, mushrooms or tall grass. Then throw a diamond in (with the "Q" key, by default) and stand back!

    It should look a little like this:



    Videos:

    Loooks has a great video showing some scenes from the mod here. Very tranquil.

    Direwolf20's wonderful mod spotlight video should whet your appetite for some exploration:

    The Yogscast explores the Twilight Forest, Part 1:

    Yogscast Part 2:

    Yogscast Part 3:
    Lots more videos in this spoiler tag here! Some installation guides and some more mod showcases.
    Paulsoaresjr takes on the Twilight Forest in his Man vs. Minecraft series. Episode 1 below, but check out the whole series.

    Loooks has a great video spotlighting some of the new features here. Very tranquil.

    Minecraftmoe shows you some views of the Twilight Forest with some epic music.
    GameChap and Bertie are always entertaining. Here is their video showcasing the latest version:


    Installation guide by SCMowns:

    RoosterInASuit does a nice install guide/spotlight:

    Runemaster96 does a very nice job with a mod showcase here:

    Piedudeaus's Mod Spotlight:

    GeraldoCockerhan fights the naga and wins!

    Elliothawk has an in-depth exploration video:

    MinecraftScorpion does a Mod Showcase:

    Spelunkstar has a two-part video:


    Older (but still good) Videos
    Etalyx's Mod Spotlight:







    Mod Pack Policy:
    Please note that I don't usually have the time to respond to mod pack requests (or private messages in general).

    You have permission to include the Twilight Forest mod in any mod pack, as long as the following conditions are met:
    1. Provide a link to this forum post
    2. Properly credit the author, Benimatic
    3. You cannot make any money off of the mod pack
    4. Remove the mod from your pack if I specifically request it
    Texture Packs:
    The Twilight Forest is fully supported in the Zekocraft texture pack. I love it!

    Also there's the strange and wonderful Ruinex texture pack has textures for this mod.

    Please let me know about other texture packs.

    Banner:
    KensuleNL made a great banner for your signature:

    <a href="http://www.minecraftforum.net/topic/561673-100the-twilight-forest-v15"><img src='http://i.imgur.com/sEFug.png' /></a>
    [represent]

    Posted in: Minecraft Mods
  • View SoBiohazardous's Profile

    69

    May 5, 2013
    SoBiohazardous posted a message on [1.7.2]SoBiohazardous's Forge Keybinding Tutorial
    Hello all,
    So I know these tutorials are a bit poop at the moment. However, I am trying to getting around to update them a bit, make them more clear. Just give me some, I have been super busy lately. I'll update them when I can.

    Today we're going to learn how to make a custom key bind that shows up in the options menu, which you can change in the options menu, and use for any boolean in your code.

    *Note that these are currently for 1.6.4. If you would like to have this for 1.7.2, scroll down, some of the old concepts can be used with the 1.7.2 update tutorial, if you do it right.

    Normal Keybind:

    Lets start in our main mod file.

    In our @Init method, we declare our button like so:
    KeyBinding[] key = {new KeyBinding("Name of Button", Keyboard.KEY_G)};
         boolean[] repeat = {false};
         KeyBindingRegistry.registerKeyBinding(new TutorialKeyBind(key, repeat));


    Note that the parameters can be changed to your liking.

    Now we are going to create our TutorialKeyBind class. Its set up like a ticking class:
    package package.name
    import java.util.EnumSet;
    import java.util.Iterator;
    import net.minecraft.client.settings.KeyBinding;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.EnumSkyBlock;
    import net.minecraft.world.World;
    import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
    import cpw.mods.fml.common.TickType;
    class TutorialKeyBind extends KeyHandler
    {
         private EnumSet tickTypes = EnumSet.of(TickType.CLIENT);
    
         public TutorialKeyBind(KeyBinding[] keyBindings, boolean[] repeatings)
         {
             super(keyBindings, repeatings);
         }
         @Override
         public String getLabel()
         {
             return "TutorialKey";
         }
         @Override
         public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat)
         {
             //what to do when key is pressed/down
         }
         @Override
         public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd)
         {
             //What to do when key is released/up
         }
         @Override
         public EnumSet<TickType> ticks()
         {
             return tickTypes;
         }
    }


    And that's all! Simply change the comments for what you want your keybind to toggle. Sometimes, I'll create a boolean elsewhere, such as an item class, and call check for it in my tick class.


    Applying to gui's

    Ok, so i'm assuming you have a working gui, and you want a block/item to open it. You also need a working keybind (look above)

    Head over to your keybind class and declare a variable:
    public static boolean keyPressed = false;


    Now add this to your keyDown method:
    keyPressed = true;


    and then this to your keyUp method:
    keyPressed = false;


    This is simple logic to check if your key is pressed or not. Now, simply check in your classes for it.

    Applying to Items:
    Add this to your item class:
    public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
    {
    EntityPlayer player = (EntityPlayer)par3Entity;
    
    if(KeyBindSE.keyPressed)
    {
    // code for opening gui.
    //if your not sure, use player.openGui(MAINMODCLASS.instance, YOURGUIID, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
    }

    Applying to Block:
    Add this method in block class:
    public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
    if(keyPressed)
    {
    //Gui opening code
    }
    }

    Simply add your gui opening code in the if statement.

    If your having trouble opening gui's, consult the gui tutorials all over the web.

    Doing various things to player when key is pressed (basically just getting EntityPlayer object)

    First, make a working keybind like the one used in the GUI tutorial.

    Then, your going to need a PlayerTickHandler class:
    package monkeys.bananas;
    import java.util.EnumSet;
    import sobiohazardous.crazyfoods.TutorialKeyBind;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.world.World;
    import cpw.mods.fml.common.ITickHandler;
    import cpw.mods.fml.common.TickType;
    public class PlayerTickHandler implements ITickHandler
    {
    private final EnumSet<TickType> ticksToGet;
    
    /*
         * This Tick Handler will fire for whatever TickType's you construct and register it with.
         */
    public PlayerTickHandler(EnumSet<TickType> ticksToGet)
    {
         this.ticksToGet = ticksToGet;
    }
    /*
         * I suggest putting all your tick Logic in EITHER of these, but staying in one
         */
    @Override
    public void tickStart(EnumSet<TickType> type, Object... tickData)
    {
         playerTick((EntityPlayer)tickData[0]);
    }
    @Override
    public void tickEnd(EnumSet<TickType> type, Object... tickData)
    {
    }
    @Override
    public EnumSet<TickType> ticks()
    {
         return ticksToGet;
    }
    @Override
    public String getLabel()
    {
         return "TutorialPlayerTick";
    }
    
    public static void playerTick(EntityPlayer player)
    {
         if(TutorialKeyBind.keyPressed)
         {
    //Code for when the key is pressed. Notice how you have the player parameter
         }
    }
    }


    Don't forget to register it like so in your @Init method:
    TickRegistry.registerTickHandler(new PlayerTickHandler(EnumSet.of(TickType.PLAYER)), Side.SERVER);


    And there you go! Notice the comment in the PlayerTickHandler class, that is how you have access to the player object.

    Making it so the key must be "tapped" and not just held down (Thanks to Thobro)

    Basically, this is for something like switching modes of an item, ect.
    Please read the previous sections, as some of the code is missing in this section.

    First, you need to modify your keyDown(*) and keyUp(*) method so it looks similar to this in your keybind class:
    public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat)
                     {
                     keyHasBeenPressed = true;
                     }
                     @Override
                     public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd)
                     {
                     if (keyHasBeenPressed) {
                     keyHasBeenPressed = false;
                     keyPressed = true; }


    Now from previous sections of this tutorial, you can call
    if (KeyBind.keyPressed) {
    KeyBind.keyPressed = false;
    //Insert other code
    }

    Now the code should only happen once when the key is pressed and held down.
    If you're getting any problems, view the other sections. This correlates heavily with the above sections.


    Updating to 1.7.2

    So forge has changed a lot in 1.7.2, if you hadn't noticed, so they have completely removed the keybinding class, it just uses key handler now.

    Make a new class, I called mine KeyHandlerTutorial.
    public class KeyHandlerTutorial // note that before we extended KeyHandler, but that class no longer exists
    {
    /** Key index for easy handling */
    public static final int CUSTOM_INV = 0;
    /** Key descriptions; use a language file to localize the description later */
    private static final String[] desc = {"key.tut_inventory.desc"};
    /** Default key values */
    private static final int[] keyValues = {Keyboard.KEY_P};
    private final KeyBinding[] keys;
    public KeyHandler() {
    keys = new KeyBinding[desc.length];
    for (int i = 0; i < desc.length; ++i) {
    keys[i] = new KeyBinding(desc[i], keyValues[i], "key.tutorial.category");
    ClientRegistry.registerKeyBinding(keys[i]);
    }
    }
    /**
    * KeyInputEvent is in the FML package, so we must register to the FML event bus
    */
    @SubscribeEvent
    public void onKeyInput(KeyInputEvent event) {
    // FMLClientHandler.instance().getClient().inGameHasFocus
    if (!FMLClientHandler.instance().isGUIOpen(GuiChat.class)) {
    if (keys[CUSTOM_INV].isPressed()) {
    TutorialMain.packetPipeline.sendToServer(new OpenGuiPacket(TutorialMain.GUI_CUSTOM_INV));
    }
    }
    }
    }

    The comments along the way should help you figure it out.
    Be sure to register the class as an event!
    FMLCommonHandler.instance().bus().register(new KeyHandlerTutorial())

    Carry over and then delete your old keybinding code. You should be good to go.

    Special thanks to coolAlias

    Tips

    Need the world object?
    World world = Minecraft.getMinecraft().theWorld;


    That is a variable of the type World that should help you if you are in a pinch.

    Also, here is some examples of various keybind things by coolAlias.

    Leave reply's if help is needed.

    Leave a If this helped you!
    Posted in: Mapping and Modding Tutorials
  • View Thaumatarge's Profile

    3

    Jun 2, 2013
    Thaumatarge posted a message on Random Things
    This isnt half bad for your first mod! Exept that i dont know at all how to use the player interface... i like the item collector... its a nice addition :3 ...
    Posted in: Minecraft Mods
  • View KaboPC's Profile

    2

    Apr 4, 2013
    KaboPC posted a message on Village Marker Mod
    Quote from monkeybeeee1

    will the lines move as the village grows ? trying to get the island booming with npc life to give it a medevil kingdom feel and for lots of trades XD so gonna see how big a village me can fit on the island know there will be like 5 extra villages but thats nothing to wory a bout as long as it dont cobind with the iron farm villages


    Yes, the number of lines is equal to the number of doors attached to the village and they all connect to the center. So, as more doors are added more the data will change and the lines will change.

    Quote from jddevos

    so...which version is the forge version? When i install the singleplayer version, then minecraft wont start. Thanks for the help!


    There is currently no Forge version for this mod. I might consider making a Forge version in the future, though.
    Posted in: Minecraft Mods
  • View DigitalLunacy's Profile

    1

    Feb 5, 2013
    DigitalLunacy posted a message on [1.5.x / 1.6.x] Applied Energistics [ rv 13 c ] - Exploiting Quantum Mechanics
    Dude again!! every update this gets better... very very excited for more from this mod!
    Posted in: Minecraft Mods
  • View KyWest's Profile

    11

    Feb 2, 2013
    KyWest posted a message on [1.4.7][Forge] Start Modding Minecraft
    This tutorial is made with the intention of guiding beginners!
    Pictures are included!!

    If you got the time or if you are having difficulty understanding parts of the tutorial, I strongly suggest reading all of it.
    This tutorial is targeted at Windows PC users.

    What is covered in this tutorial?
    Tip: Use Ctr+F to skip to different sections.

    A1) Required Programs - Things you will need.
    A2) Workspace Setup - How to install the things you will need.

    B1) Your First Mod
    B2) Your First Item
    B3*) Crafting and Smelting Recipes
    B4*) Custom Textures and Icons

    C*) Packaging and Publishing Your Mod

    D1*) Your First Mob
    D2*) undecided (equipping mob with weapons?)

    * In Progress
    * Planned, but not added... yet.

    * Comment with suggestions and opinions.


    A1 - Required Programs

    So here you are, starting off with a strong sense of self motivation and at the least a basic knowledge of how the Java programming language works. These programs aren't all required in the sense that you won't be able to mod without them, but they are strongly recommended, especially for self motivated entrepreneurs like yourself!

    JDK 7 - Java Development Kit
    Think of this as a box that contains many tools used by programs to help you write, compile, edit, and publish your Java code. These tools will be used by an IDE, or Integrated Development Environment, such as Eclipse.
    Tip: Install the 32-bit version of JDK as the 64-bit version may be somewhat problematic.

    7-Zip [32-bit] [64-bit]
    This is pretty much the same thing as WinZip, only better! You don't really need this, but it helps alot, not just with Minecraft mods, but tons of other things too! It allows you to compress and decompress files quickly and efficiently by right clicking .zip or .7z files.

    Minecraft Forge Source
    This is a compressed file containing the backbone of your future Minecraft modding career. It includes MCP (Minecraft Coder's Pack), a powerful set of scripts that allow you to deobfuscate(clean up) and decompile Minecraft's core files into human readable Java code! Once the code has been edited, there are scripts included that will recompile and reobfuscate your code into .class files ready to be packaged into a mod. Download, but do not install this until you have set up your PATH variable. (PATH variable setup guide) Instructions on how to do this are provided in the next section.
    Tip: You can use 7-Zip to convert a compressed file into a folder, as seen in the picture below.

    Eclipse IDE [32-bit] [64-bit]
    Eclipse is where you will be spending most of your time. Using an IDE makes working on projects dramatically easier, and with Minecraft Forge Source, you can even use Eclipse to test run your new mods before you publish them. Instructions on how to set up a workspace in Eclipse are included in the next section.

    A2 - Workspace Setup

    By now you should have everything you need to get started. You have installed Java SDK and downloaded Minecraft Forge Source. You have also aquired an IDE (Eclipse).

    1. Setting the PATH variable.
    http://www.java.com/...d/help/path.xml

    2. Installing Minecraft Forge Source
    Now that you have set up your path variable, you can install Forge Src. Once you have unpackaged the .zip file, you will have a forge folder that contains a file named install.cmd. Run this file and it will automatically install Minecraft Coder's Pack scripts, download needed files, and decompile Minecraft.jar files, preparing them to be modified.

    3. Setting up Eclipse
    When Forge has finished installing and you have launched Eclipse, Eclipse will present you with a dialog named Workspace Launcher. Click the Browse... button and navigate to the \mcp\eclipse folder located in the forge folder and click Ok. Eclipse should now open and display a tab named Project Explorer on the left side. The Project Explorer should have a folder named Minecraft, wherein Minecraft's decompiled source code is displayed. Forge Mod Loader has been integrated into this source.


    B1 - Your First Mod

    By now you should have the required programs downloaded and installed. You should also have finished setting up your workspace. Looks like your ready to begin modding!

    First off, you will want to familiarize yourself with Eclipse's project explorer on the left hand side. This panel can be used to navigate through Minecraft's source code packages as well as packages you have added or modified. It is a very good idea to view the Forge Mod Loader source as many useful methods and classes are provided to make modding Minecraft much easier.

    Organization is very important when programming. It is much easier to find bugs when your code is clean and tidy. When you are naming variables, classes, etc. you should pick a name that respects the function of what you are naming. For example, if you were creating a class for a new type of weapon, a sword, it would be wiser to name it something like ItemWeaponSword.java instead of class1.java or MyWeapon.java.

    Lets begin.
    In this section we create a package for our mod and create a basic skeleton.

    Create a new package by pressing Ctr+N and selecting Package in the Java folder.

    For the purpose of this tutorial, lets set the name of this package to mod.tutorial.

    Your new package should now be visible in the Project Explorer on the left hand side.
    Right click mod.tutorial and select New > Class.

    This will open a window containing lots of options, many of which you don't need to worry about right now.
    Make sure the package field is set to mod.tutorial.
    We can set the name to TutorialMain.

    By now you should have a new class named TutorialMain inside your mod.tutorial package. If you have followed the steps correctly, the TutorialMain class will have this piece of code already written for you:
    package mod.tutorial;
    
    public class TutorialMain {
    
    }


    Now you will want to add a line to your code that will allow Forge Mod Loader to identify your mod. Your code should now look like this:
    package mod.tutorial;
    
    @Mod(modid="TutorialMain", name="Tutorial Mod", version="1.0")
    public class TutorialMain {
    
    }

    These parameters (modid, name and version) are quite self explanatory. Your mod's ID should be unique to your mod in order to avoid possible conflicts with other mods. It is generally a good idea to use the name of your main class as your mod's ID. The name is what will be shown to users when they see your mod in the mods list. The version will also be shown in this list and you may use any format you wish.

    Eclipse will show you a few errors on this new line. These can easily be fixed by importing the correct class. In most cases, Eclipse will automatically detect which class you want to reference and will provide it in the quick fixes list. Hover your mouse over @Mod and click Import 'Mod' to fix the errors.

    Now your code should look like this:
    package mod.tutorial;
    
    import cpw.mods.fml.common.Mod;
    
    @Mod(modid="TutorialMain", name="Tutorial Mod", version="1.0")
    public class TutorialMain {
    
    }


    Now we must add two lines that tell FML to instance your mod object in Minecraft. These lines must be added inside your TutorialMain class and you must import the referenced fml class.
    @Instance("TutorialMain")
    public static TutorialMain instance;


    Now you have completed creating the basic skeleton of your mod. Your full code should now look like this:
    package mod.tutorial;
    
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Instance;
    
    @Mod(modid="TutorialMain", name="Tutorial Mod", version="1.0")
    public class TutorialMain {
    @Instance("TutorialMain")
    public static TutorialMain instance;
    
    }


    You can test your mod by clicking the Run Client button on the toolbar at the top.

    Your new mod, that currently does absolutely nothing, will appear in the mods list.

    In the next section, we will add a new item to our mod.


    B2 - Your First Item

    By now you have created a basic skeleton for your first mod, which still does not do anything more than look nice in the mods list.

    New items are one of the most basic types of content you can add, although they have the potential to be quite complex as well. All items and blocks have a unique ID. Trying to give a new item an ID that is already taken will cause errors when trying to run your mod. Here is a reference list of all blocks and items in Minecraft, along with their respective IDs.

    Lets begin.
    In this section we create a new item and add it to the creative menu.

    Create a new class by right clicking your mod.tutorial package and clicking New > Class.

    This will open a window with a few options. The ones we are worried about are name and superclass. For our example, we will set the name to ItemSandwich. We can add net.minecraft.item.Item as our superclass. Make sure you also check the Constructors from superclass box.

    If you have filled the options correctly, you should end up with this code in your new ItemSandwich class:
    package mod.tutorial;
    
    import net.minecraft.item.Item;
    
    public class ItemSandwich extends Item {
    public ItemSandwich(int par1) {
    super(par1);
    // TODO Auto-generated constructor stub
    }
    }


    This will serve as a skeleton for our new item. Now lets go back to our TutorialMain class. FML has a convenient method which allows you to register your new item into Minecraft. Tasks such as registering items and blocks may be done when your mod is loading. Luckily, FML also has built in event 'hooks' that are called when a particular event occurs in Minecraft, such as your mod being loaded.

    Add these lines to your TutorialMain class and import the required classes:
    @Init
    public void load(FMLInitializationEvent event) {
    
    }


    Any code inside the load method will be executed when your mod is being loaded.

    Your full TutorialMain code should now look like this:
    package mod.tutorial;
    
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.Mod.Instance;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    
    @Mod(modid="TutorialMain", name="Tutorial Mod", version="1.0")
    public class TutorialMain {
    @Instance("TutorialMain")
    public static TutorialMain instance;
    
    @Init
    public void load(FMLInitializationEvent event) {
    
    }
    }


    Now that we have a place to register our item, we can write the code to do it. Add this line inside your load method:
    Item itemSandwich = new ItemSandwich(500).setItemName("itemSandwich");


    When you right click Item to import the required class, make sure you select net.minecraft.item.Item.
    The above line of code simply creates a new Item named itemSandwich, which uses the ItemSandwich() class (the one we just made) and gives it the unique ID of 500.

    Note: Capitalization is very important when programming. As seen above, itemSandwich is not the same as ItemSandwich().

    We still need to give our item a name to show when you hover your mouse over it in Minecraft! This must be done through the Language Registry and can be accomplished by adding this line to your load method:
    LanguageRegistry.addName(itemSandwich, "Sandwich");

    This simply adds the name "Sandwich" to the object itemSandwich.

    Your full TutorialMain code should now look like this:
    package mod.tutorial;
    
    import net.minecraft.item.Item;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.Mod.Instance;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    
    @Mod(modid="TutorialMain", name="Tutorial Mod", version="1.0")
    public class TutorialMain {
    @Instance("TutorialMain")
    public static TutorialMain instance;
    
    @Init
    public void load(FMLInitializationEvent event) {
    Item itemSandwich = new ItemSandwich(500).setItemName("itemSandwich");
    LanguageRegistry.addName(itemSandwich, "Sandwich");
    }
    }


    It looks like we're done!
    Oops! Hold on a minute! We don't have a way to actually get this item yet. Lets add it to the creative menu for now. Crafting and smelting recipes are covered in the next section!

    Go back to your ItemSandwich class.


    Replace the // TODO comment with this line of code:
    this.setCreativeTab(CreativeTabs.tabFood);


    Obviously, this will add your new Sandwich item to the Food tab in the creative menu. There are many tabs to choose from, and it is really up to you which tab you want to put your new items in. Just because we named it Sandwich doesn't mean it must be put into the Food tab.

    Eclipse will often show you a list of possibilities that you can choose from when they are available, as seen in the picture below, given that you have imported the correct classes (in our case: net.minecraft.creativetab.CreativeTabs)

    Now that we have created our item, named our item, and added a way for us to get our item, we can test it out by clicking the Run Client button in the toolbar at the top.

    In the next section, we will add new crafting and smelting recipes to our mod.
    Custom textures and icons are covered later in the tutorial.


    B3 - Crafting and Smelting Recipes

    By now you have created an item for your mod, but currently the only way to get your item is through the creative menu.

    There are three main types of 'recipes' that we will discuss; smelting, shaped crafting, and shapeless crafting.
    The first is the simplest; 'smelting' recipes or furnace recipes. Implementing these allows you to put your item into a furnace to create another item OR to use another item in a furnace to create your item.
    Another type of recipe is shaped crafting, or crafting on a table using a pattern.
    Shapeless crafting is like shaped crafting, but it does not require items to be in a pattern.

    Lets begin.
    In this section we add a shapeless crafting recipe and smelting (furnace) recipe to our new item.

    Navigate to your TutorialMain.java class.

    New recipes must be registered using the GameRegistry, similar to how an item's visible name is registered using the LanguageRegistry. We can register a shapeless recipe by adding the following line in our load method:
    GameRegistry.addShapelessRecipe(new ItemStack(itemSandwich,1), new ItemStack(Item.bread));

    This line registers a recipe that will let you craft 1 Sandwich out of 1 Bread.

    Any item that is in a container (such as your inventory or a furnace) is referred to as a stack. Note that even if you only have one of that item in your inventory, it will still be called a stack.
    You can add more ingredients to the recipe as well. The first ItemStack you refer to in addShapelessRecipe() is the output and the ItemStacks after the output are the inputs.

    Lets add a cooked steak to this recipe. Change the line of code to look like this:
    GameRegistry.addShapelessRecipe(new ItemStack(itemSandwich,1), new ItemStack(Item.bread), new ItemStack(Item.beefCooked));


    Furnace recipes work in the same way, except that you may only have one input. Note that in furnace recipes, the input comes first and the output comes second. There is also a floating point number at the end that defines how much experience the player will get for each item smelted.

    Add this line to add a smelting recipe:
    GameRegistry.addSmelting(itemSandwich.itemID, new ItemStack(Block.dirt), 0.0F);

    This will allow you to put your Sandwich into a furnace and get 1 Dirt in return, and will not give you any experience. Note how the input is not an ItemStack in a furnace recipe, but instead an item's ID. If you wanted, you could put an integer instead of itemSandwich.itemID to achieve the same thing. The following line of code is the same as the above code:
    GameRegistry.addSmelting(726, new ItemStack(Block.dirt), 0.0F);


    Note: Registering item and block ID's using Forge will shift the defined ID by 256. Our Sandwich item's effective ID thus becomes 726 instead of what we defined; 500.

    Getting dirt after burning a sandwich hardly seems realistic, but it is done here to show how blocks are referred to as ItemStacks in a container as well.

    Your complete TutorialMain.java script should now look like this:

    package mod.tutorial;
    
    import net.minecraft.block.Block;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.Mod.Instance;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    
    @Mod(modid="TutorialMain", name="Tutorial Mod", version="1.0")
    public class TutorialMain {
    @Instance("TutorialMain")
    public static TutorialMain instance;
    
    @Init
    public void load(FMLInitializationEvent event) {
    Item itemSandwich = new ItemSandwich(500).setItemName("itemSandwich");
    LanguageRegistry.addName(itemSandwich, "Sandwich");
    
    GameRegistry.addShapelessRecipe(new ItemStack(itemSandwich,1), new ItemStack(Item.bread), new ItemStack(Item.beefCooked));
    GameRegistry.addSmelting(itemSandwich.itemID, new ItemStack(Block.dirt), 0.0F);
    }
    }


    Shaped crafting can be a bit confusing.

    You can use shaped crafting recipes in a 1 by 1 format, 2 by 2, or 3 by 3 format. Consider the following examples:
    GameRegistry.addRecipe(new ItemStack(itemSandwich,1), "BBB","MMM","BBB", 'B' new ItemStack(Item.bread), 'M', new ItemStack(Item.beefCooked));

    This line will add a 3x3 recipe, allowing you to get a Sandwich by placing 3 Bread at the top, 3 Steak in the middle, and 3 Bread at the bottom.


    GameRegistry.addRecipe(new ItemStack(itemSandwich,3), "BMB","BMB","BMB", 'B', new ItemStack(Item.bread), 'M', new ItemStack(Item.beefCooked));

    This is an example of another 3x3 recipe that gives you 3 Sandwiches instead of 1.


    Our final example uses spaces to show empty crafting table slots, and also adds a 3rd ItemStack to be used.
    GameRegistry.addRecipe(new ItemStack(itemSandwich,1), " b ","mpm"," b ", 'b', new ItemStack(Item.bread), 'm', new ItemStack(Item.beefCooked), 'p', new ItemStack(Item.potato));

    This line of code adds a recipe where you must put bread in the middle on the top row. In the middle row, you put meat, potato, meat. In the bottom row, you put bread in the middle. This will give you one Sandwich.


    Shaped crafting recipes are added using GameRegistry.addRecipe() and can be broken down into 3 main sections. The first section is the output. The second section are letters that represent ItemStacks arranged into rows. The third section are pairings that show which Items the letters in the second section represent.

    I will not be adding a shaped crafting recipe to this tutorial for now.

    In the next section, we will create and add a custom texture/icon for our new item.


    B4 - Custom Textures and Icons



    ...

    Trouble understanding parts of the tutorial? Post your concerns and help make this tutorial more user-friendly!

    Still working on this tutorial. Constructive feedback and comments are appreciated.
    If this tutorial helped you, be sure to +1 this post. :)
    Posted in: Tutorials
  • To post a comment, please login.
  • 1
  • 2
  • Next

Social Media

Services

Sign In

Help

Advertise

Resources

Terms of Service

Privacy Policy

Our Communities

  • MMO-Champion
  • HearthPwn
  • Minecraft Forum
  • Overframe
  • MTG Salvation
  • DiabloFans

MOBAFire Network

  • MOBAFire.com
  • Leaguespy.gg
  • CounterStats.net
  • Teamfight Tactics
  • WildRiftFire.com
  • RuneterraFire.com
  • SMITEFire.com
  • DOTAFire.com
  • ArtifactFire.com
  • HeroesFire.com
  • VaingloryFire.com
  • MMORPG.com

© 2023 Magic Find, Inc. All rights reserved.

Mobile View

NOT AN OFFICIAL MINECRAFT WEBSITE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT