FISSからPapyrusUtilに移行する

環境構築

古いFISSから新しいPapyrusUtilに移行して動作を安定させます。

FISSはMCMの設定をプロファイルとして保存できるようにするフレームワークです。今はPapyrusUtilという完全上位互換のフレームワークがありますので、FISSを使う理由はなくなりました。

FISSの問題点

  • 遅い。
  • 排他制御できていないのでCTDする。
  • コード量が少し増える。

2つのModが同時にFISSを呼び出すとCTDします。MCMでポチポチしている分には問題になりませんが、ニューゲーム時に自動でロードさせたり、MCM以外でも使いたいとなると、FISSでは無理です。また、Skyrim Souls環境でも動作が不安定な印象です。

Widget ModをPapyrus Utilに移行する

Widget ModはHUD上にウィジェットを表示してくれる便利なModです。SkyHUDなどでインターフェイスにこだわるには必須のModと言えます。

残念ながらプロファイルの保存にFISSを使用しているため、MCMでMaintenanceのページを開くだけでCTDしてしまいます。

手を加えるのは以下のファイルになります。

scripts\source\wm_mcmscript.psc

FISSの読み込みを停止します。

Widget Mod (papyrus)

Scriptname WM_MCMScript extends SKI_ConfigBase

;Import FISSFactory
String JsonFilename = "WidgetMod.json"

GlobalVariable Property WM_EssentialCounterGlobal Auto

MaintenanceのページをPapyrusUtil仕様に書き換えます。

Widget Mod (papyrus)

ElseIf (Page == "Maintenance")
        ;/
        SetCursorFillMode(TOP_TO_BOTTOM)
        SetCursorPosition(0)
        AddHeaderOption("General Settings")
        UpdateTimerInt = AddSliderOption("Update Timer Interval", UpdateScript.UpdateTimer, "{0} sec.")
        
        FISSInterface fiss = FISSFactory.getFISS()
        Int FissFlag = OPTION_FLAG_NONE
        Int LoadSettingsFlag = OPTION_FLAG_NONE
        If !fiss
            FissFlag = OPTION_FLAG_DISABLED
            LoadSettingsFlag = OPTION_FLAG_DISABLED
        Else
            fiss.beginLoad("WMUserSettings.xml")
            If fiss.endLoad() != ""
                LoadSettingsFlag = OPTION_FLAG_DISABLED
            EndIf
        EndIf
        
        FissLoad = AddTextOption("Load User Settings?", "Do it!", LoadSettingsFlag)
        FissSave = AddTextOption("Save User Settings?", "Do it!", FissFlag)
        /;


        FissLoad = AddTextOption("Load User Settings?", "Do it!")
        FissSave = AddTextOption("Save User Settings?", "Do it!")
    EndIf

セーブボタン、ロードボタンが押された時の動作をParyrus仕様に書き換えます。

Widget Mod (papyrus)

ElseIf (Option == FissLoad)
        ;/
        FISSInterface fiss = FISSFactory.getFISS()
        If fiss
            fiss.beginLoad("WMUserSettings.xml")
            SetTextOptionValue(Option, "Done!")
            LoadUserPreset()
        Else
            Debug.Messagebox("FISS not found, load aborted!")
        EndIf
        /;

        LoadUserPreset()
        SetTextOptionValue(Option, "Done!")
    ElseIf (Option == FissSave)
        ;/
        FISSInterface fiss = FISSFactory.getFISS()
        fiss.beginLoad("WMUserSettings.xml")
        If fiss
            SetTextOptionValue(Option, "Done!")
            SaveUserPreset()
        Else
            Debug.Messagebox("FISS not found, save aborted!")
        EndIf
        /;

        SaveUserPreset()
        SetTextOptionValue(Option, "Done!")
    EndIf

セーブ処理、ロード処理をParyrus仕様に書き換えます。

Widget Mod (papyrus)

Function LoadUserPreset()
    ;/
    FISSInterface fiss = FISSFactory.getFISS()
    fiss.beginLoad("WMUserSettings.xml")
    
    ArrowWidget = fiss.loadInt("FISS_ArrowWidget")
    ArrowScript.Visible = fiss.loadBool("FISS_ArrowWidgetScript")
    ArrowPosX = fiss.loadInt("FISS_ArrowPosX")
    ArrowScript.X = fiss.loadFloat("FISS_ArrowPosXScript")
    ArrowPosY = fiss.loadInt("FISS_ArrowPosY")
    ArrowScript.Y = fiss.loadFloat("FISS_ArrowPosYScript")
    ArrowAlpha = fiss.loadInt("FISS_ArrowAlpha")
    ArrowScript.Alpha = fiss.loadFloat("FISS_ArrowAlphaScript")
    ArrowScale = fiss.loadInt("FISS_ArrowScale")
    ArrowScript.Size = fiss.loadInt("FISS_ArrowScaleScript")
    WeightWidget = fiss.loadInt("FISS_WeightWidget")
    WeightScript.Visible = fiss.loadBool("FISS_WeightWidgetScript")
    WeightPosX = fiss.loadInt("FISS_WeightPosX")
    WeightScript.X = fiss.loadFloat("FISS_WeightPosXScript")
    WeightPosY = fiss.loadInt("FISS_WeightPosY")
    WeightScript.Y = fiss.loadFloat("FISS_WeightPosYScript")
    WeightAlpha = fiss.loadInt("FISS_WeightAlpha")
    WeightScript.Alpha = fiss.loadFloat("FISS_WeightAlphaScript")
    WeightScale = fiss.loadInt("FISS_WeightScale")
    WeightScript.Size = fiss.loadInt("FISS_WeightScaleScript")
    GoldWidget = fiss.loadInt("FISS_GoldWidget")
    GoldScript.Visible = fiss.loadBool("FISS_GoldWidgetScript")
    GoldPosX = fiss.loadInt("FISS_GoldPosX")
    GoldScript.X = fiss.loadFloat("FISS_GoldPosXScript")
    GoldPosY = fiss.loadInt("FISS_GoldPosY")
    GoldScript.Y = fiss.loadFloat("FISS_GoldPosYScript")
    GoldAlpha = fiss.loadInt("FISS_GoldAlpha")
    GoldScript.Alpha = fiss.loadFloat("FISS_GoldAlphaScript")
    GoldScale = fiss.loadInt("FISS_GoldScale")
    GoldScript.Size = fiss.loadInt("FISS_GoldScaleScript")
    BountyWidget = fiss.loadInt("FISS_BountyWidget")
    BountyScript.Visible = fiss.loadBool("FISS_BountyWidgetScript")
    BountyPosX = fiss.loadInt("FISS_BountyPosX")
    BountyScript.X = fiss.loadFloat("FISS_BountyPosXScript")
    BountyPosY = fiss.loadInt("FISS_BountyPosY")
    BountyScript.Y = fiss.loadFloat("FISS_BountyPosYScript")
    BountyAlpha = fiss.loadInt("FISS_BountyAlpha")
    BountyScript.Alpha = fiss.loadFloat("FISS_BountyAlphaScript")
    BountyScale = fiss.loadInt("FISS_BountyScale")
    BountyScript.Size = fiss.loadInt("FISS_BountyScaleScript")
    SkillWidget = fiss.loadInt("FISS_SkillWidget")
    SkillScript.Visible = fiss.loadBool("FISS_SkillWidgetScript")
    SkillPosX = fiss.loadInt("FISS_SkillPosX")
    SkillScript.X = fiss.loadFloat("FISS_SkillPosXScript")
    SkillPosY = fiss.loadInt("FISS_SkillPosY")
    SkillScript.Y = fiss.loadFloat("FISS_SkillPosYScript")
    SkillAlpha = fiss.loadInt("FISS_SkillAlpha")
    SkillScript.Alpha = fiss.loadFloat("FISS_SkillAlphaScript")
    SkillScale = fiss.loadInt("FISS_SkillScale")
    SkillScript.Size = fiss.loadInt("FISS_SkillScaleScript")
    SpeedWidget = fiss.loadInt("FISS_SpeedWidget")
    SpeedScript.Visible = fiss.loadBool("FISS_SpeedWidgetScript")
    SpeedPosX = fiss.loadInt("FISS_SpeedPosX")
    SpeedScript.X = fiss.loadFloat("FISS_SpeedPosXScript")
    SpeedPosY = fiss.loadInt("FISS_SpeedPosY")
    SpeedScript.Y = fiss.loadFloat("FISS_SpeedPosYScript")
    SpeedAlpha = fiss.loadInt("FISS_SpeedAlpha")
    SpeedScript.Alpha = fiss.loadFloat("FISS_SpeedAlphaScript")
    SpeedScale = fiss.loadInt("FISS_SpeedScale")
    SpeedScript.Size = fiss.loadInt("FISS_SpeedScaleScript")
    LockpickWidget = fiss.loadInt("FISS_LockpickWidget")
    LockpickScript.Visible = fiss.loadBool("FISS_LockpickWidgetScript")
    LockpickPosX = fiss.loadInt("FISS_LockpickPosX")
    LockpickScript.X = fiss.loadFloat("FISS_LockpickPosXScript")
    LockpickPosY = fiss.loadInt("FISS_LockpickPosY")
    LockpickScript.Y = fiss.loadFloat("FISS_LockpickPosYScript")
    LockpickAlpha = fiss.loadInt("FISS_LockpickAlpha")
    LockpickScript.Alpha = fiss.loadFloat("FISS_LockpickAlphaScript")
    LockpickScale = fiss.loadInt("FISS_LockpickScale")
    LockpickScript.Size = fiss.loadInt("FISS_LockpickScaleScript")
    LightWidget = fiss.loadInt("FISS_LightWidget")
    LightScript.Visible = fiss.loadBool("FISS_LightWidgetScript")
    LightPosX = fiss.loadInt("FISS_LightPosX")
    LightScript.X = fiss.loadFloat("FISS_LightPosXScript")
    LightPosY = fiss.loadInt("FISS_LightPosY")
    LightScript.Y = fiss.loadFloat("FISS_LightPosYScript")
    LightAlpha = fiss.loadInt("FISS_LightAlpha")
    LightScript.Alpha = fiss.loadFloat("FISS_LightAlphaScript")
    LightScale = fiss.loadInt("FISS_LightScale")
    LightScript.Size = fiss.loadInt("FISS_LightScaleScript")
    HotkeyWidget = fiss.loadInt("FISS_HotkeyWidget")
    HotkeyScript.Visible = fiss.loadBool("FISS_HotkeyWidgetScript")
    HotkeyPosX = fiss.loadInt("FISS_HotkeyPosX")
    HotkeyScript.X = fiss.loadFloat("FISS_HotkeyPosXScript")
    HotkeyPosY = fiss.loadInt("FISS_HotkeyPosY")
    HotkeyScript.Y = fiss.loadFloat("FISS_HotkeyPosYScript")
    HotkeyAlpha = fiss.loadInt("FISS_HotkeyAlpha")
    HotkeyScript.Alpha = fiss.loadFloat("FISS_HotkeyAlphaScript")
    HotkeyScale = fiss.loadInt("FISS_HotkeyScale")
    HotkeyScript.Size = fiss.loadInt("FISS_HotkeyScaleScript")
    HorseWidget = fiss.loadInt("FISS_HorseWidget")
    HorseScript.Visible = fiss.loadBool("FISS_HorseWidgetScript")
    HorsePosX = fiss.loadInt("FISS_HorsePosX")
    HorseScript.X = fiss.loadFloat("FISS_HorsePosXScript")
    HorsePosY = fiss.loadInt("FISS_HorsePosY")
    HorseScript.Y = fiss.loadFloat("FISS_HorsePosYScript")
    HorseAlpha = fiss.loadInt("FISS_HorseAlpha")
    HorseScript.Alpha = fiss.loadFloat("FISS_HorseAlphaScript")
    HorseScale = fiss.loadInt("FISS_HorseScale")
    HorseScript.Size = fiss.loadInt("FISS_HorseScaleScript")
    FollowerWidget = fiss.loadInt("FISS_FollowerWidget")
    FollowerScript.Visible = fiss.loadBool("FISS_FollowerWidgetScript")
    FollowerPosX = fiss.loadInt("FISS_FollowerPosX")
    FollowerScript.X = fiss.loadFloat("FISS_FollowerPosXScript")
    FollowerPosY = fiss.loadInt("FISS_FollowerPosY")
    FollowerScript.Y = fiss.loadFloat("FISS_FollowerPosYScript")
    FollowerAlpha = fiss.loadInt("FISS_FollowerAlpha")
    FollowerScript.Alpha = fiss.loadFloat("FISS_FollowerAlphaScript")
    FollowerScale = fiss.loadInt("FISS_FollowerScale")
    FollowerScript.Size = fiss.loadInt("FISS_FollowerScaleScript")
    AttributeWidget = fiss.loadInt("FISS_AttributeWidget")
    AttributeScript.Visible = fiss.loadBool("FISS_AttributeWidgetScript")
    AttributePosX = fiss.loadInt("FISS_AttributePosX")
    AttributeScript.X = fiss.loadFloat("FISS_AttributePosXScript")
    AttributePosY = fiss.loadInt("FISS_AttributePosY")
    AttributeScript.Y = fiss.loadFloat("FISS_AttributePosYScript")
    AttributeAlpha = fiss.loadInt("FISS_AttributeAlpha")
    AttributeScript.Alpha = fiss.loadFloat("FISS_AttributeAlphaScript")
    AttributeScale = fiss.loadInt("FISS_AttributeScale")
    AttributeScript.Size = fiss.loadInt("FISS_AttributeScaleScript")
    EssentialWidget = fiss.loadInt("FISS_EssentialWidget")
    EssentialScript.Visible = fiss.loadBool("FISS_EssentialWidgetScript")
    EssentialPosX = fiss.loadInt("FISS_EssentialPosX")
    EssentialScript.X = fiss.loadFloat("FISS_EssentialPosXScript")
    EssentialPosY = fiss.loadInt("FISS_EssentialPosY")
    EssentialScript.Y = fiss.loadFloat("FISS_EssentialPosYScript")
    EssentialAlpha = fiss.loadInt("FISS_EssentialAlpha")
    EssentialScript.Alpha = fiss.loadFloat("FISS_EssentialAlphaScript")
    EssentialScale = fiss.loadInt("FISS_EssentialScale")
    EssentialScript.Size = fiss.loadInt("FISS_EssentialScaleScript")
    
    String loadResult = fiss.endLoad()
    /;


    ArrowWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowWidget")
    ArrowScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowWidgetScript")
    ArrowPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowPosX")
    ArrowScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_ArrowPosXScript")
    ArrowPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowPosY")
    ArrowScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_ArrowPosYScript")
    ArrowAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowAlpha")
    ArrowScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_ArrowAlphaScript")
    ArrowScale = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowScale")
    ArrowScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_ArrowScaleScript")
    WeightWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightWidget")
    WeightScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightWidgetScript")
    WeightPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightPosX")
    WeightScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_WeightPosXScript")
    WeightPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightPosY")
    WeightScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_WeightPosYScript")
    WeightAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightAlpha")
    WeightScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_WeightAlphaScript")
    WeightScale = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightScale")
    WeightScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_WeightScaleScript")
    GoldWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldWidget")
    GoldScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldWidgetScript")
    GoldPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldPosX")
    GoldScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_GoldPosXScript")
    GoldPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldPosY")
    GoldScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_GoldPosYScript")
    GoldAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldAlpha")
    GoldScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_GoldAlphaScript")
    GoldScale = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldScale")
    GoldScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_GoldScaleScript")
    BountyWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyWidget")
    BountyScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyWidgetScript")
    BountyPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyPosX")
    BountyScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_BountyPosXScript")
    BountyPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyPosY")
    BountyScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_BountyPosYScript")
    BountyAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyAlpha")
    BountyScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_BountyAlphaScript")
    BountyScale = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyScale")
    BountyScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_BountyScaleScript")
    SkillWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillWidget")
    SkillScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillWidgetScript")
    SkillPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillPosX")
    SkillScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_SkillPosXScript")
    SkillPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillPosY")
    SkillScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_SkillPosYScript")
    SkillAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillAlpha")
    SkillScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_SkillAlphaScript")
    SkillScale = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillScale")
    SkillScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_SkillScaleScript")
    SpeedWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedWidget")
    SpeedScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedWidgetScript")
    SpeedPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedPosX")
    SpeedScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_SpeedPosXScript")
    SpeedPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedPosY")
    SpeedScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_SpeedPosYScript")
    SpeedAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedAlpha")
    SpeedScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_SpeedAlphaScript")
    SpeedScale = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedScale")
    SpeedScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_SpeedScaleScript")
    LockpickWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickWidget")
    LockpickScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickWidgetScript")
    LockpickPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickPosX")
    LockpickScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_LockpickPosXScript")
    LockpickPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickPosY")
    LockpickScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_LockpickPosYScript")
    LockpickAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickAlpha")
    LockpickScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_LockpickAlphaScript")
    LockpickScale = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickScale")
    LockpickScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_LockpickScaleScript")
    LightWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_LightWidget")
    LightScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_LightWidgetScript")
    LightPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_LightPosX")
    LightScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_LightPosXScript")
    LightPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_LightPosY")
    LightScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_LightPosYScript")
    LightAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_LightAlpha")
    LightScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_LightAlphaScript")
    LightScale = JsonUtil.GetIntValue(JsonFilename, "FISS_LightScale")
    LightScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_LightScaleScript")
    HotkeyWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyWidget")
    HotkeyScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyWidgetScript")
    HotkeyPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyPosX")
    HotkeyScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_HotkeyPosXScript")
    HotkeyPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyPosY")
    HotkeyScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_HotkeyPosYScript")
    HotkeyAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyAlpha")
    HotkeyScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_HotkeyAlphaScript")
    HotkeyScale = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyScale")
    HotkeyScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_HotkeyScaleScript")
    HorseWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_HorseWidget")
    HorseScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_HorseWidgetScript")
    HorsePosX = JsonUtil.GetIntValue(JsonFilename, "FISS_HorsePosX")
    HorseScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_HorsePosXScript")
    HorsePosY = JsonUtil.GetIntValue(JsonFilename, "FISS_HorsePosY")
    HorseScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_HorsePosYScript")
    HorseAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_HorseAlpha")
    HorseScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_HorseAlphaScript")
    HorseScale = JsonUtil.GetIntValue(JsonFilename, "FISS_HorseScale")
    HorseScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_HorseScaleScript")
    FollowerWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerWidget")
    FollowerScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerWidgetScript")
    FollowerPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerPosX")
    FollowerScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_FollowerPosXScript")
    FollowerPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerPosY")
    FollowerScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_FollowerPosYScript")
    FollowerAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerAlpha")
    FollowerScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_FollowerAlphaScript")
    FollowerScale = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerScale")
    FollowerScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_FollowerScaleScript")
    AttributeWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributeWidget")
    AttributeScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributeWidgetScript")
    AttributePosX = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributePosX")
    AttributeScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_AttributePosXScript")
    AttributePosY = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributePosY")
    AttributeScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_AttributePosYScript")
    AttributeAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributeAlpha")
    AttributeScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_AttributeAlphaScript")
    AttributeScale = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributeScale")
    AttributeScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_AttributeScaleScript")
    EssentialWidget = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialWidget")
    EssentialScript.Visible = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialWidgetScript")
    EssentialPosX = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialPosX")
    EssentialScript.X = JsonUtil.GetFloatValue(JsonFilename, "FISS_EssentialPosXScript")
    EssentialPosY = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialPosY")
    EssentialScript.Y = JsonUtil.GetFloatValue(JsonFilename, "FISS_EssentialPosYScript")
    EssentialAlpha = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialAlpha")
    EssentialScript.Alpha = JsonUtil.GetFloatValue(JsonFilename, "FISS_EssentialAlphaScript")
    EssentialScale = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialScale")
    EssentialScript.Size = JsonUtil.GetIntValue(JsonFilename, "FISS_EssentialScaleScript")
EndFunction

Function SaveUserPreset()
    ;/
    FISSInterface fiss = FISSFactory.getFISS()
    fiss.beginSave("WMUserSettings.xml", " Widget Mod")
    
    fiss.saveInt("FISS_ArrowWidget", ArrowWidget)
    fiss.saveBool("FISS_ArrowWidgetScript", ArrowScript.Visible)
    fiss.saveInt("FISS_ArrowPosX", ArrowPosX)
    fiss.saveFloat("FISS_ArrowPosXScript", ArrowScript.X)
    fiss.saveInt("FISS_ArrowPosY", ArrowPosY)
    fiss.saveFloat("FISS_ArrowPosYScript", ArrowScript.Y)
    fiss.saveInt("FISS_ArrowAlpha", ArrowAlpha)
    fiss.saveFloat("FISS_ArrowAlphaScript", ArrowScript.Alpha)
    fiss.saveInt("FISS_ArrowScale", ArrowScale)
    fiss.saveInt("FISS_ArrowScaleScript", ArrowScript.Size)
    fiss.saveInt("FISS_WeightWidget", WeightWidget)
    fiss.saveBool("FISS_WeightWidgetScript", WeightScript.Visible)
    fiss.saveInt("FISS_WeightPosX", WeightPosX)
    fiss.saveFloat("FISS_WeightPosXScript", WeightScript.X)
    fiss.saveInt("FISS_WeightPosY", WeightPosY)
    fiss.saveFloat("FISS_WeightPosYScript", WeightScript.Y)
    fiss.saveInt("FISS_WeightAlpha", WeightAlpha)
    fiss.saveFloat("FISS_WeightAlphaScript", WeightScript.Alpha)
    fiss.saveInt("FISS_WeightScale", WeightScale)
    fiss.saveInt("FISS_WeightScaleScript", WeightScript.Size)
    fiss.saveInt("FISS_GoldWidget", GoldWidget)
    fiss.saveBool("FISS_GoldWidgetScript", GoldScript.Visible)
    fiss.saveInt("FISS_GoldPosX", GoldPosX)
    fiss.saveFloat("FISS_GoldPosXScript", GoldScript.X)
    fiss.saveInt("FISS_GoldPosY", GoldPosY)
    fiss.saveFloat("FISS_GoldPosYScript", GoldScript.Y)
    fiss.saveInt("FISS_GoldAlpha", GoldAlpha)
    fiss.saveFloat("FISS_GoldAlphaScript", GoldScript.Alpha)
    fiss.saveInt("FISS_GoldScale", GoldScale)
    fiss.saveInt("FISS_GoldScaleScript", GoldScript.Size)
    fiss.saveInt("FISS_BountyWidget", BountyWidget)
    fiss.saveBool("FISS_BountyWidgetScript", BountyScript.Visible)
    fiss.saveInt("FISS_BountyPosX", BountyPosX)
    fiss.saveFloat("FISS_BountyPosXScript", BountyScript.X)
    fiss.saveInt("FISS_BountyPosY", BountyPosY)
    fiss.saveFloat("FISS_BountyPosYScript", BountyScript.Y)
    fiss.saveInt("FISS_BountyAlpha", BountyAlpha)
    fiss.saveFloat("FISS_BountyAlphaScript", BountyScript.Alpha)
    fiss.saveInt("FISS_BountyScale", BountyScale)
    fiss.saveInt("FISS_BountyScaleScript", BountyScript.Size)
    fiss.saveInt("FISS_SkillWidget", SkillWidget)
    fiss.saveBool("FISS_SkillWidgetScript", SkillScript.Visible)
    fiss.saveInt("FISS_SkillPosX", SkillPosX)
    fiss.saveFloat("FISS_SkillPosXScript", SkillScript.X)
    fiss.saveInt("FISS_SkillPosY", SkillPosY)
    fiss.saveFloat("FISS_SkillPosYScript", SkillScript.Y)
    fiss.saveInt("FISS_SkillAlpha", SkillAlpha)
    fiss.saveFloat("FISS_SkillAlphaScript", SkillScript.Alpha)
    fiss.saveInt("FISS_SkillScale", SkillScale)
    fiss.saveInt("FISS_SkillScaleScript", SkillScript.Size)
    fiss.saveInt("FISS_SpeedWidget", SpeedWidget)
    fiss.saveBool("FISS_SpeedWidgetScript", SpeedScript.Visible)
    fiss.saveInt("FISS_SpeedPosX", SpeedPosX)
    fiss.saveFloat("FISS_SpeedPosXScript", SpeedScript.X)
    fiss.saveInt("FISS_SpeedPosY", SpeedPosY)
    fiss.saveFloat("FISS_SpeedPosYScript", SpeedScript.Y)
    fiss.saveInt("FISS_SpeedAlpha", SpeedAlpha)
    fiss.saveFloat("FISS_SpeedAlphaScript", SpeedScript.Alpha)
    fiss.saveInt("FISS_SpeedScale", SpeedScale)
    fiss.saveInt("FISS_SpeedScaleScript", SpeedScript.Size)
    fiss.saveInt("FISS_LockpickWidget", LockpickWidget)
    fiss.saveBool("FISS_LockpickWidgetScript", LockpickScript.Visible)
    fiss.saveInt("FISS_LockpickPosX", LockpickPosX)
    fiss.saveFloat("FISS_LockpickPosXScript", LockpickScript.X)
    fiss.saveInt("FISS_LockpickPosY", LockpickPosY)
    fiss.saveFloat("FISS_LockpickPosYScript", LockpickScript.Y)
    fiss.saveInt("FISS_LockpickAlpha", LockpickAlpha)
    fiss.saveFloat("FISS_LockpickAlphaScript", LockpickScript.Alpha)
    fiss.saveInt("FISS_LockpickScale", LockpickScale)
    fiss.saveInt("FISS_LockpickScaleScript", LockpickScript.Size)
    fiss.saveInt("FISS_LightWidget", LightWidget)
    fiss.saveBool("FISS_LightWidgetScript", LightScript.Visible)
    fiss.saveInt("FISS_LightPosX", LightPosX)
    fiss.saveFloat("FISS_LightPosXScript", LightScript.X)
    fiss.saveInt("FISS_LightPosY", LightPosY)
    fiss.saveFloat("FISS_LightPosYScript", LightScript.Y)
    fiss.saveInt("FISS_LightAlpha", LightAlpha)
    fiss.saveFloat("FISS_LightAlphaScript", LightScript.Alpha)
    fiss.saveInt("FISS_LightScale", LightScale)
    fiss.saveInt("FISS_LightScaleScript", LightScript.Size)
    fiss.saveInt("FISS_HotkeyWidget", HotkeyWidget)
    fiss.saveBool("FISS_HotkeyWidgetScript", HotkeyScript.Visible)
    fiss.saveInt("FISS_HotkeyPosX", HotkeyPosX)
    fiss.saveFloat("FISS_HotkeyPosXScript", HotkeyScript.X)
    fiss.saveInt("FISS_HotkeyPosY", HotkeyPosY)
    fiss.saveFloat("FISS_HotkeyPosYScript", HotkeyScript.Y)
    fiss.saveInt("FISS_HotkeyAlpha", HotkeyAlpha)
    fiss.saveFloat("FISS_HotkeyAlphaScript", HotkeyScript.Alpha)
    fiss.saveInt("FISS_HotkeyScale", HotkeyScale)
    fiss.saveInt("FISS_HotkeyScaleScript", HotkeyScript.Size)
    fiss.saveInt("FISS_HorseWidget", HorseWidget)
    fiss.saveBool("FISS_HorseWidgetScript", HorseScript.Visible)
    fiss.saveInt("FISS_HorsePosX", HorsePosX)
    fiss.saveFloat("FISS_HorsePosXScript", HorseScript.X)
    fiss.saveInt("FISS_HorsePosY", HorsePosY)
    fiss.saveFloat("FISS_HorsePosYScript", HorseScript.Y)
    fiss.saveInt("FISS_HorseAlpha", HorseAlpha)
    fiss.saveFloat("FISS_HorseAlphaScript", HorseScript.Alpha)
    fiss.saveInt("FISS_HorseScale", HorseScale)
    fiss.saveInt("FISS_HorseScaleScript", HorseScript.Size)
    fiss.saveInt("FISS_FollowerWidget", FollowerWidget)
    fiss.saveBool("FISS_FollowerWidgetScript", FollowerScript.Visible)
    fiss.saveInt("FISS_FollowerPosX", FollowerPosX)
    fiss.saveFloat("FISS_FollowerPosXScript", FollowerScript.X)
    fiss.saveInt("FISS_FollowerPosY", FollowerPosY)
    fiss.saveFloat("FISS_FollowerPosYScript", FollowerScript.Y)
    fiss.saveInt("FISS_FollowerAlpha", FollowerAlpha)
    fiss.saveFloat("FISS_FollowerAlphaScript", FollowerScript.Alpha)
    fiss.saveInt("FISS_FollowerScale", FollowerScale)
    fiss.saveInt("FISS_FollowerScaleScript", FollowerScript.Size)
    fiss.saveInt("FISS_AttributeWidget", AttributeWidget)
    fiss.saveBool("FISS_AttributeWidgetScript", AttributeScript.Visible)
    fiss.saveInt("FISS_AttributePosX", AttributePosX)
    fiss.saveFloat("FISS_AttributePosXScript", AttributeScript.X)
    fiss.saveInt("FISS_AttributePosY", AttributePosY)
    fiss.saveFloat("FISS_AttributePosYScript", AttributeScript.Y)
    fiss.saveInt("FISS_AttributeAlpha", AttributeAlpha)
    fiss.saveFloat("FISS_AttributeAlphaScript", AttributeScript.Alpha)
    fiss.saveInt("FISS_AttributeScale", AttributeScale)
    fiss.saveInt("FISS_AttributeScaleScript", AttributeScript.Size)
    fiss.saveInt("FISS_EssentialWidget", EssentialWidget)
    fiss.saveBool("FISS_EssentialWidgetScript", EssentialScript.Visible)
    fiss.saveInt("FISS_EssentialPosX", EssentialPosX)
    fiss.saveFloat("FISS_EssentialPosXScript", EssentialScript.X)
    fiss.saveInt("FISS_EssentialPosY", EssentialPosY)
    fiss.saveFloat("FISS_EssentialPosYScript", EssentialScript.Y)
    fiss.saveInt("FISS_EssentialAlpha", EssentialAlpha)
    fiss.saveFloat("FISS_EssentialAlphaScript", EssentialScript.Alpha)
    fiss.saveInt("FISS_EssentialScale", EssentialScale)
    fiss.saveInt("FISS_EssentialScaleScript", EssentialScript.Size)
    
    String saveResult = fiss.endSave()
    /;


    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowWidget", ArrowWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowWidgetScript", ArrowScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowPosX", ArrowPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_ArrowPosXScript", ArrowScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowPosY", ArrowPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_ArrowPosYScript", ArrowScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowAlpha", ArrowAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_ArrowAlphaScript", ArrowScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowScale", ArrowScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_ArrowScaleScript", ArrowScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightWidget", WeightWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightWidgetScript", WeightScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightPosX", WeightPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_WeightPosXScript", WeightScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightPosY", WeightPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_WeightPosYScript", WeightScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightAlpha", WeightAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_WeightAlphaScript", WeightScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightScale", WeightScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_WeightScaleScript", WeightScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldWidget", GoldWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldWidgetScript", GoldScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldPosX", GoldPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_GoldPosXScript", GoldScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldPosY", GoldPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_GoldPosYScript", GoldScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldAlpha", GoldAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_GoldAlphaScript", GoldScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldScale", GoldScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_GoldScaleScript", GoldScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyWidget", BountyWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyWidgetScript", BountyScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyPosX", BountyPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_BountyPosXScript", BountyScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyPosY", BountyPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_BountyPosYScript", BountyScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyAlpha", BountyAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_BountyAlphaScript", BountyScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyScale", BountyScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_BountyScaleScript", BountyScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillWidget", SkillWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillWidgetScript", SkillScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillPosX", SkillPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_SkillPosXScript", SkillScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillPosY", SkillPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_SkillPosYScript", SkillScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillAlpha", SkillAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_SkillAlphaScript", SkillScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillScale", SkillScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SkillScaleScript", SkillScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedWidget", SpeedWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedWidgetScript", SpeedScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedPosX", SpeedPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_SpeedPosXScript", SpeedScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedPosY", SpeedPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_SpeedPosYScript", SpeedScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedAlpha", SpeedAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_SpeedAlphaScript", SpeedScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedScale", SpeedScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_SpeedScaleScript", SpeedScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickWidget", LockpickWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickWidgetScript", LockpickScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickPosX", LockpickPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_LockpickPosXScript", LockpickScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickPosY", LockpickPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_LockpickPosYScript", LockpickScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickAlpha", LockpickAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_LockpickAlphaScript", LockpickScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickScale", LockpickScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LockpickScaleScript", LockpickScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightWidget", LightWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightWidgetScript", LightScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightPosX", LightPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_LightPosXScript", LightScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightPosY", LightPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_LightPosYScript", LightScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightAlpha", LightAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_LightAlphaScript", LightScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightScale", LightScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_LightScaleScript", LightScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyWidget", HotkeyWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyWidgetScript", HotkeyScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyPosX", HotkeyPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_HotkeyPosXScript", HotkeyScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyPosY", HotkeyPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_HotkeyPosYScript", HotkeyScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyAlpha", HotkeyAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_HotkeyAlphaScript", HotkeyScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyScale", HotkeyScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HotkeyScaleScript", HotkeyScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorseWidget", HorseWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorseWidgetScript", HorseScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorsePosX", HorsePosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_HorsePosXScript", HorseScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorsePosY", HorsePosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_HorsePosYScript", HorseScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorseAlpha", HorseAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_HorseAlphaScript", HorseScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorseScale", HorseScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_HorseScaleScript", HorseScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerWidget", FollowerWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerWidgetScript", FollowerScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerPosX", FollowerPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_FollowerPosXScript", FollowerScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerPosY", FollowerPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_FollowerPosYScript", FollowerScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerAlpha", FollowerAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_FollowerAlphaScript", FollowerScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerScale", FollowerScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_FollowerScaleScript", FollowerScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributeWidget", AttributeWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributeWidgetScript", AttributeScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributePosX", AttributePosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_AttributePosXScript", AttributeScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributePosY", AttributePosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_AttributePosYScript", AttributeScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributeAlpha", AttributeAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_AttributeAlphaScript", AttributeScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributeScale", AttributeScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_AttributeScaleScript", AttributeScript.Size)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialWidget", EssentialWidget)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialWidgetScript", EssentialScript.Visible as Int)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialPosX", EssentialPosX)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_EssentialPosXScript", EssentialScript.X)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialPosY", EssentialPosY)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_EssentialPosYScript", EssentialScript.Y)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialAlpha", EssentialAlpha)
    JsonUtil.SetFloatValue(JsonFilename, "FISS_EssentialAlphaScript", EssentialScript.Alpha)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialScale", EssentialScale)
    JsonUtil.SetIntValue(JsonFilename, "FISS_EssentialScaleScript", EssentialScript.Size)
    JsonUtil.Save(JsonFilename)
EndFunction

タイトルとURLをコピーしました