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 -> Plugins
menu.
You should now see the custom types BlockMap
, BlockFluid
, BlockLayer
, and CPU-BlockLighting
in the Create New Node menu.
- Add
BlockMap
to your scene.- Create a
Camera 2D
and setPreview Cam
ofBlockMap
to that camera. - Set
Block Size
to 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
BlockLayer
node as a child ofBlockMap
for every layer that you want.- Update
Tile Set
- Update
- Add
BlockFluid
as a child of one of theBlockLayer
nodes. - Add
CPU-BlockLighting
as a child ofBlockMap
.- Set
Lighting Layer
to the index of theBlockLayer
that 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.