Godot Version
4.7.1
Question
Just trying to figure out what be sensible approach to keep values in configfile for SettingsContainer in GameDev.tv character_controller project.
current snippet how it’s handle it : →
extends MarginContainer
signal exit()
@export_category("Mouse Sensitivity")
@export var very_low_sens: float = 0.00025
@export var low_sens: float = 0.0005
@export var medium_sens: float = 0.00075
@export var high_sens: float = 0.001
@export var very_high_sens: float = 0.00125
# A reference to the player for maintaining settings. ( Yes till you reload game :-) )
var _player: Player
func _ready() -> void:
# Default sensitivity to medium.
sensitivity_dropdown.select(sensitivity_dropdown.selected)
func _on_option_button_item_selected(index: int) -> void:
match index:
0:
_player.mouse_sensitivity = very_low_sens
1:
_player.mouse_sensitivity = low_sens
2:
_player.mouse_sensitivity = medium_sens
3:
_player.mouse_sensitivity = high_sens
4:
_player.mouse_sensitivity = very_high_sens
# When the player node changes apply the latest gameplay settings.
func update_player(player_in: Player) -> void:
_player = player_in
_on_option_button_item_selected(sensitivity_dropdown.selected)
This works while you play game, but keep those settings persistent, would I need to shift autoload and make new autoload for ConfigFile — Godot Engine (latest) documentation in English ?
currently this scene is autoload because it hold other settings like AA, FOV etc.
SavingSystem →
class_name SaveSystemClass
extends Node
func save_data() -> void:
var config = ConfigFile.new()
config.save("user://settings.cfg")
func load_data() -> void:
var config = ConfigFile.new()
var err = config.load("user://settings.cfg")
# If the file didn't load, ignore it.
if err != OK:
return
How would I need to adapt UI script and call save_data and load_data to keep setting persistent for this mouse_sensitivity ?
