From d41fac558d9e58f5aca9215e32fb309168f21cd7 Mon Sep 17 00:00:00 2001 From: Max Litruv Boonzaayer Date: Sat, 8 Feb 2025 00:44:02 +1100 Subject: [PATCH] Create objective-marker-system.md --- docs/objective-marker-system.md | 133 ++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 docs/objective-marker-system.md diff --git a/docs/objective-marker-system.md b/docs/objective-marker-system.md new file mode 100644 index 0000000..06e1a96 --- /dev/null +++ b/docs/objective-marker-system.md @@ -0,0 +1,133 @@ +# This plugin is WIP + +## Overview + +The **Objective Marker System** provides a set of features to display, manage, and interact with in-game objective markers. This document details each feature, available options, and how they can be configured. + +--- + +## Feature Summary + +| Feature | Status | Configurable Properties (Class) | +| -------------------------------- | :----: | --------------------------------------------------------------------------------- | +| **Icon Stacking Prevention** | ✅ | `bStackPreventionEnabled` (`UWidgetOverlay`) | +| **Off-Screen Markers** | ✅ | `bOffScreenEnabled` (`UWidgetOverlay`) | +| **Size by Distance** | ✅ | `bScaleByDistance` (`UWidgetOverlay`)
`SizeCurve` (`UWidgetOverlay`) | +| **Show Distance** | ✅ | `bShowDistance` (`UWidgetOverlay`)
`DistanceUnits` (`UWidgetOverlay`) | +| **Fade Out When Close** | ✅ | `FadeStartDistance` (`UWidgetOverlay`) | +| **Arrows When at Edge** | ✅ | `ArrowStyle` (`UWidgetIcon`) | +| **Occlusion** | ✅ | `bEnableOcclusion` (`UActorComponent`)
`OcclusionChannel` (`UActorComponent`) | +| **Screen Space Padding** | ✅ | `ScreenPadding` (`UWidgetOverlay`) | +| **3D Depth (Up/Down Indicator)** | ⬜ | `bEnableDepthIndicator` (`UWidgetIcon`)
`DepthThreshold` (`UWidgetIcon`) | +| **Custom Icon** | ✅ | `CustomIconMaterial` (`UActorComponent`) | +| **Visibility Groups/Tags** | ⬜ | `VisibilityTags` (`UActorComponent`) | + +--- + +## Feature Details + +### **Icon Stacking Prevention** + +Prevents multiple markers from overlapping in screen space by slightly offsetting their positions. + +### **Off-Screen Markers** + +Keeps markers anchored at the screen edges when the objective moves out of view. + +#### Properties (UWidgetOverlay): + +- `bOffScreenEnabled` _(bool)_ – Enables or disables off-screen anchoring. + +--- + +### **Size by Distance** + +Scales the marker size based on distance from the player. + +#### Properties (UWidgetOverlay): + +- `bScaleByDistance` _(bool)_ – Toggles size scaling. +- `SizeCurve` _(UCurveFloat_) – Defines the scaling curve. + +--- + +### **Show Distance** + +Displays a numerical value indicating the objective's distance. + +#### Properties (UWidgetOverlay): + +- `bShowDistance` _(bool)_ – Enables/disables distance display. +- `DistanceUnits` _(enum)_ – Specifies units (meters, feet, etc.). + +--- + +### **Fade Out When Close** + +Reduces marker opacity when the player gets near. + +#### Properties (UWidgetOverlay): + +- `FadeStartDistance` _(float, min: 0)_ – Distance at which fading begins. + +--- + +### **Arrows When at Edge** + +Displays arrows at the screen edge pointing toward off-screen objectives. + +#### Properties (UWidgetIcon): + +- `ArrowStyle` _(struct)_ – Defines arrow appearance and animation. + +--- + +### **Occlusion** + +Hides or fades markers if blocked by obstacles. + +#### Properties (UActorComponent): + +- `bEnableOcclusion` _(bool)_ – Enables/disables occlusion. +- `OcclusionChannel` _(ECollisionChannel)_ – Defines which collision channel to check for occlusion. + +--- + +### **Screen Space Padding** + +Ensures markers don’t get too close to screen edges. + +#### Properties (UWidgetOverlay): + +- `ScreenPadding` _(float)_ – Defines padding amount. + +--- + +### **3D Depth (Up/Down Indicator)** + +Indicates whether an objective is above or below the player. + +#### Properties (UWidgetIcon): + +- `bEnableDepthIndicator` _(bool)_ – Enables/disables depth indicators. +- `DepthThreshold` _(float)_ – Distance threshold for depth indicators. + +--- + +### **Custom Icon** + +Allows different icons per objective type. + +#### Properties (UActorComponent): + +- `CustomIconMaterial` _(UMaterialInstance_) – Sets a custom material or icon. + +--- + +### **Visibility Groups/Tags** + +Groups objectives into categories for dynamic visibility filtering. + +#### Properties (UActorComponent): + +- `VisibilityTags` _(TArray_) – Defines tags for filtering.