Assets Guide
All you need to know about Assets
Assets in nanos world are all objects or content which come from Unreal Engine. For example Maps, StaticMeshes, SkeletalMeshes, Sounds, Particles, Blueprints etc are all types of Assets.
In order to use custom Assets in your servers, for example to spawn a Prop, or a custom Weapon you must have an Asset Pack. Asset Packs are a set of Assets that were exported together from Unreal.
Folder Structureβ
All Asset Packs go under the server's Assets/
directory. Each Asset Pack is a folder under that.
Asset Packs downloaded when connecting to servers or downloaded from the vault will be stored in server's Assets/
directory as well!
This is an example of a server Assets folder:
NanosWorldServer.exe
Assets/
βββ my-asset-pack-01/
β βββ MyAsset_01.uasset
β βββ MyAsset_02.uasset
β βββ MyBigMap.umap
β β ...
β βββ Assets.toml
βββ awesome-weapons/
β βββ BigFuckingGun.uasset
β β ...
β βββ Assets.toml
Packages/
Config.toml
Assets Pack Configurationβ
Asset Packs have a configuration file in the root of the Asset Pack folder, called Assets.toml
, in this file we can setup all pertinent settings related to the Asset Pack:
https://github.com/nanos-world/nanos-world-server/blob/main/Assets.toml
Settings Detailedβ
See a description of what each setting does:
Setting | Description |
---|---|
title | Friendly name |
author | Contributor(s) |
version | Version - in the SemVer format X.Y.Z |
unreal.unreal_folder | Name of the root folder in the Unreal Project which exported this Assets. This is important so the Assets can keep the relative references correctly |
unreal.unreal_version | Version at which this Asset Pack was created |
unreal.is_plugin_content | If this Asset Pack is Plugin Content |
assets.maps | List of Maps in this Asset Pack |
assets.static_meshes | List of Static Meshes in this Asset Pack |
assets.skeletal_meshes | List of Skeletal Meshes in this Asset Pack |
assets.sounds | List of Sounds in this Asset Pack |
assets.animations | List of Animations in this Asset Pack |
assets.particles | List of Particles in this Asset Pack |
assets.materials | List of Materials in this Asset Pack |
assets.blueprints | List of Blueprints in this Asset Pack |
assets.others | List of other Assets in this Asset Pack |
Asset Meta Dataβ
It is possible to define custom Meta Data for each individual Asset!
Besides defining the Asset Path by string, like this:
[assets.static_meshes]
SM_Flower_01 = "MyFolder/SM_Awesome_Flower_01"
SM_Rock_01 = "MyFolder/SM_Rock_01"
SM_MyAsset_01 = "MyFolder/SM_MyAsset_01"
# ...
We can also define them as a table, allowing custom values - which can be accessed through scripting:
[assets.static_meshes]
SM_Flower_01 = { path = "MyFolder/SM_Awesome_Flower_01", my_tag = "Wonderful", something = 123, thumbnail = "Thumbnails/SM_Flower_01.jpg" }
SM_Rock_01 = { path = "MyFolder/SM_Rock_01", my_tag = "Wonderful", something = 123, thumbnail = "Thumbnails/SM_Rock_01.jpg" }
SM_MyAsset_01 = { path = "MyFolder/SM_MyAsset_01", my_tag = "Wonderful", something = 123, thumbnail = "Thumbnails/SM_MyAsset_01.jpg" }
# ...
The path
key is required, all other values are optional and customizable, use as you wish!
Logo Imageβ
It is possible to have a custom image to be displayed in the Vault. For that, add a file called Assets.jpg
besides the Assets.toml with the image you wish. The recommended size is 300x150
.
Referencing Assets in Scriptingβ
To be able to use Assets in your code, first you have to ensure that the Asset Pack is loaded. An Asset Pack is loaded when:
- A map is loaded (this will make it's Asset Pack to be loaded automatically).
- A package with it configured in
assets_requirements
is loaded. - It is manually set in Server's
Config.toml
atassets
to load.
With the Asset Pack loaded, you can refer to it's assets using the following pattern:
"[ASSET_PACK_PATH]::[ASSET_KEY]"
Example:
"my-asset-pack-01::SM_Cube"
[ASSET_PACK_PATH]
is the folder name and [ASSET_KEY]
is the key defined in the Assets.toml
.
Types of Assetsβ
Some scripting methods require some specific Type of Assets to load. Attempting to load an invalid or wrong type will cause an Error. E.g.: Character:SetMesh()
requires an Asset of type Skeletal Mesh
.
Here's a list of all supported Asset types:
Type | Description |
---|---|
Map | An Unreal Engine Map/Level |
Static Mesh | Unreal Static Meshes can be used to load meshes for Props and StaticMeshes |
Skeletal Mesh | Unreal Skeletal Meshes can be used to load meshes for Characters and Vehicles |
Sound | Unreal Sounds to load Sounds |
Particle | Unreal Particles can be used for settings in several entities, including Particle Class itself |
Animation | Unreal Animations can be used for settings in Character and Weapons |
Material | Unreal Materials can be used for customizing meshes surfaces and used as Post Process |
Blueprint | Unreal Actor Blueprints can be used for spawning Blueprint entities |
Creating your own Assetsβ
To create your own Asset Pack, please refer to Importing Custom Assets Guide.
π¦ Importing Custom Assetsassets-modding/creating-assets/setting-up-ueDefault Asset Packβ
nanos world provides a default Asset Pack which is already included in the base game. Please refer to the Default Asset Pack page for more information.
π¦ Default Asset Packassets-modding/default-asset-pack/default-assets-list