TLDR: What actor do you use and what URL do you use to load the curated Cesium terrain data into unreal when using the stand alone asset server.
Environment: We have a license for Cesium Ion on Prem. We are attempting to test in an environment where k8s is not yet possible. We are following the instructions https://cesium.com/learn/ion/self-hosted/#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_running_without_kubernetes to use an asset server alone.This is an air-gapped network. We are using Cesium for Unreal Engine as our client to consume the data. We have the curated world terrain (cesium_world_terrain_v1.2.terraindb), sentinel imagery (s2cloudless-2021_4326_v1.0.0_with_index.sqlite) and 3dtiles for buildings (e.g. planet-cwb-240304.3dtiles and planet-cwt-240304.3dtiles)
What we have working: We have the asset server docker image loaded and the dev web page shows us that it is serving assets. It says the license is valid. We can use the web view to preview the assets e.g. http://out-host-name:8070/dev/viewer.html?id=planet-cwt-240304.3dtiles works (we see a preview). We have Unreal Engine up with the Cesium plugin. If I add a blank 3Dtile and set it to use a URL and point to http://out-host-name:8070/v1/3dtiles/planet-cwt-240304.3dtiles/tileset.json I can see 3d buildings.
What is not working: We donāt know how to correctly add the terrain and imagery in Unreal. I see actor components for adding raster imagery and have used those with SaaS Ion successful. What Actor are we suppose to use (or actor component) to use to bring in the terrain data and what the URL would be for that data.
Iāve tried a few different combinations and no luck. Can I get some hand holding here 
What have I tried so far:
Adding a 3DTileset to the scene
Set the Source to āfrom Urlā
set the Url to: āhttp://my-host:8070/v1/terrain/cesium_world_terrain_v1.2/layer.jsonā
The asset on the asset server is called: cesium_world_terrain_v1.2.terraindb
I get this error:
LogCesium: Error: [2025-08-08 12:07:23.461] [error] [ErrorList.h:89] Errors when loading tileset:
I assume I just donāt know the correct URL to put in the field hereā¦
@immersion_lab Thanks for the question! You might want to take a look at our guide here for setting up Cesium ion Self-Hosted with Cesium for Unreal: Using Cesium ion Self-Hosted ā Cesium. The basic idea is that you create a new ion server asset with the details of your self-hosted installation and select it in the editor. Now, all the ion features in the editor - whether thatās loading tilesets or imagery, or listing and adding assets from ion - will talk to your Self-Hosted installation instead of Cesium ion SaaS. Let me know if you have any trouble with this!
Hello.
Thank you for the link but unfortunately that guide describes using the On Prem Ion (which we do use successfully).
This use case is for using only the stand alone asset server (when Ion On Prem can not be used) See this guide:
I have the asset server running but I do not know the correct URLS to get terrain and raster overlays to work.
I was able to get terrain to load using this URL:
http://my-host:8070/v1/terrain/cesium_world_terrain_v1.2.terraindb/layer.json
I was missing the ā.terraindbā in the URL (documentation doesnāt show this).
Now all I am missing is the imagery / raster data. I have this asset (provided by Cesium):
s2cloudless-2021_4326_v1.0.0_with_index.sqlite
How do I configure Unreal to use this on top of the terrain? What is the URL template?
So far, I have added a āCesiumTileMapServiceRasterOverlayā component to the 3dtiles and tried this URL:
http://my-host:8070/v1/imagery/4326/tilemapresource.xml
But no luck.
Hi,
Looks like you are running the stand alone asset server and not a full set up with kubernetes. Please correct me if I misunderstood that.
If the above is correct and your sentinel 2 imagery asset is in the same directory as the argument you passed to the server, your url should look something like the following:
http://my-host:8070/v1/imagery/s2cloudless-2021_4326_v1.0.0_with_index.sqlite/tilemapresource.xml
When running the standalone asset server, it detects files within your mounted directory by their names and hence you will need to pass in the full name of the file stored in the directory. Please let us know if you continue to see any issues.
1 Like