Skip to content

Class "Level"⚓︎

Functions⚓︎

Add·Angel·Room·Chance ()⚓︎

void AddAngelRoomChance ( float Chance )⚓︎


Add·Curse ()⚓︎

void AddCurse ( LevelCurse Curse, boolean ShowName )⚓︎


Apply·Blue·Map·Effect ()⚓︎

void ApplyBlueMapEffect ( )⚓︎


Apply·Compass·Effect ()⚓︎

void ApplyCompassEffect ( boolean Persistent )⚓︎


Apply·Map·Effect ()⚓︎

void ApplyMapEffect ( )⚓︎


Can·Open·Challenge·Room ()⚓︎

boolean CanOpenChallengeRoom ( int RoomIndex )⚓︎


Can·Spawn·Devil·Room ()⚓︎

boolean CanSpawnDevilRoom ( )⚓︎


Can·Stage·Have·Curse·Of·Labyrinth ()⚓︎

boolean CanStageHaveCurseOfLabyrinth ( LevelStage Stage )⚓︎


Change·Room ()⚓︎

void ChangeRoom ( int RoomIndex )⚓︎


Disable·Devil·Room ()⚓︎

void DisableDevilRoom ( )⚓︎


Force·Horseman·Boss ()⚓︎

boolean ForceHorsemanBoss ( int Seed )⚓︎

return true on success


Get·Absolute·Stage ()⚓︎

LevelStage GetAbsoluteStage ( )⚓︎

Returns the absolute stage, if its greed mode its converted to equivalent one.


Get·Angel·Room·Chance ()⚓︎

float GetAngelRoomChance ( )⚓︎


Get·Can·See·Everything ()⚓︎

boolean GetCanSeeEverything ( )⚓︎


Get·Current·Room ()⚓︎

Room GetCurrentRoom ( )⚓︎


Get·Current·Room·Desc ()⚓︎

const RoomDescriptor GetCurrentRoomDesc ( )⚓︎


Get·Current·Room·Index ()⚓︎

int GetCurrentRoomIndex ( )⚓︎

Notes

This will always return the roomindex on the levelgrid, on which you entered the current room from. (see black entries in graphic below)

Room Grid indicies


Get·Curse·Name ()⚓︎

string GetCurseName ( )⚓︎


Get·Curses ()⚓︎

int GetCurses ( )⚓︎


Get·Devil·Angel·Room·RNG ()⚓︎

RNG GetDevilAngelRoomRNG ( )⚓︎


Get·Dungeon·Placement·Seed ()⚓︎

int GetDungeonPlacementSeed ( )⚓︎


Get·Enter·Position ()⚓︎

Vector GetEnterPosition ( )⚓︎


Get·Heart·Picked ()⚓︎

boolean GetHeartPicked ( )⚓︎


Get·Last·Boss·Room·List·Index ()⚓︎

int GetLastBossRoomListIndex ( )⚓︎


Get·Last·Room·Desc ()⚓︎

const RoomDescriptor GetLastRoomDesc ( )⚓︎


Get·Name ()⚓︎

string GetName ( LevelStage Stage, StageType Type, int Curses, int InfiniteLevel, boolean Dyslexia )⚓︎


Get·Non·Complete·Room·Index ()⚓︎

int GetNonCompleteRoomIndex ( )⚓︎


Get·Previous·Room·Index ()⚓︎

int GetPreviousRoomIndex ( )⚓︎


Get·Random·Room·Index ()⚓︎

int GetRandomRoomIndex ( boolean IAmErrorRoom, int Seed )⚓︎


Get·Room·By·Idx ()⚓︎

const RoomDescriptor GetRoomByIdx ( int RoomIdx )⚓︎


Get·Room·Count ()⚓︎

int GetRoomCount ( )⚓︎


Get·Rooms ()⚓︎

RoomDescriptor List GetRooms ( )⚓︎


Get·Stage ()⚓︎

LevelStage GetStage ( )⚓︎


Get·Stage·Type ()⚓︎

StageType GetStageType ( )⚓︎


Get·Starting·Room·Index ()⚓︎

int GetStartingRoomIndex ( )⚓︎


Get·State·Flag ()⚓︎

boolean GetStateFlag ( StateFlag StateFlag )⚓︎


Has·Boss·Challenge ()⚓︎

boolean HasBossChallenge ( )⚓︎


Initialize·Devil·Angel·Room ()⚓︎

void InitializeDevilAngelRoom ( boolean ForceAngel, boolean ForceDevil )⚓︎


Is·Alt·Stage ()⚓︎

boolean IsAltStage ( )⚓︎


Is·Devil·Room·Disabled ()⚓︎

boolean IsDevilRoomDisabled ( )⚓︎


Is·Next·Stage·Available ()⚓︎

boolean IsNextStageAvailable ( )⚓︎


Query·Room·Type·Index ()⚓︎

int QueryRoomTypeIndex ( RoomType RoomType, boolean Visited, RNG rng )⚓︎


Remove·Compass·Effect ()⚓︎

void RemoveCompassEffect ( )⚓︎


Remove·Curse ()⚓︎

void RemoveCurse ( LevelCurse Curse )⚓︎


Remove·Curses ()⚓︎

void RemoveCurses ( )⚓︎


Set·Can·See·Everything ()⚓︎

void SetCanSeeEverything ( boolean Value )⚓︎


Set·Heart·Picked ()⚓︎

void SetHeartPicked ( )⚓︎


Set·Next·Stage ()⚓︎

void SetNextStage ( )⚓︎

This function teleports you directly to the next stage without playing the leveltransition or updating the floors backdrop. Use other functions to fix those issues.


Set·Red·Heart·Damage ()⚓︎

void SetRedHeartDamage ( )⚓︎


Set·Stage ()⚓︎

void SetStage ( LevelStage Stage, StageType StageType )⚓︎

for SetStage/SetNextStage to have effect, call Init afterward


Set·State·Flag ()⚓︎

void SetStateFlag ( StateFlag StateFlag, boolean Val )⚓︎


Show·Map ()⚓︎

void ShowMap ( )⚓︎

Show's all map (world/sun card effect) except the top secret room.


Show·Name ()⚓︎

void ShowName ( boolean Sticky )⚓︎


Uncover·Hidden·Door ()⚓︎

void UncoverHiddenDoor ( int CurrentRoomIdx, DoorSlot Slot )⚓︎

Uncovers the door on both sides by modifying the saved grid entities for neighboring room.


Update ()⚓︎

void Update ( )⚓︎


Update·Visibility ()⚓︎

void UpdateVisibility ( )⚓︎

Notes

Whenever you update the visibility of a room on the minimap, it won't update the map automatically, since it is cached. You have to explicitly call UpdateVisibility() afterwards to apply any changes.

Example Code

This code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
-- Local variables
local game = Game()
local level = game:GetLevel()

-- Give the player the Compass effect, which will display all of the floor's special rooms on the mini-map
level:ApplyCompassEffect()

-- Remove the icon for the Treasure Room specifically
local treasureIndex = level:QueryRoomTypeIndex(RoomType.ROOM_TREASURE, false, RNG())
local treasureRoom = level:GetRoomByIdx(treasureIndex)
treasureRoom.DisplayFlags = 0

-- Since the mini-map is cached, changing display flags won't update it unless we explicitly call this function
level:UpdateVisibility()


Variables⚓︎

Dungeon·Return·Position⚓︎

Vector DungeonReturnPosition⚓︎


Dungeon·Return·Room·Index⚓︎

int DungeonReturnRoomIndex⚓︎


Enter·Door⚓︎

int EnterDoor⚓︎

1
This value defines on which doorslot you entered the room.
Bugs

Changing this value has no impact on anything. the EnterDoor value is always determined by the LeaveDoor Value and the game itself.


Greed·Mode·Wave⚓︎

int GreedModeWave⚓︎


Leave·Door⚓︎

int LeaveDoor⚓︎

1
This value defines on which doorslot you are positioned after the transition. You will always end up at the oposite side of the door specified. Example: LeaveDoor=1 (Up0) will position you at Doorslot Down0 (Logic: Doorslot+2)
Notes

if level.LeaveDoor is set to anything other than -1, the function will transition based on the room you are currently in.



Last update: June 9, 2021