Customizable 3D compass HUD for survival and exploration games built in Godot 4.5.

Features

  • Compass Bar UI - Displays at top of screen with smooth scrolling
  • Cardinal Directions - N, NE, E, SE, S, SW, W, NW
  • Tick Marks - Minor (5°), major (15°), and cardinal markers
  • Degree Display - Current heading shown (0-360°)
  • FPS Controller - Included player with WASD + mouse look
  • Clean Code - Well-documented and easy to customize
  • Additional Silver Features:
    • Compass now supports 'Points of Interest'  (POI)
    • Compass shows range to POI
    • Additional touches such as range label, rounded corners, scaling icons based on distance.
    • POIs can be easily added in a number of ways. Example source randomly adds them to the scene.

Controls

InputAction
W/A/S/D Move
Mouse Look around
Shift Sprint
Escape Toggle mouse capture

Quick Start

  1. Open project in Godot 4.5+
  2. Run the main scene
  3. Move around and watch the compass update!

Integration Guide

Using the Compass in Your Project

  1. Copy these files to your project:
    • scenes/ui/compass.tscn
    • scripts/compass.gd
  2. Instance the compass in your UI:
 var compass = preload("res://scenes/ui/compass.tscn").instantiate() $CanvasLayer.add_child(compass)
  1. Update the compass with your player's heading:
 # In your player script func _physics_process(delta):      var heading = fmod(rad_to_deg(-rotation.y) + 360.0, 360.0)      compass.set_heading(heading)

Customization

  • Edit scripts/compass.gd constants to customize appearance:

Add new POI using the Manager (automatic spawning):

Edit scripts/poi_manager.gd - just add to the POI_CONFIGS array:

Note: The example code currently adds POIs at random

  const POI_CONFIGS := [       
    { "name": "Watchtower", "type": 0, "color": Color(0.9, 0.7, 0.2) },
    { "name": "Dark Cave", "type": 1, "color": Color(0.5, 0.4, 0.6) },
    { "name": "Dragon Lair", "type": 1, "color": Color(0.9, 0.2, 0.2) },
    # Add more here... 
  ]

Add new POI manually in editor (instanced)

  • Instance scenes/poi/poi.tscn anywhere in your scene
  • Set properties in Inspector: poi_name, poi_type, marker_color
  • Register it with compass: %Compass.register_poi(your_poi_node)

Add new POI via code at runtime:

  var poi = preload("res://scenes/poi/poi.tscn").instantiate()   
  poi.poi_name = "Secret Chest"   
  poi.poi_type = POI.Type.LANDMARK   
  poi.marker_color = Color.GOLD   
  poi.position = Vector3(50, 0, 30)   
  add_child(poi)   
  %Compass.register_poi(poi)

Example Options:

  const COMPASS_HEIGHT := 40.0  # Bar height in pixels   
  const TICK_MINOR_HEIGHT := 8.0  # Small tick marks   
  const TICK_MAJOR_HEIGHT := 16.0  # 15° tick marks   
  const TICK_CARDINAL_HEIGHT := 20.0  # N/E/S/W tick marks   
  const BG_COLOR := Color(0.0, 0.0, 0.0, 0.6)   
  const TICK_COLOR := Color(1.0, 1.0, 1.0, 0.6)   
  const TEXT_COLOR := Color(1.0, 1.0, 1.0, 1.0)

Additional Options

Fine tune your needs between Bronze, Silver and Gold tiers. Just a fancy way to say I've provided a few different options.


  • Silver Tier - Includes bronze tier features, Adds 'Points of Interest', Distance Tracking, POI label, icons and some other visual enhancements (rounded corners, scaling based on distance)
    • You Are Here!


License

  • MIT License - Use freely in commercial and non-commercial projects.

Support

  • Questions? Issues? Use the Poplava discord.
Updated 24 days ago
Published 28 days ago
StatusReleased
CategoryAssets
Authorpoplava
GenreShooter
Made withGodot
Tags3D, asset, compass, gdscript, Godot, Movement Shooter, navigation, Open World

Purchase

Buy Now$4.00 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $4 USD. You will get access to the following files:

nibble-compass-silver.zip 17 kB
Version 1.0.1

Leave a comment

Log in with itch.io to leave a comment.