godot-gdscript-3D-compass (silver edition)
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
| Input | Action |
|---|---|
| W/A/S/D | Move |
| Mouse | Look around |
| Shift | Sprint |
| Escape | Toggle mouse capture |
Quick Start
- Open project in Godot 4.5+
- Run the main scene
- Move around and watch the compass update!
Integration Guide
Using the Compass in Your Project
- Copy these files to your project:
scenes/ui/compass.tscnscripts/compass.gd
- Instance the compass in your UI:
var compass = preload("res://scenes/ui/compass.tscn").instantiate() $CanvasLayer.add_child(compass)
- 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.gdconstants 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.
- Bronze Tier - Includes the base directional compass
- 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!
- Gold Tier - Includes bronze & silver tier features. Adds moving POIs and elevation indicators.
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 |
| Status | Released |
| Category | Assets |
| Author | poplava |
| Genre | Shooter |
| Made with | Godot |
| Tags | 3D, 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.