This is the AutoLoad Script
extends Node
const SAVE_PATH = "res://settings.cfg"
var configFile = ConfigFile.new()
var edited
var fullScreen = false
var screenResX = 1600
var screenResY = 900
var fov = 90
var mouseSens = 0.3
var vsync = true
var fS
var sRX
var sRY
var fV
var mS
var vC
func _ready():
compare()
if edited == false:
default_settings()
else:
load_settings()
func default_settings():
configFile.set_value("Video","Screen", fullScreen)
configFile.set_value("Video","ScreenSizeX", screenResX)
configFile.set_value("Video","ScreenSizeY", screenResY)
configFile.set_value("Game", "FOV", fov)
configFile.set_value("Game", "MouseSensitivity", mouseSens)
configFile.set_value("Video","Vsync",vsync)
# Save file
configFile.save(SAVE_PATH)
func load_settings():
fS = configFile.get_value("Video","Screen", fullScreen)
sRX = configFile.get_value("Video","ScreenSizeX", screenResX)
sRY = configFile.get_value("Video","ScreenSizeY", screenResY)
fV = configFile.get_value("Game", "FOV", fov)
mS = configFile.get_value("Game", "MouseSensitivity", mouseSens)
vC = configFile.get_value("Video","Vsync",vsync)
OS.set_window_fullscreen(fS)
OS.set_window_size(Vector2(sRX, sRY))
OS.vsync_enabled = vC
func compare():
if fS == fullScreen:
edited = true
elif sRX == screenResX:
edited = true
elif sRY == screenResY:
edited = true
elif fV == fov:
edited = true
elif mS == mouseSens:
edited = true
elif vC == vsync:
edited = true
This is Settings script, it is attached to a Node2D
extends Node2D
const SAVE_PATH = "res://settings.cfg"
var configFile = ConfigFile.new()
var fullScreen = configFile.get_value("Video", "Screen")
var screenResX = configFile.get_value("Video", "ScreenSizeX")
var screenResY = configFile.get_value("Video", "ScreenSizeY")
var fov = configFile.get_value("Game", "FOV")
var mouseSensU = 3
var mouseSens = configFile.get_value("Game", "MouseSensitivity")
var vsync = configFile.get_value("Video","Vsync")
var fS
var sRX
var sRY
var fV
var mS
var vC
func _ready():
load_settings()
func save_settings():
# Add values to file
configFile.set_value("Video","Screen", fullScreen)
configFile.set_value("Video","ScreenSizeX", screenResX)
configFile.set_value("Video","ScreenSizeY", screenResY)
configFile.set_value("Game", "FOV", fov)
configFile.set_value("Game", "MouseSensitivity", mouseSens)
configFile.set_value("Video","Vsync",vsync)
# Save file
configFile.save(SAVE_PATH)
print("SAVE WORKED")
func _on_FullScreen_toggled(button_pressed):
fullScreen = !fullScreen
print("FULLSCREEN WORKED")
func load_settings():
fS = configFile.get_value("Video","Screen", fullScreen)
sRX = configFile.get_value("Video","ScreenSizeX", screenResX)
sRY = configFile.get_value("Video","ScreenSizeY", screenResY)
fV = configFile.get_value("Game", "FOV", fov)
mS = configFile.get_value("Game", "MouseSensitivity", mouseSens)
vC = configFile.get_value("Video","Vsync",vsync)
OS.set_window_fullscreen(fS)
OS.set_window_size(Vector2(sRX, sRY))
OS.vsync_enabled = vC
func _on_SRX_text_entered(new_text):
screenResX = new_text
print("SCREENRES X WORKED")
func _on_SRY_text_entered(new_text):
screenResY = new_text
print("SCREENRESY WORKED")
func _on_FOVNUM_text_entered(new_text):
fov = new_text
print("FOV WORKED")
func _on_MouseSensNUM_text_entered(new_text):
mouseSensU = new_text
print("MOUSE SENSITIVITY WORKED")
func _on_VSYNC_toggled(button_pressed):
vsync = !vsync
print("VSYNC WORKED")
func _on_SAVE_pressed():
save_settings()
print("SAVE WORKED")
func _on_APPLY_pressed():
load_settings()
print("APPLY WORKED")
This was the error we got when we ran the settings script, why?
Invalid type in function 'set_window_fullscreen' in base '_OS'. Cannot convert argument 1 from Nil to bool.