---
description: v4.0
---

# GameItemObjectList

## Set Affected Stats Dirty

_<mark style="color:red;">Generally you would not call these directly.</mark>_

There are few methods which will ensure all stats which this `GameItemAttributeList` affects are marked as dirty, meaning they'll recompute their final value.

```csharp
// Call this to set all stats which any GameItemAttribute on this list affects to
// automatically recompute.
public void SetDirty() => SetAffectedStatsDirty();

// SetDirty all the stats on the Owner which are affected by the gameItemObject
public void SetAffectedStatsDirty(GameItemObject gameItemObject) 

// If you'd like, you can override this to add custom functionality. Generally this
// is not something I'd expect you to do.
public override void SetAffectedStatsDirty(IAmGameModuleObject gameModuleObject)

// The Stat objects in the statList provided, or if none is provided, the
// DirectlyAffectsList, will be set dirty on the Owner of this list, if the owner
// has the Stat.
public void SetAffectedStatsDirty(List<Stat> statList = null)

// Returns a List<Stat> of all stats which this list affect.
public List<Stat> DirectlyAffectsList(Stat stat = null)
```

## Modification Levels

Each `GameItemObject` has a `ModificationLevel`, which dictates how it affects `Stats`.

```csharp
// Get a List<ModificationLevel> of all the modification levels on each
// GameItemObject in this list
public List<ModificationLevel> ModificationLevels
```
