• Hello
Search Results for

    Show / Hide Table of Contents

    Class GlobalSettings

    Project-wide configuration asset for the anti-cheat system. Loaded as a singleton from RELATIVE_SETTINGS_PATH.

    Inheritance
    System.Object
    GlobalSettings
    Namespace: GUPS.AntiCheat.Settings
    Assembly: cs.temp.dll.dll
    Syntax
    public class GlobalSettings : ScriptableObject
    Examples

    Read the active settings asset at runtime:

    using GUPS.AntiCheat.Settings;
    
    var settings = GlobalSettings.Instance;
    bool allowAnyOwner = settings.PlayerPreferences_Allow_Read_Any_Owner;

    In the editor open Project Settings > GuardingPearSoftware > AntiCheat to edit the asset.

    Fields

    Android_AllowAllAppStores

    When true, any package installation source is accepted; otherwise only sources listed in Android_AllowedAppStores / Android_AllowedCustomAppStores.

    Declaration
    public bool Android_AllowAllAppStores
    Field Value
    Type Description
    System.Boolean

    Android_AllowedAppStores

    Allowed well-known package installation sources. Installations from other sources raise a notification.

    Declaration
    public List<EAppStore> Android_AllowedAppStores
    Field Value
    Type Description
    List<EAppStore>

    Android_AllowedCustomAppStores

    Additional allowed installer package names (e.g. com.android.vending) for stores not covered by Android_AllowedAppStores.

    Declaration
    public List<String> Android_AllowedCustomAppStores
    Field Value
    Type Description
    List<String>

    Android_AppFingerprint

    Expected app fingerprint used to verify the app's identity.

    Declaration
    public String Android_AppFingerprint
    Field Value
    Type Description
    String

    Android_AppFingerprintAlgorithm

    Hash algorithm used to compute and validate the app fingerprint. Recommended: SHA-256.

    Declaration
    public EHashAlgorithm Android_AppFingerprintAlgorithm
    Field Value
    Type Description
    EHashAlgorithm

    Android_AppHashAlgorithm

    Hash algorithm used to compute and verify the app hash. Recommended: SHA-256.

    Declaration
    public EHashAlgorithm Android_AppHashAlgorithm
    Field Value
    Type Description
    EHashAlgorithm

    Android_AppHashEndpoint

    HTTP GET endpoint that returns the expected app hash. May contain the {version} placeholder, which is replaced with .

    Declaration
    public String Android_AppHashEndpoint
    Field Value
    Type Description
    String

    Android_BlacklistedApplications

    Installed Android applications considered hostile; presence raises a notification.

    Declaration
    public List<String> Android_BlacklistedApplications
    Field Value
    Type Description
    List<String>

    Android_BlacklistedLibraries

    Libraries explicitly disallowed inside the application; any library in the list raises a notification.

    Declaration
    public List<String> Android_BlacklistedLibraries
    Field Value
    Type Description
    List<String>

    Android_Enable_Development

    When true, the Android app is validated (appstore, libraries, applications, signature, ...) also on development builds. Recommended: false.

    Declaration
    public bool Android_Enable_Development
    Field Value
    Type Description
    System.Boolean

    Android_UseBlacklistingforApplication

    When true, the device is scanned for blacklisted apps (see Android_BlacklistedApplications).

    Declaration
    public bool Android_UseBlacklistingforApplication
    Field Value
    Type Description
    System.Boolean

    Android_UseWhitelistingForLibraries

    When true, enable whitelisting / blacklisting for loaded libraries; otherwise any library is allowed.

    Declaration
    public bool Android_UseWhitelistingForLibraries
    Field Value
    Type Description
    System.Boolean

    Android_VerifyAppFingerprint

    When true, validate the app's signing fingerprint against Android_AppFingerprint.

    Declaration
    public bool Android_VerifyAppFingerprint
    Field Value
    Type Description
    System.Boolean

    Android_VerifyAppHash

    When true, compare the running app's hash against a remote-hosted reference hash to detect tampering or repackaging.

    Declaration
    public bool Android_VerifyAppHash
    Field Value
    Type Description
    System.Boolean

    Android_WhitelistedLibraries

    Libraries explicitly allowed inside the application; any library not in the list raises a notification.

    Declaration
    public List<String> Android_WhitelistedLibraries
    Field Value
    Type Description
    List<String>

    Desktop_Debugger_ReportManagedOnly

    When true, raise a notification when only managed System.Diagnostics.Debugger.IsAttached fires without a matching native debugger.

    Declaration
    public bool Desktop_Debugger_ReportManagedOnly
    Field Value
    Type Description
    System.Boolean

    Desktop_DetectKernelModeDebugger

    When true, detect active kernel-mode debuggers (WinDbg kernel mode, Syser, SoftICE). Currently effective only on Windows.

    Declaration
    public bool Desktop_DetectKernelModeDebugger
    Field Value
    Type Description
    System.Boolean

    Desktop_DetectModLoader

    When true, scan for well-known mod loaders (BepInEx, MelonLoader, UnityDoorstop, ...) via ModLoaderDetector.

    Declaration
    public bool Desktop_DetectModLoader
    Field Value
    Type Description
    System.Boolean

    Desktop_DetectUserModeDebugger

    When true, detect attached user-mode debuggers (Visual Studio, Rider, dnSpy, x64dbg, OllyDbg, ptrace, ...) via DebuggerDetector.

    Declaration
    public bool Desktop_DetectUserModeDebugger
    Field Value
    Type Description
    System.Boolean

    Desktop_DetectVirtualMachine

    When true, detect virtual-machine environments (VirtualBox, VMware, Parallels, Hyper-V, ...) via VirtualEnvironmentDetector.

    Declaration
    public bool Desktop_DetectVirtualMachine
    Field Value
    Type Description
    System.Boolean

    Desktop_Enable_Development

    When true, desktop tampering detectors (mod loader, debugger, virtual environment) also run on development builds and inside the Unity editor. Recommended: false.

    Declaration
    public bool Desktop_Enable_Development
    Field Value
    Type Description
    System.Boolean

    Desktop_ModLoader_AssemblyPrefixes

    Case-insensitive managed-assembly name prefixes attributed to mod loaders. Remove entries you ship legitimately (e.g. HarmonyLib).

    Declaration
    public List<String> Desktop_ModLoader_AssemblyPrefixes
    Field Value
    Type Description
    List<String>

    Desktop_ModLoader_FileNames

    File or folder names attributed to mod loaders when found next to the game executable or loaded as a native module. Folders end with '/'.

    Declaration
    public List<String> Desktop_ModLoader_FileNames
    Field Value
    Type Description
    List<String>

    Desktop_ModLoader_HijackDlls

    DLL names that are legitimate Windows system libraries inside System32 but indicate Unity Doorstop hijacking (the bootstrap used by BepInEx / MelonLoader) when loaded from anywhere else, e.g. the game directory. These are never matched by name alone - the probe verifies the loading path first, so the System32 originals never raise a notification.

    Declaration
    public List<String> Desktop_ModLoader_HijackDlls
    Field Value
    Type Description
    List<String>

    Desktop_VirtualMachine_BiosKeywords

    Substrings indicating a virtual machine when found in BIOS / DMI / hardware model strings.

    Declaration
    public List<String> Desktop_VirtualMachine_BiosKeywords
    Field Value
    Type Description
    List<String>

    Desktop_VirtualMachine_MacOuis

    MAC address OUI prefixes (6 hex digits, no separators) attributed to known VM vendors, e.g. 080027 for VirtualBox.

    Declaration
    public List<String> Desktop_VirtualMachine_MacOuis
    Field Value
    Type Description
    List<String>

    Desktop_VirtualMachine_WindowsServiceKeys

    Windows registry service keys (relative to HKEY_LOCAL_MACHINE) that only exist when virtual machine guest additions / guest tools are installed. Presence of any key raises a virtual machine notification. Only used by the Windows platform probe.

    Declaration
    public List<String> Desktop_VirtualMachine_WindowsServiceKeys
    Field Value
    Type Description
    List<String>

    IOS_DetectDyldInjection

    When true, inspect the DYLD_INSERT_LIBRARIES and DYLD_FORCE_FLAT_NAMESPACE environment variables for runtime library injection. Entries matching one of the IOS_DyldAllowedPrefixes are considered benign (Xcode debug support libraries).

    Declaration
    public bool IOS_DetectDyldInjection
    Field Value
    Type Description
    System.Boolean

    IOS_DetectFork

    When true, probe whether fork() returns a positive child PID. Opt-in (default false) because static analysis from the App Store review pipeline can flag binaries that reference fork.

    Declaration
    public bool IOS_DetectFork
    Field Value
    Type Description
    System.Boolean

    IOS_DetectSandboxViolation

    When true, attempt to create a file outside the app sandbox. Sandboxed iOS apps cannot write outside their container - a successful write indicates the sandbox is not enforced.

    Declaration
    public bool IOS_DetectSandboxViolation
    Field Value
    Type Description
    System.Boolean

    IOS_DetectSuspiciousDylibs

    When true, scan the loaded dyld images for the tweak framework substrings listed in IOS_SuspiciousDylibs (MobileSubstrate, CydiaSubstrate, libsubstitute, libhooker, FridaGadget, ...).

    Declaration
    public bool IOS_DetectSuspiciousDylibs
    Field Value
    Type Description
    System.Boolean

    IOS_DetectSuspiciousPaths

    When true, scan the IOS_SuspiciousPaths list (Cydia.app, /private/var/lib/apt, /usr/sbin/sshd, /Library/MobileSubstrate, the rootless /var/jb prefix, ...) via stat().

    Declaration
    public bool IOS_DetectSuspiciousPaths
    Field Value
    Type Description
    System.Boolean

    IOS_DetectUrlSchemes

    When true, probe the jailbreak URL schemes listed in IOS_SuspiciousUrlSchemes (cydia, sileo, zbra, filza, ...) via UIApplication.canOpenURL. Requires matching LSApplicationQueriesSchemes entries in Info.plist - the iOS build post-processor injects them automatically when this flag is on.

    Declaration
    public bool IOS_DetectUrlSchemes
    Field Value
    Type Description
    System.Boolean

    IOS_DyldAllowedPrefixes

    Trusted path prefixes (whitelist) for entries found in the DYLD_INSERT_LIBRARIES environment variable. Entries starting with one of these prefixes are considered benign - Xcode injects Apple debug support libraries (libViewDebuggerSupport, libMainThreadChecker, ...) from these read-only system locations when running with the debugger attached. Every entry not matching a prefix raises a dyld injection notification.

    Declaration
    public List<String> IOS_DyldAllowedPrefixes
    Field Value
    Type Description
    List<String>

    IOS_Enable_Development

    When true, the iOS jailbreak detector also runs on development builds and inside the Unity editor. Recommended: false.

    Declaration
    public bool IOS_Enable_Development
    Field Value
    Type Description
    System.Boolean

    IOS_SuspiciousDylibs

    Dylib name substrings considered suspicious (blacklist). Compared case-insensitively against every loaded dyld image name. The list is passed to the native scanner; it contains no hidden built-in entries.

    Declaration
    public List<String> IOS_SuspiciousDylibs
    Field Value
    Type Description
    List<String>

    IOS_SuspiciousPaths

    Filesystem paths considered suspicious (blacklist), checked via stat(). Covers legacy /Applications/* jailbreaks, MobileSubstrate, SSH leftovers, apt/cydia state, and the rootless (/var/jb) layout used by Dopamine / palera1n. The list is passed to the native scanner; it contains no hidden built-in entries.

    Declaration
    public List<String> IOS_SuspiciousPaths
    Field Value
    Type Description
    List<String>

    IOS_SuspiciousUrlSchemes

    URL schemes considered suspicious (blacklist), probed via UIApplication.canOpenURL. The iOS build post-processor injects these entries into LSApplicationQueriesSchemes so the probe works on iOS 9+. The list is passed to the native scanner; it contains no hidden built-in entries.

    Declaration
    public List<String> IOS_SuspiciousUrlSchemes
    Field Value
    Type Description
    List<String>

    PlayerPreferences_Allow_Read_Any_Owner

    When true, any user may read stored preferences; when false, only the original owner (identified by ) can read them.

    Declaration
    public bool PlayerPreferences_Allow_Read_Any_Owner
    Field Value
    Type Description
    System.Boolean

    PlayerPreferences_Hash_Key

    When true, the player preference key is stored as a hash instead of its original name.

    Declaration
    public bool PlayerPreferences_Hash_Key
    Field Value
    Type Description
    System.Boolean

    PlayerPreferences_Value_Encryption_Key

    Encryption key applied to player preference values. Empty means values are stored unencrypted. Changing the key invalidates previously written values.

    Declaration
    public String PlayerPreferences_Value_Encryption_Key
    Field Value
    Type Description
    String

    PlayerPreferences_Verify_Integrity

    When true, player preferences are verified via a hash signature computed from data type, value and owner.

    Declaration
    public bool PlayerPreferences_Verify_Integrity
    Field Value
    Type Description
    System.Boolean

    RELATIVE_SETTINGS_PATH

    Resource path (relative, no extension) used by .

    Declaration
    public const String RELATIVE_SETTINGS_PATH = null
    Field Value
    Type Description
    String

    SETTINGS_PATH

    Absolute project path to the settings asset (without .asset extension).

    Declaration
    public const String SETTINGS_PATH = null
    Field Value
    Type Description
    String

    Properties

    Instance

    Gets the runtime singleton, loading it from resources on first access.

    Declaration
    public static GlobalSettings Instance { get; }
    Property Value
    Type Description
    GlobalSettings

    RandomProvider

    Gets the shared random provider used to generate random values across the library.

    Declaration
    public static IRandomProvider RandomProvider { get; }
    Property Value
    Type Description
    IRandomProvider

    Methods

    LoadAsset()

    Loads the settings asset from resources without caching it on the singleton.

    Declaration
    public static GlobalSettings LoadAsset()
    Returns
    Type Description
    GlobalSettings

    The loaded asset, or null if it does not exist.

    In This Article
    Back to top GuardingPearSoftware documentation