PlanetGen FAQ
Which Unreal Engine versions are supported?
Section titled “Which Unreal Engine versions are supported?”Unreal Engine 5.4, 5.5, 5.6, 5.7 and 5.8. See Requirements.
Does PlanetGen work in multiplayer?
Section titled “Does PlanetGen work in multiplayer?”Yes. The gravity framework and the included gravity characters are built for multiplayer, with full client prediction. Gravity direction is recomputed from each character’s position every tick on every machine, so it never needs to be replicated.
The one exception is the FastFlyTo hyperdrive. It moves the actor directly and is not a predicted move, so use it in single-player or on the authority.
Can I have more than one planet in a level?
Section titled “Can I have more than one planet in a level?”Yes, as many as you like. The multi-planet LOD subsystem streams full terrain only for the planet whose surface you are nearest, and renders every other planet as a single low-poly sphere. Only one chunk pool is alive at a time, which is what keeps many-planet levels affordable.
Can I use my own terrain material?
Section titled “Can I use my own terrain material?”Yes. Your material needs to read the blend weights PlanetGen bakes into the mesh:
| Channel | Layer |
|---|---|
VertexColor.R |
Underwater |
VertexColor.G |
Grass |
VertexColor.B |
Rock |
VertexColor.A |
Snow |
TextureCoordinate(1).R (UV1.x) |
Shoreline beach |
TextureCoordinate(1).G (UV1.y) |
Desert sand |
Blend from the inside out: grass, rock, snow, beach, desert sand, then underwater as the outermost Lerp. For a radial slope mask and the day/night terminator, use the PlanetCenter vector parameter (set automatically) and the included MF_DayFactorLocal function. The included M_Planet is a complete example.
How big can a planet be?
Section titled “How big can a planet be?”Planet Radius goes from 0.1 km to 1000 km. Horizon culling and double-precision noise mean streaming cost is largely independent of radius. At extreme radii, detail eventually softens as float precision runs out, and a character far from the world origin can jitter.
Can I place hand-built content, such as a village or landing pad?
Section titled “Can I place hand-built content, such as a village or landing pad?”Yes, with an exclusion volume (APlanetGenExclusionVolume). It flattens the terrain into a level pad and keeps foliage and grass out. Click Align To Planet after moving it so the pad lies flat against the curved surface.
Can I spawn gameplay actors like ore, wildlife or enemies?
Section titled “Can I spawn gameplay actors like ore, wildlife or enemies?”Yes, with the actor spawner. Create a UPlanetGenSpawnerAsset, add it to Spawner Assets on the planet and tick Enable Spawner. It spawns in Play and PIE (not in the editor preview). Keep densities low: every spawn is a real Actor.
Can I install PlanetGen next to WorldGen or CityGen?
Section titled “Can I install PlanetGen next to WorldGen or CityGen?”Yes. All PlanetGen types and headers are uniquely prefixed, so there are no class or header collisions. PlanetGen’s foliage and grass data assets are its own types, separate from WorldGen’s.
Does PlanetGen use any third-party libraries?
Section titled “Does PlanetGen use any third-party libraries?”No. All noise is implemented in CodeLikeMe’s own CLMNoise library.
Are ACLMPlanetSunSky and ACLMPlanetCharacter still supported?
Section titled “Are ACLMPlanetSunSky and ACLMPlanetCharacter still supported?”They still work, for backward compatibility, but both are deprecated. For new projects, use base ACLMPlanet with an Atmosphere Asset (which also works with several planets) and the gravity framework’s APlanetGenGravityCharacter.
