Skip to main content

Create a World

Introduction

This guide will take you through the process of developing your own virtual world in Studio.

Prerequisites

Before proceeding:

  1. Make sure you have set up your project as described in Setting Up Unreal Engine.
  2. Familiarize yourself with the Package Guide to better understand the concepts discussed here.

Create Your Level

You have two options to start building your world:

Option 1: Start with an Existing Level

  • Utilize an existing level, such as the empty helix::BlankMap or any other available level.
caution

Levels that are already "cooked" (processed by Unreal Engine) are not supported in the current version of Studio. You might need to activate the Build Mode to use such levels. It's essential to use "uncooked" levels, allowing them to open in the Unreal Engine.

Option 2: Create a New Level

  1. Right-click and select 'New Level'.

  2. Save the new level in the plugin's 'Project Content Folder'.

  3. Check your 'Content Drawer' for a folder with your project's name. For instance, a project named MyProject will have a folder labeled my-project Content.

    content

Once your level is set up, you can proceed with scripting.

Scripting Your World

Launching VS Code

  • Click on the World icon and select Start VS Code.

    start vscode

This action opens the Package folder in Visual Studio Code.

caution

If Visual Studio Code doesn't open, ensure it's installed correctly. Refer to the Setup Guide for installation instructions.

Setting Up Your Level

  1. Open Config.toml and update the map section.

    change map

If you're using one of our maps, format it as helix::<map-name>. If it's a custom map, use the format <project-name>::<map-name>. For instance, with a project named MyProject and a map named AwesomeMap, you'd enter my-project::AwesomeMap.

tip

If the map fails to load or the game doesn't start, review the Output Log for potential issues. Consider seeking assistance from the community discord for troubleshooting.

Start Scripting

Now, begin coding in the directory Packages\<project-name>, for example, Packages\my-project.

Using Placeholders

Placeholders can help pinpoint specific locations within your map:

  1. Place the placeholder at your desired location on the map.

    place holder

  2. Adjust the placeholder's name in the details panel.

    place holder name

  3. After restarting the game or clicking Regenerate Placeholder, you'll find a newly generated file named Shared/position.lua within your project package.

    place holder generate

The generated code will look something like this:

-- THIS FILE IS AUTO GENERATED, DO NOT MODIFY

-- World AwesomeMap Definition
AwesomeMap_MyPlaceHolder_pos = Vector(700, 260, 0)
AwesomeMap_MyPlaceHolder_rot = Rotator(0, 0, -0)
AwesomeMap_MyPlaceHolder_scale = Vector(1, 1, 1)

Publishing Your World

With your code in place, you're now ready to share your creation:

  1. Click on 'World' -> 'Publish' -> 'All' to initiate the publishing process.

    publish

  2. The system will begin cooking and uploading all related assets to the server.

    publish

  3. Once completed, your project will be visible in our creator hub.

    publish