Skip to content

PlanetGen features

  • Streaming terrain. Spheres use a cube-face parameterization (6 faces), rings use a cylinder. Both stream chunks from a runtime actor pool built on a thread pool, so the game thread is never blocked.
  • Layered 3D noise. Terrain is sampled in 3D world space, so it is uniform on every face with no pole distortion or seams. Noise comes from the original CLMNoise library (Perlin, Simplex, Cellular, Ridged, Domain Warp) with no third-party dependencies. Presets: HighDetail, Smooth and Mountains, or build your own layers.
  • Noise scale check. Each noise layer reports whether its frequency is coarse enough for your tile size and resolution (OK, MARGINAL or TOO FINE), so you can catch settings that would make foliage float.
  • Large planets. Planet radius from 0.1 to 1000 km. Double-precision height sampling keeps terrain detail from quantising past about 50 km.
  • Horizon culling. Only the chunks visible over the planet’s curved horizon are loaded. The load cone is narrow at ground level and opens up as you climb to orbit.
  • Memory guardrail. Max Chunks Per Face caps the chunk pool so a large radius with a small tile size cannot exhaust memory.
  • Tiered per-chunk LOD (experimental, off by default). Chunks build denser underfoot and sparser toward the horizon, with crack-free tier boundaries.
  • Spatial climate biomes. A temperature × humidity model sorts every point into a Tundra, Boreal, Desert or Tropical biome, each with its own snow line, rock line, grass density and sand. Temperature follows latitude and the climate noise auto-scales to the planet radius.
  • Polar ice caps. A latitude-based cap forces snow down to the shoreline, independent of the climate noise.
  • Biome blending. Per-vertex Grass, Rock, Snow and Underwater weights, plus shoreline beach and desert sand, with seamless normals. The included M_Planet material is already wired up.
  • Beach flattening. The shoreline band is flattened into proper sandy shelves at the waterline.
  • ACLMRingWorld builds cylindrical O’Neill habitats on the same terrain, noise, biome, grass and foliage pipeline as planets.
  • Terrain on the inner surface (centrifugal gravity, the world curving up overhead) or the outer surface.
  • Windowed streaming wraps around the circumference, so a huge ring only costs what is near you.
  • A collidable structural shell with end walls, and stacked, collision-free cloud and atmosphere layers.
  • Ring-confined post-process fog (M_RingPostProcess + MPC_Ring).
  • Multi-planet LOD. A central subsystem streams full terrain for the nearest planet and renders every other planet as a single low-poly sphere, so only one chunk pool is alive. The handoff is hitch-free and uses occlusion rather than a dither pop.
  • Per-planet atmosphere. Each planet has its own scattering, ground albedo, cloud altitude and sun shadow distance on UE’s Sky Atmosphere. The level’s single Sky Atmosphere is moved onto whichever planet is nearest.
  • Correct night side. Per-sample cloud transmittance plus a shader-space day/night terminator darken the night hemisphere.
  • Distant planets get a fresnel halo and a cloud shell that cross-fade into the real atmosphere as you approach.
  • Clean cloud edges on UE 5.6+ via the High Quality Cloud Reconstruction option.
  • Player-following grass. Dense ISM ground cover scatters in a disc that follows the player, decoupled from chunk loading, with clustering, jitter, a climate filter and a per-instance collision bubble.
  • HISM foliage. Trees, rocks and bushes scatter on the thread pool, filtered by height, slope and climate.
  • Depth-tinted ocean on planets and rings: turquoise shallows fading to deep navy, a shoreline foam line and clear shallows that show the seabed. It uses Single Layer Water, so it stays opaque and sorts behind volumetric clouds from orbit.
  • Adaptive water tessellation keeps the ocean surface smooth at any planet size.
  • Exclusion volumes. APlanetGenExclusionVolume flattens terrain into a level pad and suppresses foliage and grass for hand-authored content such as villages, landing pads and dungeon entrances. Pads lie flat on the curved surface (one-click Align To Planet), blend back to natural terrain, and stay seam-free across chunks.
  • Actor spawner. UPlanetGenSpawnerAsset scatters real Actors (ore nodes, harvestable plants, wildlife, enemy spawns, loot, points of interest) around the player. Placement is deterministic, filtered by biome, slope and height, surface-snapped, budgeted per frame and despawned out of range. It respects exclusion volumes.
  • Multiplayer gravity framework. Placeable sphere, cylinder and box gravity volumes with priority and per-volume strength (1 = Earth, 0.165 = Moon). Planets register a radial field automatically and rings a centrifugal one.
  • Client prediction. Gravity is recomputed from position on every machine and never replicated.
  • Zero-g, jetpack and hyperdrive. Mark regions (or the level default) as zero gravity, hover with a jetpack and a gravity-aligned orbit camera, and fast-fly between points with FastFlyTo.
  • Water traversal. The gravity character wades through shallow water and auto-engages the jetpack over deep water, on planets and rings.
  • Seeded and deterministic. Every world is reproducible from its seed.
  • In-editor preview. Details-panel buttons rebuild terrain without entering Play: Preview Planet, Preview Size (Water Only), Clear Planet and Randomize Planet.
  • Blueprint API. All properties are Blueprint read/write. IPlanetInterface exposes radius, gravity radius, centre and seed to any Blueprint or C++ class.
  • Installs alongside other CodeLikeMe plugins. Every PlanetGen type and header is uniquely prefixed.
  • Full C++ source (one runtime module, PlanetGen)
  • M_Planet terrain material with biome blending, desert sand, slope mask and day/night terminator
  • Atmosphere content: far-halo and cloud-shell materials, MPC_Planet, terminator material functions and sample atmosphere assets
  • Ring materials (M_Ring, M_RingAtmosphere, M_RingClouds, M_RingPostProcess + MPC_Ring)
  • Depth-tinted M_PlanetWater and flat-colour M_SimplePlanetWater
  • Exclusion volume actor and actor spawner data asset
  • Sample foliage and grass assets (trees, pine, cactus, grass) with meshes, materials and biome textures
  • BP_CLMPlanet, plus the BP_GravityJetpackCharacter and BP_GravityCharacter demo characters and input assets
  • Demo levels: PlanetMap, PlanetMap_Atmos, PlanetsMap, MultiPlanetsMap and RingMap