← Multiplayer Game System handbook

Working authoring field guide

The illustrated final documentation is still deferred. These notes explain the current editable fields.

For ride parts, paint, tuning, workshop stock, services and adding the future car, see Ride workshops. Owned parts can be fitted anywhere, including while mounted.

Define once, select by name

Pickers read the catalogs selected in each plugin's Project Settings. Saved and unsaved changes to the active loaded catalog are visible when the list is opened again. Other inactive catalogs are not mixed into lists because the runtime would not resolve those definitions. Keep IDs stable once saves refer to them; changing a display name is safe.

Required completed quests means the listed quests must have been completed and their rewards claimed before the dependent quest is accepted. An empty list has no requirements; None placeholders are ignored. Quest references must not form a cycle or reference the same quest.

Objective Progress event chooses what advances the objective. Event subject selects the relevant item, quest, NPC or interaction type. None matches any subject. For example, Item Acquired + Wood counts wood acquisition, Quest Completed + Gather Supplies observes that quest's completion, and Interacted + Harvest observes successful harvesting. Registering a custom event name does not emit it: gameplay must call RecordEvent.

Fighting styles

DA_NGS_Combat has separate Physical Weapons and Fighting Styles arrays. Styles contain skill requirements, damage/reach/timing/stamina and an optional compatible attack montage. They do not own meshes, ammunition, magazines or weapon attachment slots. Existing Fists, Kung Fu, Street Fight, Kick Boxing and Karate definitions migrate out of the old weapons array while preserving edited attack values and saved selections.

Rides and animations

Each ride profile can use:

  1. A Static Mesh with the built-in example driver.
  2. A Skeletal Mesh with the built-in driver. It takes priority over the static mesh. Assign either an Anim Blueprint or compatible Idle/Move Animation clips. The Anim Blueprint takes priority; its owner exposes SpeedForAnimation.
  3. A complete Actor Class, usually a Blueprint implementing the Ride Driver interface. Spawn it using the Spawn Ride Blueprint function or place an NGSRideSpawner and choose its profile. The helper enables actor replication and optionally movement replication. Existing placed custom actors keep their own class and movement implementation.

For a custom physics vehicle/animal, add NGSMountableComponent (the spawn helper supplies one if missing), configure seats and implement Apply Ride Input on the actor. Connect its validated axes to the actor's actual movement controls. This adapter does not automatically turn arbitrary meshes into tire, flight or buoyancy simulations.

Profiles expose Seats, including transform, safe exit offset, driver/passenger role and optional seat/saddle bone or socket. When Seats is empty the actor's own seats are preserved. Use a single driver seat; passenger seats have Driver disabled.

Each seat has Rider Animations, with one entry per supported character skeleton:

The runtime selects the rider set matching the current character's actual rendered mesh skeleton. Assign separate sets when CMC/Mover characters use different skeletons. There is no universal animation guessed from a vehicle's name. Without a compatible authored set, the original replaceable pose behavior remains; production action clips still need authoring/import/retargeting.

For Mutable customization, parameter and component selectors read existing configured Mutable objects. Add parameters in the Mutable graph first. The optional advanced pawn mesh override lists loaded character skeletal components; None uses automatic selection. Bone/socket selectors read loaded meshes, so load the intended mesh before choosing a socket.

Equipment presentation

The Equipment board places armor/gear around a wide central weapon column. Clicking a slot keeps the board visible and opens the right-hand carousel. The focused item is larger; neighboring owned items select a new comparison. D-pad left/right or Previous/Next cycles the carousel, and Equip/Unequip calls the authoritative inventory/combat component.

For item art, assign Icon, Preview Mesh (static), or Armor Mesh (skeletal) on the item. Weapon inspection falls back to its combat definition's mesh. Without authored meshes/icons the UI deliberately uses replaceable line symbols. Equipment Group on physical weapons selects a group defined in Nice Game Authoring Lists; older weapons infer Long Gun, Heavy, Sidearm or Melee. These are selection groups for the current active weapon, not four simultaneously active weapons. A weapon's Required Inventory Item may have a different Id from the weapon itself; the inventory adapter resolves the reference.

Character inspection copies visible meshes from the pawn and its child/attached actors, preserving the existing CMC/Mover animation graphs. Drag to rotate or scroll to zoom; focus Inspect Character and use the controller's right stick for the same controls.

Terrain maps and routes

With no World Texture assigned, Nice Maps captures the current level locally from above. The minimap refreshes twice per second; the world overview and geometry list refresh every five seconds. Captures rebuild after travel. The server performs navigation only and never renders map images. North is Unreal +X; icons, input placement, route points and the terrain camera use that same orientation.

Project Settings → Nice Maps controls automatic level capture, automatic geometry bounds, image resolution and minimap coverage. Turn off automatic bounds to use explicit World Center/World Span. An optional authored World Texture overrides live imagery for large worlds; author it north-up (+X). Automatic imagery covers currently loaded visible level geometry and is a top-down view, so multi-floor interiors/roofs and unloaded world-partition regions need authored maps or a later floor/streaming layer.

Place a Nav Mesh Bounds Volume over walkable space and build navigation (or enable runtime navigation generation) in each gameplay level. The current example map already has navigation. The server projects the player's position and destination onto that navigation mesh and requests a complete walkable path using Unreal's navigation query. Default area costs produce the shortest navigable route; custom navigation area costs can prefer safer/cheaper terrain. A blocked or off-nav target shows a clear status and direction guidance rather than a fake line through obstacles. The minimap arrow points toward the tracked target and stays inside the frame for off-screen targets. Custom markers are private to each character and retain their names through saves/travel.