Modding

## Using Mods

To start using mods:

1. Download the 5.4.22.0 x64 version of BepInEx mod loader from GitHub. Direct Link: https://github.com/BepInEx/BepInEx/releases/download/v5.4.22/BepInEx\_x64\_5.4.22.0.zip (Or Release Page for all Releases: https://github.com/BepInEx/BepInEx/releases)
	1. Note for older BepInEx Versions: It is **not recommended** to use older versions, as they may crash the game.
	2. Note for newer BepInEx Version: General you can also use newer Versions. In the very most cases this will work but is simply not final reviewed to be working for this Wiki. **WARNING**: Do not use BepInEx **6**.x. This major version is currently fully incompatible with **5**.x mods from this Wiki!
2. Copy the .zip file into the Planet Crafter install folder (for example C:\Program Files (x86)\Steam\steamapps\common\The Planet Crafter)
3. Extract the .zip file. It should create a folder called 'BepInEx' and add some files to the folder highlighted in yellow. (Note: folder name no longer includes 'Prologue')
4. Start Planet Crafter and when it's done loading exit it again.
5. Inside the previously created 'BepInEx' folder should now be a 'plugins' folder. Place the .DLL and any other files required by the mod in that folder. For example, the AddCraftableObjects and AdvancedOreExtractor plugins would add these files.
6. After adding any mods you want, start Planet Crafter again and BepInEx will add any configuration files to the BepInEx/config folder. These need to be edited with a text editor like Notepad to change any settings you want to for the mod.
7. If mods don't work for you, find the **BepInEx\config\BepInEx.cfg** file, and in it, set **HideManagerGameObject = true** .

You can alternatively use BepInEx Unity Installer from Nexus Mods to install BepInEx for you.

### Current Mods

**Please note that game updates may break mods, and the links below may be outdated. Remember to back up your save before experimenting.**

#### Plugins by skrwoor

* Advanced Mode - Enables flying, changing rate of food/water/oxygen usage, unlocking all items, no resources to build, etc.
* Creative Mode - Adds creative mode to the game
* Adds A Tree - Adds a palm tree that produces oxygen and creates edible coconuts with the associated asset bundle.
* Mobile Crafter - Adds a chip that allows you to craft stuff with a press of a button you can change the key to use in config file
	+ **Warning: version 0.0.0.1 is not compatible with with the latest game version (0.6.008) and causes load-in crashes.**

#### Plugins by aedenthorn

* Auto Mine - Automatically mines nearby nodes on an interval or when pressing a hotkey.
* Better Jetpack - Removes the sharp drop when jetpacking off a cliff, and adds a custom speed multiplier to the jetpack.
* Better Meteorites - Lets you increase the resource drops from meteorites, and add iridium and uranium to ordinary meteorites and as separate random meteorite events.
* Craft From Containers - Pulls items from nearby containers for construction purposes.
* Custom Audio - Lets you change audio clips used in game non-destructively.
* Custom Flashlight - Provides comprehensive light customization of the multitool flashlight.
* Drill Sound - Lets you adjust the volume and pitch of the multitool drill sound.
* Quick Rotate - Lets you quickly rotate objects to be built by a custom rotation (default 45, 90, 180) using customizable modifier keys.
* Quick Store - Lets you quickly store items in nearby containers that contain at least one of the same item.
* Remote Storage Access - Lets you access storage remotely and switch between storage containers using hotkeys.
* Show Next Unlockables - Shows the next unlockable goal for each unit type on the progress display monitor.
	+ **Warning!** Version 0.1.0 of this mod doesn't work with the *Insects & Waterfalls* (0.5.005+) update and may prevent you from starting a new or loading an existing save.
* Spawn Objects - Lets you spawn any amount of any object in the database to the world or your backpack using a GUI with auto-suggest.
* Storage Customization - Lets you set custom storage sizes for in-game containers and backpacks.

#### Plugins by akarnokd

* see the latest releases for the plugin files.
* Features
	+ **(Feat) Command Console** - Press ENTER and type in commands to spawn items, teleport around or discover information about game data.
	+ **(Feat) Multiplayer** - Play a world co-op fashion, two or more players at once. LAN/Internet based P2P networking. VPN recommended.
	+ **(Feat) Space Cows** - Place a Grass Spreader *(2 Water, 1 Magnesium, 1 Aluminium, 1 Lirma Seed)* and a Space Cow will appear.
	+ **(Feat) Technician's Exile** - After reaching 1.1 MTi, soon you'll get some company. Follow the in-game clues in this light expansion of the game's world.
* Cheats
	+ **(Cheat) Asteroid Landing Position Override** - asteroids land near the player, not all over the place.
	+ **(Cheat) Auto Consume Oxygen-Water-Food** - no need to manually eat, drink or refill the O2 tank.
	+ **(Cheat) Auto Harvest** - automatically harvest Algae and Food, then place them into named containers such as *\*Vegetable0Growable* and *\*Algae1Seed*. The star (\*) is mandatory.
	+ **(Cheat) Auto Launch Rocket** - when you crafted a rocket, it will launch automatically; no need to press the launch button.
	+ **(Cheat) Auto Sequence DNA** - Automatically grabs ingredients and sequences Tree Seeds, Butterfly Larvae, Bee Larvae and Silk Worms. Uses named containers.
	+ **(Cheat) Birthday** - Re-enables the Birthday bunker and the oven.
	+ **(Cheat) Highlight Nearby Resources** - Press CTRL+F to show nearby resources with via banners.
	+ **(Cheat) Inventory Stacking** - Show items stacked together in your and other inventories, backpack size indicates how many stacks of items you can carry.
	+ **(Cheat) Machines Deposit Into Remote Containers** - Rename containers to *\*Osmium* etc. and no need to run to the machine. The star (\*) is mandatory.
	+ **(Cheat) Minimap** - Shows a static minimap centered around the player which includes some points of interest.
	+ **(Cheat) More Trade** - Add or modify trade items & their trade values via config.
	+ **(Cheat) Photomode Hide Water** - workaround when items are not fully submerged and can't be picked up.
	+ **(Cheat) Recyclers Deposit Into Remote Containers** - Recyclers deposit the decomposed ingredients into named containers. Supports automatic periodic recycling.
	+ **(Cheat) Teleport to Nearest Minable** - Teleport to the nearest minable resource (F8). Hold Shift to also mine it. CTRL+F8 mine without moving.
* User Interface
	+ **(UI) Beacon Text** - Customize beacons by showing a custom title and the distance from the player.
	+ **(UI) Continue** - Adds a Continue button that let's one load the latest save. Save info is displayed next to it.
	+ **(UI) Craft Equipment Inplace** - No need to unequip equipment to craft an upgrade, this mod will craft and replace equipment inplace.
	+ **(UI) Customize Inventory Sort Order** - Sort certain items before other items, such as O2, Water, Food, etc. The rest is alphabetical.
	+ **(UI) Don't Close Craft Window** - Right click when crafting and the craft window won't close.
	+ **(UI) Hotbar** - 9 slot bar to pin constructable items from the construction screen. Hold 1..9 while left clicking on an item to pin/unpin it. Press 1..9 on the main screen to build if possible. (Docs)
	+ **(UI) Inventory Move Multiple Items** - Middle click to move all items of the same type (back and forth), Shift+Middle click to move 5, Ctrl+Middle click to move 50.
	+ **(UI) Menu Shortcut Keys** - add shortcut keys to certain menus (backpack, containers, construction, machines). Available keys listed at the bottom of the screen.
	+ **(UI) Overview Panel** - Pressing the F1 (configurable) shows an overview panel with the current status of the world, statistics and next unlocks.
	+ **(UI) Prevent Accidental Deconstruct** - Hold the accessibility key (CTRL) while deconstructing to prevent unwanted deconstruct by a simple left click.
	+ **(UI) Save When Quitting** - Automatically save when clicking on the "Exit to main menu" button in the pause screen.
	+ **(UI) Show Consumable Counts** - next to the gauges on the bottom right, show how much food items, how many oxygen capsules and water bottles you have.
	+ **(UI) Show Container Content Info** - Container tooltip shows how full the container is and what's in it.
	+ **(UI) Show ETA** - Show the time unit the next terraformation stage given the current speed of terraformation.
	+ **(UI) Show Grab N Mine Counts** - When grabbing items or mining resources, a small information text will pop up on the left side of the screen showing how many of the items you already have now in your inventory.
	+ **(UI) Show MultiTool Mode** - on certain screen sizes, the 3D multitool is cut off. This mod adds a 2D text and image to the bottom right to show the current mode.
	+ **(UI) Show Player Inventory Counts** - Show how many items the player carries on the bottom left next to the player coordinates.
	+ **(UI) Show Player Tooltip Item Count** - In inventories, show how many items of the same kind are in the player's inventory.
	+ **(UI) Show Rocket Counts** - On the Terraform screen, show how many boosting rockets have been launched for each category.
	+ **(UI) Stack In-Range Items** - Stack the in-range object list of the Auto-Crafter.
	+ **(UI) Pin Recipe To Screen** - On a crafting screen, press the Middle mouse button to pin/unpin a recipe.
* Translations
	+ **(UI) Hungarian Translation** - Magyar fordítás.
	+ **(UI) Italian Translation** - Italiano-traduzioni.
	+ **(UI) Polish Translation** - Polish Translation (replaces the official translation).
	+ **(UI) Romanian Translation** - Traducere in romana.
	+ **(UI) Czech Translation** - Překlad do češtiny.
	+ **(UI) Estonian Translation** - Estonian Translation.
	+ **(UI) Korean Translation** - Korean Translation (replaces the official translation).
* Other
	+ **(Fix) International Loading** - Allows opening saves made on a different Windows locale than the current one.
	+ **(Fix) Unbrick save** - Fixes loading crashes due to save corruptions, such as unplaceable objects.
	+ **(Fix) Unofficial Patches** - Set of patches that fix game/UI bugs and shortcomings. See its documentation what's being fixed at any given time
	+ **(Misc) Mod Enabler** - Sets the HideManagerGameObject = true in the BepInEx.cfg if necessary, allowing proper mod operations.
	+ **(Misc) Plugin Update Checker** - Checks if newer versions of the installed plugins are available on the internet.
	+ **(Perf) Reduce Save Size** - Removes unnecessary attributes when saving the world, saving disk space and Steam Cloud space.
	+ **(Save) Auto Backup** - When saving the game, this mod will automatically make a backup copy (optionally compressed) in a specified directory. You can also control how many and how old backup saves to keep in this directory per world.
	+ **(Save) Automatic Save** - This mod triggers a save automatically with a configurable period.
	+ **(Save) Quick Save** - Press F5 (configurable) to quick save. Compatible with multiplayer.
	+ **(Lathrey) Disable Build Constraints** - Disable collision constraints so you can build everywhere (rocks, other buildings, etc.). Toggle mode with Ctrl+G. *(Remade with permission)*
	+ **(Lathrey) Auto Move** - The player character keeps moving without holding down the forward button. Toggle with CapsLock. *(Remade with permission)*
	+ **(Lathrey) Improve Performance** - Disable lights and particle effects on select buildings to improve rendering performance. *(Remade with permission)*

#### Plugins by Zinal

* Modding API - An attempt to unify common modding functionality. Required by all mods made by Zinal.
	+ **Warning!** This mod was not updated for some time now and breaks Ore Extractors, possibly more.
* MultiBuild - Build multiple objects in a row by holding down the shift-key while building.

#### Plugins by CarlKenner

* Fix Shallow Water - Fixes the shallow water bug so you can pick up/mine things under shallow water.
* Fix Units - Changes kW/h and kW/s (which are wrong) to kW, shows Oxygen as a % after ppm, and adds commas to numbers.
	+ **Warning**: version *0.0.1* of the mod breaks the Screen - Energy Levels visually.

#### Plugins by Ludeo

* Discord Presence - Adds a presence to your discord profile with informations about your current save and where you are (Main Menu, Options, In Game)
* Terraformation Details Overlay - Adds a textbox below the Terraformation Index on the top right displaying the current Oxygen, Heat, Pressure and Biomass values

#### Plugins by gmyx

* Less Frequent Asteroids - Allows changing the time between asteroid events.
* Auto Mine and Grab - rework of Aedenthorn's Auto Mine mod by adding grabbing feature of larvae, food and algae.
	+ **Warning**: version 1.01 breaks food and algae growers.

#### Plugins by crazymetal

* Equipment Extended - Allows equipping more than one backpack and resizes the inventory screen slots to accommodate bigger inventories.
* Easy Deconstruct Storages - Deconstruct non-empty storages. The contents are transferred into one's backpack. The excess is dropped on the ground.

#### Plugins by MikeyPdog

* Custom Progress Speed - adjust the unit generation (heat, oxygen, plant, etc) of buildings via multiplicative factors.

#### Plugins by vemsvims

* Glass Tinter - Change the color and alpha of windows (glass) ingame.
* Save On Exit - Saves the game when you exit to main menu.
* Camera Settings - Some extra settings exposed as config entries.
* Purge When Full - Automatically purges the inventories of the Shredder and Recycler every second if full.
* Max LOD - Forces highest LOD level of all LOD groups every 5 seconds.
* Crate Stacker - Makes crates stackable. Snaps on top of other crates.

#### Plugins by cisox

* Always Deconstruct - Deconstruct non-empty items & containers (mode toggle).
* Keep Items On Death - No item loss on standard game mode.
* No Fall Damage - No damage taken upon falling.
* Set Respawn Point - Force the respawn point to a specific location
* Toggle Beacons - Show or hide the beacon indicators.
* Trade Rocket Time - Configure the trade rocket travel time.
* Tradeable - Set trade value of items.
* Rods - Adds compact rods for the common materials.

#### Plugins by Shaklin

* Warning Sounds - Custom low-amount warning sounds for health, thirst and oxygen.
* Eat and Drink Sounds - Separate sounds for when eating and drinking.
* Total Tokens - Shows the total tokens accumulated in the current world.

#### Plugins by Desperationfighter

* Let everything fall on Death - Changes the "DropSomeItems" Game Mode to actually drop "All" your Items.
* Ore Extractor Focus - Adds Config Settings to the Ore Extractor. For all Settings check the Config File under "BepInEx/Config" You can adjust the Extractor Timer (How often you get a Ore), Focus on the Primary Ore or increase how often you get the Primare one.
* Water Collector Config - Lets you adjust the Frequency of Waterbootle Production on the Water Collectors.
* Better Oxygen Warning Level - Lets you adjust the Warning Limit trigger and more. Also adds two new Oxygen Warnings ideal for Later Gameplay.
* Recycle to Inventory - Transfers Items from the Recycle Process directly into your Inventory.

### Defunct mods/modders

The following mods and modders have been abandoned. Check the other modders' arsenal for alternatives or remakes.

#### Lathrey

***Warning (as of March 2023). The author has stopped updating his mods. We are in the process of remaking them within other mod suites. Please come to the official Discord #modding channel and vote for what mods to prioritize.***

* **Note:** As of 11/2022, it appears none of these have been updated since April 2022 on the github page, and several are no longer working with the newest versions of Planet Crafter. All mods renamed on April 14, 2022. Please delete old versions and copy over configs to the new file names.
* Mod source now available here and releases here.
* Zip with all Lathrey mods
* Upgrade zip with all Lathrey mods - Without Recipe Export/Import config files to avoid deleting your changes.
* **UPDATED Risky** Disable Build Constraints - Hotkey to toggle on/off build constraints
	+ Remade by akarnokd: **(Lathrey) Disable Build Constraints**
	+ **v2.5.0 Update:** Shows status text in the bottom left when constraints are disabled.
	+ Configurable hotkey (default Ctrl+G) which toggles build constraints on/off so you can build on rocks or in the sky or whatever.
	+ **Warning:** The build constraints exist for a reason. You're playing with fire... :)
* **NEW** Auto Move - Hotkey to toggle moving forward without holding a key
	+ Remade by akarnokd: **(Lathrey) Auto Move**
	+ Displays when active in the bottom-left
	+ Configurable hotkey (defaults to CapsLock)
* **NEW** Improve Performance - Requires PluginFramework (put in BepInEx\plugins folder).
	+ Remade by akarnokd **(Lathrey) Improve Performance**
	+ Configurable list of point lights and particle systems to disable to increase performance
* PluginFramework - Doesn't do anything by itself but needed for some of the mods below. (Updated April 16, 2022.)
* Seed Spreader Seeds - Requires PluginFramework (put in BepInEx\plugins folder).
	+ You can now pickup the growing plants that the seed spreader adds and they turn into seeds in your inventory. Let the plants spread!
* Vehicle - Requires PluginFramework (put in BepInEx\p`lugins folder).
	+ Adds a UFO vehicle that provides oxygen, 40 inventory slots, and can be 'driven' around.
	+ Unzip into the BepInEx\plugins folder to install (puts everything into a 'Lathrey-Vehicle' folder)
* Ore Extractor Tweaks - Configurable changes to ore extractors. Remember to run once to generate the config file in the 'BepInEx/config' directory.
	+ **Alternative available.** For example from (See Mod List) Desperationfighter - Ore Extractor Focus
	+ Only\_Extract\_Detected\_Ore (default true) - Prevents getting 'common' ores with extractor (waits and tries again). No effect for 'Iron' locations which still give all common ores.
	+ Detected\_Ore\_Every\_Tick (default false) - Detected rare ore is found every time (no waiting if it would have been a 'common' ore.)
	+ Modify\_Spawn\_Rates (default false) - Enables changing rate of ore generation
	+ T1\_Spawn\_Every\_X\_Seconds (default 70s) - Time between spawns of ore in the T1 ore extractor (if enabled above)
	+ T2\_Spawn\_Every\_X\_Seconds (default 65s) - Time between spawns of ore in the T2 ore extractor (if enabled above)
* Recycling Veggies - You can put a vegetable (Eggplant, Mushroom, Beans, Squash) into the recycler and get back the seed instead to duplicate seeds.
* Asteroid Tweaks - Configurable debris removal rate (multiplier of current rate.) Adds hot key to trigger a random Meteo event. Flag to limit triggered Meteo events to ones that have asteroids.
* Teleporter - Requires PluginFramework (put in BepInEx\plugins folder).
	+ To use the teleporters just build 2 or more of them. Click on any of the 4 blue balls on the 'arms' and it will bring up a GUI. Enter an address of one of the teleporters and click 'teleport' and off you go.
	+ The energy usage and recipe list are configurable if they're too steep for your playstyle.
	+ Unzip into the BepInEx\plugins folder to install (puts everything into a 'Lathrey-Teleporters' folder)
	+ **Warning! The mod is currently bugged with the Lore & Automation update and the author has stated they don't have time for mod fixes.**
* Recipe Export Import - Requires PluginFramework (put in BepInEx\plugins folder).
	+ **Reminder:** When updating save your RecipesToModifyAndAdd.jsonc and any AssetBundles you added.
	+ **v2.2.0 Update** - Writes a list of craftable items (name/game ID) to CraftableList.txt in the DataFiles directory.
	+ Export/import item/building configuration information (recipe, icon/model, oxygen/pressure/heat/etc. generation, energy usage, etc.)
	+ Modify any values of existing things in game or add new items/buildings by editing the DataFiles\RecipesToModifyAndAdd.jsonc file (comments inside and some examples).
	+ Add AssetBundle files to the AssetBundles directory to load new models or icons to use with your new items/buildings.
	+ Unzip into the BepInEx\plugins folder to install (puts everything into a 'Lathrey-RecipeExportImport' folder)
	+ Export\_Recipe\_List = true in config file turns on the exporting. Defaults to false to save game loading time.
	+ **Notes:**
		- Replaces Add Craftable Objects plugin (included as item/building additions for AdvancedBackpack, PalmTree, Coconut)
		- Replace Zeolite/Fabric plugin (included as recipe mod)
		- Remove previous non-folder versions (but **save** your RecipesToModifyAndAdd.jsonc file).
		- Updated to fix new game creation.
* Day Night Cycle Tweaks - Configurable length of day, night, and the time it takes to go between them.
* Open Interior Spaces - Requires newest PluginFramework (put in BepInEx\plugins folder).
	+ **v2.4.0 Update:** Fixes visible holes in top/bottom of merged 4 pods. Should detect save files prior to 2.3.0 and fix them to remove the old save file changes.
	+ **v2.3.0 Update:** Should handle interior glass and door 'walls'.
	+ 'Merges' multiple pods together so the interior space has no 'pillars' and you can build in the entire interior space.
	+ Spaces don't have to be a square and aren't limited to 2 pods (more will make bigger interior empty spaces.)
	+ Minor graphical artifacts still appear similar to the in-game 4 pod large room. These can be fixed with more time in Blender but they don't currently bother me that much and I'm horrible in Blender. :)
* **NEW** Toggle Fog - Hotkey to disable distance fog, jetpack dust, and a couple other particle systems such as sulfur clouds
	+ Configurable hotkey (defaults to Ctrl+F)
* **NEW** Fix Beacon - Fixes location of Beacon overlay when your field of view is not the default 60 degrees

## Creating Mods

In general modding involves changing or adding game logic by modifying the source code via a 'plugin' and/or adding new models, textures, images, sounds, etc. with an 'AssetBundle'.

### Creating Plugins

See the detailed guide on how to create the code part of mods: Developing CSharp Mods

Many mod authors have provided the source code for their mods via links to GitHub above.

### Creating AssetBundles

An AssetBundle is a collection of organized game content packaged into a single file with Unity3D (the game engine used to make Planet Crafter and many other games). In order to make sure the AssetBundle you make is compatible with Planet Crafter you need to use the same version of Unity3D that was used to make Planet Crafter. As of the time of writing this is 2020.3.26f. You can find it in the archives here: https://unity3d.com/get-unity/download/archive. To create an AssetBundle:

1. Install the right version of Unity3D above
2. Create a new empty 3D project
3. Open the Package Manager (Menu Window=>Package Manager)
4. Switch to view all packages in the Unity Registry by selecting the 'Packages: In Project' drop-down.
5. Install Asset Bundle Browser (Note you need to use the '+' button and install from a Git URL: https://github.com/Unity-Technologies/AssetBundles-Browser.git)
6. Install Input System
7. Install TextMeshPro (if not already installed)
8. Install Universal RP
9. Create/add any assets you want to add to the game (see Create Assets below)
10. Tag those assets with an AssetBundle name (you can make a new one with the 'New...' option) - Make sure to tag at least any prefabs used for in-game objects and any icons used for those objects. Only tagged items (not auto-added items) will show up in mods like Recipe Export Import. Make sure to give prefabs and icons unique names to find them later.
11. Open the Asset Bundle Browser (Menu Window=>AssetBundle Browser)
12. Check what will be included in the bundle by expanding the bundle names on the left hand side.
13. Select the 'Build' tab.
14. Use the 'Browse' button to choose where you want to store the AssetBundle (for example the plugin folder if you want to use it immediately.)
15. Select the 'Build' button and wait for the bundle to be created.

### Creating Assets

**Note:** This section currently assumes you know the basics of using Unity3D such as creating GameObjects and attaching components to them in the Scene Hierarchy.

There are a lot of details to creating assets and in general you can follow existing Unity3D tutorials as well as tutorials for your tools of choice for editing models, textures, sounds, etc. This section is just to cover how to structure content so that it works with Planet Crafter in a somewhat smooth fashion. For some of this to work you will need to have some of the game files added to your Unity3D project.

To get the game files you need:

1. Get Asset Ripper GUI Win64 from GitHub: https://github.com/AssetRipper/AssetRipper/releases/download/0.1.8.1/AssetRipperGUI\_win64.zip
2. Extract it somewhere and run it by double-clicking on AssetRipper.exe
3. Load the game data files (Menu File=>Open Folder - choose C:\Program Files (x86)\Steam\steamapps\common\The Planet Crafter Prologue\Planet Crafter\_Data)
4. Extract the data to a new Unity3D project (Menu Export=>Export all Files - pick a new empty folder)
5. Create a folder in your AssetBundle Unity3D project for all the files you need to copy below
6. Copy from the exported project the entire Assets/ScriptableObject folder
7. Copy from the exported project the entire Assets/Scripts/Assembly-CSharp folder
8. Copy from the exported project the entire Assets/Scripts/GameOptions folder
9. Copy from the game data folder (C:\Program Files (x86)\Steam\steamapps\common\The Planet Crafter Prologue\Planet Crafter\_Data) the following DLL files:
	1. Assembly-CSharp.dll
	2. Assembly-CSharp-firstpass.dll
	3. Beautify.Universal.Runtime.dll
	4. GameOptions.dll
	5. HSVPicker.dll
	6. SimpleSQL\_Runtime.dll

Now you will be able to attach scripts from the game by expanding the 'Assembly-CSharp' DLL and dragging scripts to GameObjects as new components.

#### Creating An Item

In general, items in the game show up in your inventory, your equipment, or are on the ground and can be picked up instantly by clicking on them (no 'mining' required.) Items are used as ingredients in recipes, equipment upgrades like backpacks or oxygen canisters, consumables like food, etc.

To create an item:

1. Make an empty 'root' GameObject and name it the name of your item
2. Add GameObject children under this object with all of the models that are part of your item
3. Attach a collider (usually capsule) to the 'root' GameObject that represents the physical boundary of the object (so it doesn't go through the terrain for example)
4. Attach the following scripts from Assembly-CSharp:
	1. WorldObjectAssociated
	2. ActionGrabable (decide if you want the name shown on hover via the checkbox)
5. Drag the 'root' GameObject to the project folder are to make a Prefab
6. Select the Prefab and choose the associated AssetBundle in the Inspector
7. (No longer needed with Recipe Export Import) Create a new GroupDataItem (right click the project area Create=>Planet Crafter=>GroupDataItem)
8. (No longer needed with Recipe Export Import - set these values in the data file) Set the GroupDataItem properties
	1. Id - The name of the item (technically this is used to lookup the name in the localization file)
	2. Associated Game Object - Drag your prefab here
	3. Icon - Import a 2D image for your item into Unity, set as a Sprite, drag it here
	4. Recipe Ingredients - A list of GroupDataItems used to craft this item if it's craftable. You can select from items in the game here in the ScriptableObject directory from above.
	5. Unlocking World Unit - What type of terraformation unit is used to enable this item if any. Setting to 'null' seems to break things after the update to 011 so choose 'Terraformation' if you want it always available.
	6. Unlocking Value - When to unlock this based on the type of unit above. Note this is in the earliest unit type. So ppq for Oxygen, pK for heat, nPa for pressure, Ti, etc.
	7. Terraform Stage Unlock - Unlock based on a named terraform stage instead of a world unit value
	8. Inventory Size - How many slots of inventory this item has if it has inventory. Not sure if this is used?
	9. Value - Depends on what this is. For eatable it's how much health. For backpacks its the number of slots, etc.
	10. Craftable In List - A list of crafting stations that have this item in them. Note T1 is the station in the starting pod
	11. Equipable Type - What kind of equipable it is (backpack, oxygen, jetpack, etc.)
	12. Usuable Type - For consumables (eat, drink, breathe)
	13. Item Category - Used for equipment (equipable), seeds
	14. Growable Group - Not sure but believe this is for seeds that have an associated item for when they are grown (mushroom seed => mushroom)
	15. Associated Groups - Not sure
	16. Assign Random Group At Spawn - Not sure, leave false?
	17. Replace By Random Group At Spawn - Not sure, leave false?
	18. Multipliers (one for each type) and they are used for things like rockets and seeds that give a bonus.
9. (No longer needed with Recipe Export Import) Choose the associated AssetBundle in the Inspector

#### Creating A Building

Anything that can be created with the build menu (Q) is called a 'constructible'. There is more detail here depending on what you want the building to do. Machine Generators spawn objects at a certain rate, containers have an inventory and can be opened, etc. Over time this section might need to expand to cover what to do for different types of building. For now this covers a machine like the water collector or the ore extractor which creates items over time in an internal inventory the player can access.

To create a building (that makes items):

1. Make an empty 'root' GameObject and name it the name of your building
2. Add GameObject children under this object with all of the models that are part of your item
3. Attach a collider (usually capsule) to the 'root' GameObject that represents the physical boundary of the object (so it doesn't go through the terrain for example)
4. Attach the following scripts from Assembly-CSharp:
	1. ConstraintOnSurfaces (Add what surfaces you can place your object on. Foundations are 'grid'.)
	2. ConstraintNotColliding (Normally collide with minables and water)
	3. ActionOpenable and InventoryAssociated (If it has an inventory the player can access)
	4. WorldObjectAssociated
	5. MachineGenerator (If it makes objects. If so specify the time between in seconds and the list of objects it can choose from.)
	6. RequireEnergy (Required if you are a MachineGenerator or otherwise need energy to work. Default distance is 30 and turns off expensive rendering if the player is far away (lights, particles, etc.))
5. Add a GameObject child. On the child:
	1. Add a collider with 'Is Trigger' set to true (I think this is to prevent other buildings from being built near this one)
	2. Add a HomemadeTag script set to 'Constructible Collision Detector'
6. Add a GameObject child. On the child:
	1. Add a collider with 'Is Trigger' set to true (I think this is for detecting where you can click to destroy the object)
	2. Add a ActionDeconstructible script and set the root object to your root GameObject in step 1
7. Drag the 'root' GameObject to the project folder are to make a Prefab
8. Select the Prefab and choose the associated AssetBundle in the Inspector
9. (No longer needed with Recipe Export Import) Create a new GroupDataConstructible (right click the project area Create=>Planet Crafter=>GroupDataConstructible)
10. (No longer needed with Recipe Export Import - set these values in the data file)Set the GroupDataConstructible properties
	1. Id - The name of the building (technically this is used to lookup the name in the localization file)
	2. Associated Game Object - Drag your prefab here
	3. Icon - Import a 2D image for your building into Unity, set as a Sprite, drag it here
	4. Recipe Ingredients - A list of GroupDataItems used to build this item. You can select from items in the game here in the ScriptableObject directory from above.
	5. Unlocking World Unit - What type of terraformation unit is used to enable this building if any. Setting to 'null' seems to break things after the update to 011 so choose 'Terraformation' if you want it always available.
	6. Unlocking Value - When to unlock this based on the type of unit above. Note this is in the earliest unit type. So ppq for Oxygen, pK for heat, nPa for pressure, Ti, etc.
	7. Terraform Stage Unlock - Unlock based on a named terraform stage instead of a world unit value
	8. Inventory Size - How many slots of inventory this item has if it has inventory.
	9. Generation per second (one for each type) - negative to consume (like energy) and in the base units like above (ppq, nPa, etc.)
	10. Rotation fixed - I assume prevents you rotating it when building
	11. Group category - where to show in the build menu
	12. World Unit Multiplied - Not sure.