GetLockLevel - ObjectReference

From the CreationKit Wiki
Revision as of 19:23, 12 May 2025 by BellCube (talk | contribs) (Standardize Formatting)
Jump to navigation Jump to search

Member of: ObjectReference Script

Returns the level of the lock attached to this object. This number can be anything from 0-255, with different values representing lock difficulties (Novice–Expert). If there is no lock, it will return 0 - very easy.

Syntax

int Function GetLockLevel() native

Parameters

None.

Return Value

The level of the lock attached to this object.

If there is no lock, it will return 0 - very easy. Otherwise, lock level values are:

  • 0–1 = Novice
  • 2–25 = Apprentice
  • 26–50 = Adept
  • 51–75 = Expert
  • 76–254 = Master
  • 255 = Requires Key

Examples

; Is the lock very easy?
if (WeakChestProperty.GetLockLevel() == 0)
  Debug.Trace("Lock is very easy")
endIf


This function fetches the lock level for a given lock in a much more robust way, making scripting locked objects significantly easier.

;sanitizes lock level
;0 = unlocked, 1 = novice, 2 = apprentice, 3 = adept, 4 = expert, 5 = master, 6 = key
int function SanitizeLockLevel(ObjectReference lock)
	int level = lock.GetLockLevel()
	
	if !lock.IsLocked()
		return 0
	endif
	
	if level == 0 || level == 1 ;novice
		return 1
	elseif level >= 2 && level <= 25 ;Apprentice
		return 2
	elseif level >= 26 && level <= 50 ;Adept
		return 3
	elseif level >= 51 && level <= 75 ;Expert
		return 4
	elseif level >= 76 && level <= 254 ;Master
		return 5
	else
		return 6
	endif
endfunction

See Also