How To Manually Add Support To Older Invector Versions

If you are going to do this then I would suggest backing up your project BEFORE starting.

Sometimes you want to stay on an old invector version but still want to perform the updates yourself to get all the upgrades. Even though the newest upgrades only support a newer version of invector.

The following will not be easier and isn't for the faint of heart, but here is what you can do.

Identity Invector Addition Differences

The following files will show you exactly what lines in invector that I modify in order to add support for the most recent files I have included in the project:

Assets/CBGames/EasyMultiplayer-Invector/Basic Locomotion/Editor/Menus/MainWindow/BasicScriptConvert.cs
Assets/CBGames/EasyMultiplayer-Invector/Melee Combat/Editor/Menus/MainWindow/MeleeScriptConvert.cs
Assets/CBGames/EasyMultiplayer-Invector/Shooter/Editor/Menus/MainWindow/ShooterScriptConvert.cs
Assets/CBGames/EasyMultiplayer-Invector/FSM AI/Editor/Menus/MainWindow/FSMScriptConvert.cs

Inside those files you will see things that look like the following:

#region Convert vCharacter.cs
progressUpdate(progress_title, "Converting vCharacter.cs...", 0.07f);
yield return new EditorWaitForSeconds(0.01f);
string vCharacter = FilesUtil.FindFilePath("vCharacter.cs", inv_basic_folder);
FilesUtil.ModifyFileAtPath(vCharacter, new List<FilesUtil.Modification>()
    {
        new FilesUtil.Modification(
            targetLines: new List<string>() { "public bool ragdolled { get; set; }" },
            modifiedLines: new List<string>() {
                "//public bool ragdolled { get; set; }",
                "public bool _ragdolled = false;",
                "public virtual bool ragdolled { get { return _ragdolled; } set { _ragdolled = value; } }"
            },
            modificationType: FilesUtil.ModiftyType.Replace
        )
    }
);
#endregion

The above shows that the line:

public bool ragdolled { get; set; }

Will be replaced with:

//public bool ragdolled { get; set; }
public bool _ragdolled = false;
public virtual bool ragdolled { get { return _ragdolled; } set { _ragdolled = value; } }

In the invector file named: vCharacter.cs. Now this is specifically for this invector version that EMI is supporting. So you will need to go back and look at your older version and add any new entries in these files that now exist in the newer EMI, without removing what is currently in your version.

When that is completed, the next step will be to diff your old projects Easy Multiplayer - Invector files with the new ones. You can try running as is without doing this and you might get lucky and evereything will work. However, this is more likely to not be the case and it will be up to you to manually reconcile these files.

If you are going to do this then I would suggest backing up your project before starting.