Godot plugin for making 2D sandbox games like Terraria and Starbound. This is in early development and should not be used for production projects.
Requires Godot Mono. Documentation for using c# in Godot.
- Create 
addons/folder in your project directory. - Clone this repository into the 
addons/folder. - Open your project in Godot and click on 
Build. You may need to create a new c# script to have this option. - Enable this plugin from 
Project Settings -> Pluginsmenu. 
You should now see the custom types BlockMap, BlockFluid, BlockLayer, and CPU-BlockLighting in the Create New Node menu.
- Add 
BlockMapto your scene.- Create a 
Camera 2Dand setPreview CamofBlockMapto that camera. - Set 
Block Sizeto the size of your tiles in pixels. - Create a generator script and put it in 
Generator Script. See GeneratorTemplate.gd for formatting. - Define the properties of all your blocks in 
Block Properties. 
 - Create a 
 - Add a 
BlockLayernode as a child ofBlockMapfor every layer that you want.- Update 
Tile Set 
 - Update 
 - Add 
BlockFluidas a child of one of theBlockLayernodes. - Add 
CPU-BlockLightingas a child ofBlockMap.- Set 
Lighting Layerto the index of theBlockLayerthat you want to interact with the lighting. 
 - Set 
 
Preview Camera: Camera used for previewing terrain.Generator Script: Script used for world generation. See GeneratorTemplate.gd for formatting.Block Size: Size of each block in pixels.Chunk Size: Size of each chunk in blocks.Padding: Additional chunks outside of camera.Block Propetries: Array of dictionaries containing properties of each block. Index 0 is reserved for air.Solid: Whether the block will occlude ambient light.Light Absorb: How much the block will absorb light for each color channel.Emit: The light emission color of this block.Emit Strength: The light emission strength of this block.
Update Fps: The number of simulation steps that are computed every second.Block Id: The block that the simulation is run for.Color: The primary color of the fluid.Color2: The color of the fluid when it has Max Flow amount of fluid.Vertical Only: Enable if you want sand physics like in Minecraft.Min Value: The minimum amount of fluid a block can have.Max Value: The maximum amount of fluid a block can have before compression.Max Compression: The greatest difference in fluid amount two vertically adjacent blocks can have.Min Flow: The minimum amount of fluid that can flow from one block to the next.Max Flow: The maximum amount of fluid that can flow from one block to the next.Flow Speed: The speed at which fluid flows from one block to the next.
Ambient: The color of ambient lighting.Ambient Strength: The strength of ambient lighting.Ambient End: The lowest elevation where ambient lighting can be at full strength.Ambient Falloff Range: The range after Ambient End where ambient lighting strength transitions to 0.Light Threshold: The minimum light value that the light is propagated for. Lower values produce higher quality lighting at the cost of performance.Smooth: Whether filter is enabled for the lighting texture that is generated.Colored: Whether colored lighting is computed. Disable for better performance.Lighting Layers: Array of integers representing the Ids of layers that will interact with lighting.