---
tags:
    - "Check"
    - "Equals"
    - "Same"
---

# Compare Scriptable Objects

[Compare](index.md) / **Compare Scriptable Objects**

## Description

Returns true if two Scriptable Objects are equal

## Parameters

| Name | Description |
| :--- | :---------- |
| Value 1 | The Scriptable Object targeted |
| Value 2 | The Scriptable Object to compare against |

## Code

```cs
using System;
using UnityEngine;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Title("Compare Scriptable Objects")]
    [Image(typeof(IconCubeOutline), ColorTheme.Type.Blue, typeof(BadgeScriptableObject))]
    
    [Description("Returns true if two Scriptable Objects are equal")]
    [Category("Compare/Compare Scriptable Objects")]
    
    [Parameter("Value 1", "The Scriptable Object targeted")]
    [Parameter("Value 2", "The Scriptable Object to compare against")]
    
    [Keywords("Check", "Equals", "Same")]
    
    [Serializable]
    public class ConditionCoreCompareScriptableObject : Condition
    {
        [SerializeField] private GetScriptableObject m_Value1 = new GetScriptableObject();
        [SerializeField] private GetScriptableObject m_Value2 = new GetScriptableObject();

        protected override string GetTitle(GameObject source) => $"{this.m_Value1} = {this.m_Value2}";

        protected override bool Run(Args args)
        {
            ScriptableObject value1 = this.m_Value1.Get(args);
            ScriptableObject value2 = this.m_Value2.Get(args);
            
            return value1 == value2;
        }
    }
}
```

