Workshop

The Leadwerks Workshop on Steam is a system that allows distribution of game-ready content and easy collaboration.  You can subscribe to items in the Workshop to use them in your games.  You can also publish your own items for others to use.  Leadwerks Workshop is a great way to find 3D models and other items to populate your games with.

Requirements

To use the Leadwerks Workshop, you must have Leadwerks on Steam, and SteamCloud must be enabled for your account.  To enable SteamCloud, select the View > Settings menu in the Steam interface and enable it under the Cloud settings:

Installing Items

To install an item from the Workshop, first you need to open the Workshop browser.  Find and click on the item you want to install:

Press the Install button to subscribe install the selected item in your current project.  The selected item will be downloaded and added to your project.  The asset browser tab will be shown, and Leadwerks will automatically navigate to the folder the new files are downloaded to, for quick access to your new items.

The Subscribed list shows a list of all subscribed items.  You can install items from here.  DLC packs will also show up in this list.

Publishing Items

You can publish your own items to the Workshop.  Select the Workshop > Publish File menu item to open the Publish File dialog:

The following fields must be filled in before you can publish your item:
  • Title: This is the title that will be shown in the Workshop.  It's best to keep this simple and avoid too much extra information.
  • Preview: This is a small preview image to show in the Workshop.  Square images around 200x200 pixels work best.
  • File: This is the zip archive containing your files to include in the package.  Your zip file will be extracted into the user's project folder, with whatever directory structure you create.  Note that only Leadwerks asset file formats can be included in your zip file.
  • Visibility: You can choose to make your item publish, private, or share it with just your friends on Steam.
  • Description: A brief description of your item and what it is for.
Once these are filled in, press the Publish button and wait a few moments for your package to update.  When complete, the Steam interface will be opened and your item will be displayed in the Workshop.  Your item will automatically show up in the Workshop browser in a few minutes, and will be available to everyone else on Steam (if the visibility mode is set to public).

Updating Items

One of the great things about the Workshop is ease of updating.  You can update any of your items at any time, and your changes will be pushed out to everyone subscribed to your item.  To update an existing item, select the Update tab in the Publish File dialog.  Add a comment describing your changes and then choose a new preview image, a folder containing your new files, or both.  Press Publish to update your item, and your changes will go out to everyone subscribed to that item the next time they start Leadwerks.

If you want to change the item name or add more screenshots and videos to your item's page, you can do this within the Steam interface.

Be thoughtful of your subscribers when updating items.  It's generally a bad idea to remove files or change file names within the package.  If you want to make drastic changes to your item, it might be a better idea to publish a new item and name it "Version 2" rather than disrupting your subscribers' work.

Selling Items

You can sell your content on Steam with Leadwerks Workshop and earn money.  To submit a paid item, set the "Price" field to "Paid" in the file publish dialog.  Do not set the visibility to private, as your item will not be downloadable anyways.

After publishing your paid item you must complete your payment info in Steam.  This will include your contact, bank, and tax information, for receiving payments and regulatory compliance, so that you can receive payments directly from Valve Software.  Leadwerks Software does not have access to this information.

You can also set a revenue split to share payments with another Steam user who has contributed to your item, if you wish to do so.  If you are not splitting the revenue, your share should be set at 100%.

Leadwerks Software will review and may make your item available for purchase.  You will receive 50% of sales of your item directly from Valve each month via wire transfer.  Valve will keep 30% of each sale, and 20% will go to Leadwerks Software.  A $100 minimum balance is required to initiate a payment.  If this amount if not met in a month, it will carry over until it is reached.

You can view your sales in real-time by clicking the "View Your Revenue" link on the main Workshop page.

Content Guidelines

These guidelines will help you prepare your content so that users will gain the maximum utility from your work.

Importing

The import pipeline in Leadwerks is for the most part automated. The following tutorials will help you get started:
  • Textures
  • Materials
  • Models and Animation

Collision

All models (other than animated characters) should have a collision shape included. See this tutorial for information on generating collision shapes for your model.

Collapsing Models

For optimal performance, models should have the fewest number of limbs possible. Static models can have their limb hierarchy collapsed down to a single object by opening them in the model editor, then selecting the Tools > Collapse menu item. Select the File > Save menu item to save your changes.

Scaling

Leadwerks Game Engine uses a scale of one unit space = one meter. Therefore, a centimeter is 0.01 units, a millimeter is 0.001 units, and so forth. If you are coming from the Unity game engine you will need to scale your models down to 1% their original size. Fortunately, this can be easily done in the Model Editor. Double-click on your model in the Asset Browser, then select the Tools > Resize menu item to open the resize dialog and scale your model. If your model isn't animated you should then select the Tools > Collapse menu item to reset your object's 4x4 matrix. Select the File > Save menu item to save your changes.

Alignment

The placement of an object's pivot affects how easily it is placed in the editor. Placing an object's pivot in an unexpected location will result in extra steps creating and positioning objects, and will make your items less useful. For objects like the barrel below, it makes sense to place the pivot in the center of the object, at the very bottom. When the user drags the object into the scene and creates it, the barrel will appear as they expect.

If the pivot is placed in the middle of the object's height, then it will be created with half the model stuck in the ground. This results in an extra step to reposition the object and makes the map creation process less fun. Don't make the user work harder than they have to. A few minutes of your time to make things right can save hundreds of hours collectively for your users.

Sizing

By default Leadwerks Editor displays major grid lines every 8 units. This is because textures are power-of-two dimensions like 256, 512, 1024, etc. and it makes it easy to line up CSG geometry with details on textures, like door and window frames. It is important that any modular objects be sized to make lining up on the grid easy. For example, the fence below was constructed from subobjects that are design to line up precisely on the grid. This makes map design easy and fun, instead of being a chore to precisely line up poorly designed props. If you design your models to work easily, the user won't even have to think about how they align because they will just work. Notice that we can increase the grid size three times, and the fence pieces will still snap to the correct place on the grid.

You should generally size objects to the nearest grid unit, in centimeters. This can be power-of-two numbers like 64, 256, 32, etc., or combinations of multiple powers-of-two, like 48, 192, etc. Models that are sized this way will be much easier to line up and stack, without any effort at all. If you need a guide to size objects, you can always create a brush outlines in Leadwerks Editor, then select the File > Export menu item to save the map brushes as an OBJ file, to be imported into your modeling application.

Take care to ensure that adjacent objects that are meant to be used in a modular fashion do not have gaps or overlaps between them. It's much easier to create things the correct dimensions from the start, instead of going back and trying to clean up vertex positions.

Textures

Textures that allow map geometry to be lined up precisely will be very useful to users and are in high demand. This can be achieved by lining up texture details in the same way we size models. These templates can be used as a guide to designing new textures. When textures are designed in this manner, they are a lot of fun to work with. You can see in the image below how the interaction of level geometry and texture details creates a highly structured design that is very appealing and easy to use.

Animations

Animation names are important because scripts will use specific names to find an animation to play. The following names should be used for common sequences:
  • idle
  • walk
  • walkback
  • walkleft
  • walkright
  • run
  • runback
  • runleft
  • runright
  • walkcrouch
  • walkcrouchback
  • walkcrouchleft
  • walkcrouchright
  • jump
  • attack1 (melee attack)
  • attack2 (melee attack variation)
  • fire (shoot weapon)
  • hit
  • death

Folder Structure

Materials should be placed in a subfolder of the "Models" folder in the uploaded zip file, e.g. "Materials/My Material Pack/(All Files Here)".

Models should be placed in a subfolder of the "Models" folder in the uploaded zip file, e.g. "Models/My Model Pack/(All Files Here)". Model textures, materials, and prefabs should be in the same folder as the model file.