That’s alright. I already added the cleanup method cleanup_files(). Same counts for the extract method which extracts depending on the archive type.
Hello again
hope you’ve been well. I’ve finally gotten some free time again. That code looks amazing! 
I just gave it a spin and there appears to be something wrong around the cleanup cache area of the code, but not sure what the issue is. Will do a little more googling and see if I can figure it out…
Start monitoring process.
Cleaning up old files
find: ‘/media/storage/Games/Games/Cache/*’: No such file or directory
Extracting Game from Archive
No existing ROM image found, extracting...
/media/storage/Games/Utilities/Lutris/extraction_test_03.sh: line 57: [: too many arguments
'/media/storage/test/Minecraft (World) (En,Ja,Fr,De,Es,It,Nl,Pt,Zh,Ko,Ru) (Rev 1).7z' is not a valid file
Running Yuzu with /media/storage/Games/Games/Cache/Minecraft.nsp does not exist. Testing for xci...
Unhandled SIGSEGV at rip 0x0055ba11fd468e
/media/storage/Games/Utilities/Lutris/extraction_test_03.sh: line 122: 114450 Segmentation fault ~/.local/share/lutris/runners/yuzu/yuzu "$final_rom_file_name"
Monitored process exited.
Initial process has exited (return code: 35584)
All processes have quit
Exit with return code 35584
DEBUG 2021-11-19 21:20:03,016 [command.on_stop:193]:Process 114444 has terminated with code 35584
Welcome back!
I hope so too.
Good for you.
Thank you! 
The error is because of the spaces in the file name. These must be escaped with \, for example This\ is\ a\ test or quotes need to be placed around the path. This last one is better for scripting.
The function now looks like this:
#
# Extract. Detect format and use corresponding dearchiver.
# $1: archive
# $2: target path
#
extract_archive () {
if [ -f "$1" ] ; then
case $1 in
*.rar) unrar x -y "$1" "$2" ;;
*.zip) unzip -o "$1" -d "$2" ;;
*.7z) 7z x -o"$2" "$1" -y ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
Is the path /media/storage/Games/Games/Cache/* correct? The find method reports that the path doesn’t exist.
This is the script updated with the new extract_archive function. Have fun! 
#!/bin/bash
#
# A function for testing for existence of ROMS.
# $1: extraction directory
# $2: filename without extension
#
check_for_existing_roms () {
local extraction_dir=$1
local filename_no_ext=$2
# Set a variable to the extension we want to test. We begin with NSP.
local ext_to_test="nsp"
# We also set the final_rom variable to an empty string.
local final_rom_file=""
# We now create a FILE variable which contains the target path and the NSP filename.
# THE LINE BELOW WAS CHANGED
local FILE=$extraction_dir$filename_no_ext.$ext_to_test
# We now test if this file exists.
if [ -f "$FILE" ]; then
# It exists so we set the final_rom_file to this NSP ROM file.
local final_rom_file=$FILE
else
echo "$FILE does not exist. Testing for xci..."
# The NSP wasn't found. So we set the ext_to_test variable to XCI.
local ext_to_test="xci"
# The FILE variable is now set to the target path and the XCI ROM image filename.
# THE LINE BELOW WAS CHANGED
local FILE=$extraction_dir$filename_no_ext.$ext_to_test
# We test again for existence of the XCI ROM file.
if [ -f "$FILE" ]; then
# It exists so we set final_rom_file to this file.
local final_rom_file=$FILE
fi
fi
local func_result=$final_rom_file
echo "$func_result"
}
#
# Clean up files in directory
# $1: directory
#
cleanup_files () {
if [ -d $1 ]; then
find $1* -atime +7 -exec rm {} \;
fi
}
#
# Extract. Detect format and use corresponding dearchiver.
# $1: archive
# $2: target path
#
extract_archive () {
if [ -f "$1" ] ; then
case $1 in
*.rar) unrar x -y "$1" "$2" ;;
*.zip) unzip -o "$1" -d "$2" ;;
*.7z) 7z x -o"$2" "$1" -y ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# Set a variable with the target directory so you don't have to go through all of the script when this location changes...
#extraction_dir="/media/storage/extract_test/cache/"
extraction_dir="/tmp/extracttest/cache/"
# Filename parsing. Create variables which hold parts of the filename.
# Full path and filename
# The filename
# The filename without extension
# Removed the one which gets just the extension
full_filename=$1
# path + filename.7z
filename="${full_filename##*/}"
# filename.7z
filename_no_ext=${filename%.7z}
# filename
echo "Cleaning up old files"
cleanup_files $extraction_dir
echo "Extracting Game from Archive"
# Extract the provided 7zip file...
# But first check for existing ROM...
# Check for nsp or xci. After extraction there is either a NSP or a XCI file right?
# So we need to test if one of those files exist.
# Otherwise we can't call Yuzu.
final_rom_file_name=$(check_for_existing_roms $extraction_dir $filename_no_ext)
if [ "$final_rom_file" == "" ]; then
echo "No existing ROM image found, extracting..."
extract_archive "$1" "$extraction_dir"
# Call again to check whether the extraction was succesful...
final_rom_file_name=$(check_for_existing_roms $extraction_dir $filename_no_ext)
else
echo "ROM image already in target location."
fi
# In both cases we called the function so now we can go straight to the Run part of the script...
# Run...
# Now we just test whether the final_rom_file is not empty.
# THE LINE BELOW WAS CHANGED (AGAIN)
if [ "final_rom_file_name" != "" ]; then
echo "Running Yuzu with $final_rom_file_name"
# Its not empty so we can run Yuzu.
~/.local/share/lutris/runners/yuzu/yuzu "$final_rom_file_name"
#echo "Final rom file: $final_rom_file_name"
else
# Or maybe not...
# It is empty so both files don't exist.
echo "ROM file not found!"
fi