> For the complete documentation index, see [llms.txt](https://universgen.gitbook.io/shader-world/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://universgen.gitbook.io/shader-world/fundamentals/kick-start.md).

# Kick-start

## The world

First of all you need to activate the plugin from the editor plugins menu, then enable visibility of Engine content and Plugin content for your content browser.

<figure><img src="/files/pDJhvjrUC6SQm9H84uEk" alt=""><figcaption></figcaption></figure>

From the Shader World plugin Content folder, navigate to the Maps subfolder and open one of the demo maps. In the world outline select the blueprint named BP\_NameOfMapDemo, within its detail panel you can find its generator Material which defines the foundation of how your world is generated.

## The Generator Material (Default Surface - Unlit)

If you open the generator material you will find a material function named MF\_Define\_\* which is  responsible for creating your surface (ocean/terrain) foundation: for each XY coordinate as input, it outputs a height. Creating a new world in shaderworld, consists in creating such a material function, using the provided nodes toolbox and the well known Unreal Engine material editor.&#x20;

To visualize its effect, first select the terrain in your currently opened demo map (Blank demo map is a good starting point), and check **Update Height Data Over** time in its detail panel **Config** tab: this option is used to create oceans, but allows instant feedback when iterating on landscapes. Open the *MF\_Define\_*\* Material Function associated with your current world, now updating every frame, and replace the current computation by a simple constant to the output pin, compile the material function and observe the result.

<figure><img src="/files/VlNehNCF0kBQustn5tmX" alt=""><figcaption></figcaption></figure>

What this material function is doing is: given a world position input, outputs the height of the terrain.<br>

<figure><img src="/files/346vdYpRxJZnxefF16cd" alt=""><figcaption></figcaption></figure>

\
Node Based Workflow, connect those as you wish to create worlds

&#x20;       The intended design of Shader World plugin is to create a node based workflow to generate worlds within the material editor, so you don’t have to be a professional technical artist to create interesting worlds. The screenshot above displays the current state of the toolbox as of version 2.0, those nodes are premade and calibrated (inputs being in 0..1 0..10 0…1000 ranges) and can be combined as you want.

In Shader World plugin the nodes are actually material functions, you can develop your own nodes, taking for instance inspiration from the website Shadertoy.com, or even directly write your own shader logic without using them at all.

If you check the various demo map MF\_Define\_\* material functions you can find some reference on how to use world coordinates to read a heightmap to define your terrain, as well as adding some lower scale noise variations to it, or relying exclusively on noise functions.

Alongside the provided toolbox you can use all the preexisting material functions within the Unreal Engine material editor, notably the Noise node and Vector Noise node (prefer computational noises to avoid precision issues). But we would recommend using Shader World's own noises which have been extensively tested. The toolbox is set to expand over time.

As a general idea you could think of generating a node combination for mountains, another for valleys, another for underwater, and blend between each other given a biome, mapped using a texture or another set of nodes, possibilities are endless.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://universgen.gitbook.io/shader-world/fundamentals/kick-start.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
