msw-ai-tf/maplestory-worlds-creator-docs huggingface dataset:
SpriteAnimPlayerEndFrameEvent

This event is raised when playing the last frame of sprite animation.  
  
This event is triggered by the API below.

  * ClimbableSpriteRendererComponent (Space;Client)
  * SpriteRendererComponent (Space;Client)



# Properties

[{"index":"int32 FrameIndex (ReadOnly)","0":"The frame number."}]

[{"index":"boolean ReversePlaying (ReadOnly)","0":"Indicates whether to play in reverse."}]

[{"index":"int32 TotalFrameCount (ReadOnly)","0":"Total number of frames to make up the sprite animation."}]

##### inherited from SpriteAnimPlayerEvent:

[{"index":"IEmbeddedSpriteAnimPlayer AnimPlayer (ReadOnly)","0":"The animation player."}]

# Constructors

[{"index":"SpriteAnimPlayerEndFrameEvent(IEmbeddedSpriteAnimPlayer animPlayer = nil, int32 frameIndex = -1, boolean reversePlaying = false, int32 totalFrameCount = 0)","0":"Initializes SpriteAnimPlayerEndFrameEvent to the specified value."}]
SpriteAnimPlayerStartFrameEvent

This event is raised when playing the first frame of sprite animation.  
  
This event is triggered by the API below.

  * ClimbableSpriteRendererComponent (Space;Client)
  * SpriteRendererComponent (Space;Client)



# Properties

[{"index":"int32 FrameIndex (ReadOnly)","0":"The frame number."}]

[{"index":"boolean ReversePlaying (ReadOnly)","0":"Indicates whether to play in reverse."}]

[{"index":"int32 TotalFrameCount (ReadOnly)","0":"Total number of frames to make up the sprite animation."}]

##### inherited from SpriteAnimPlayerEvent:

[{"index":"IEmbeddedSpriteAnimPlayer AnimPlayer (ReadOnly)","0":"The animation player."}]

# Constructors

[{"index":"SpriteAnimPlayerStartFrameEvent(IEmbeddedSpriteAnimPlayer animPlayer = nil, int32 frameIndex = -1, boolean reversePlaying = false, int32 totalFrameCount = 0)","0":"Initializes SpriteAnimPlayerStartFrameEvent to the specified value."}]
DamageSkinTweenType

Indicates the movement of the damage skin.

# Members

[{"Name":"Default","Value":"0","Desc":"This is the default. Indicates the default effect."},{"Name":"Volcano","Value":"1","Desc":"Volcanic effect. Damage skins appear in a fan-shaped spread."},{"Name":"Blade","Value":"2","Desc":"Blade effect. Damage skins appear in the same location."},{"Name":"DefaultMini","Value":"3","Desc":"Displays the default effect reduced by 75%."},{"Name":"VolcanoMini","Value":"4","Desc":"Volcanic effect reduced by 75%."},{"Name":"BladeMini","Value":"5","Desc":"Blade effect reduced by 75%."}]

# Methods

[{"index":"DamageSkinTweenType CastFrom(number value) (Static)","0":"Converts numbers to the applicable type."}]

[{"index":"DamageSkinTweenType CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
AttachedGlobalTypeOverlayLightInfo

The Global-type light source information that will spawn as a child of an entity.

# Properties

[{"index":"Color Color","0":"The color of the light source."}]

[{"index":"float Intensity","0":"The intensity of the light source."}]

[{"index":"float Lifetime","0":"The amount of time the light source will display. The created light source will automatically disappear upon reaching the specified time. However, when a value equal to or lower than 0 is input, the light source will remain indefinitely."}]

[{"index":"Entity ParentEntity","0":"An entity that will have a created light source added to it."}]

# Constructors

[{"index":"AttachedGlobalTypeOverlayLightInfo(Entity parentEntity)","0":"Initializes AttachedFreeformTypeOverlayLightInfo to the specified value."}]

[{"index":"AttachedGlobalTypeOverlayLightInfo(Entity parentEntity, float lifetime, Color color, float intensity)","0":"Initializes AttachedFreeformTypeOverlayLightInfo to the specified value."}]
Environment

Provides execution environment information.

# Properties

[{"index":"string WorldId (ReadOnly)","0":"The Id of the current world."}]

# Methods

[{"index":"string GetApplicationVersion() (ClientOnly)","0":"Returns the version information for the currently running application."}]

[{"index":"boolean IsMakerEdit()","0":"Returns whether the current setting is the maker environment and is in edit state."}]

[{"index":"boolean IsMakerPlay()","0":"Returns whether the current setting is the maker environment and is in play state."}]

[{"index":"boolean IsMobilePlatform()","0":"Returns whether the current state is a mobile platform."}]

[{"index":"boolean IsPCPlatform()","0":"Returns whether the current state is a PC platform."}]

[{"index":"boolean IsPlay()","0":"Returns whether the state is in play."}]

[{"index":"boolean IsPublishedPlay()","0":"Returns whether the current setting is the released environment and is in play state."}]
Info Level

($API_Metadata_Start)

[{"ID":"<\/a>LIA-1113","Name":"UnresolvedSymbol","Desc":"Could not find the symbol."},{"ID":"<\/a>LIA-1114","Name":"UnresolvedMember","Desc":"Could not find the member."},{"ID":"<\/a>LIA-1115","Name":"UnresolvedFunction","Desc":"Could not find the function."},{"ID":"<\/a>LIA-1116","Name":"DuplicateLocal","Desc":"You have a local variable declared redundantly."},{"ID":"<\/a>LIA-1119","Name":"DuplicateFunction","Desc":"The function has been redundantly defined."},{"ID":"<\/a>LIA-3025","Name":"RequestFinished","Desc":"Your request has been completed."},{"ID":"<\/a>LIA-3045","Name":"InfoMessage","Desc":"Occurs when the connection state changes, or when a node returns."},{"ID":"<\/a>LIA-3050","Name":"InvalidEnvironment","Desc":"You used a function that only works in certain environments."}]
BodyActionTypeChangeEvent

Event used to change ActionState using the BodyAction name.

# Properties

[{"index":"string actionType","0":"Changed bodyAction."}]

[{"index":"int32 endFrameIndex","0":"Specifies the end frame of the animation played. You cannot exceed the number of total frames of the animation."}]

[{"index":"boolean needResetAction","0":"Forces the target avatar to play from the beginning if it is already playing the same state."}]

[{"index":"float playRate","0":"Control the speed of the avatar's animation."}]

[{"index":"int32 startFrameIndex","0":"Specifies the start frame of the animation played."}]

# Constructors

[{"index":"BodyActionTypeChangeEvent(boolean needResetAction = false, string actionType = \"\", int32 startFrameIndex = 0, int32 endFrameIndex = 2147483647, float playRate = 1)","0":"It is initialized with the specified same play state, BodyAction name, start and stop frames, and play speed."}]
ReadOnlyDictionary<K,V>

Use this hash table to save data to by key and value. Provides the function to add, remove, and search data and performs particularly well with searching. Each key must have a unique value. Empty values (nil) are not allowed. K represents the key type to be added to the hash table, and V represents the value type.

# Properties

[{"index":"number Count (ReadOnly)","0":"Gets the number of keys and values in the Dictionary."}]

[{"index":"table Keys (ReadOnly)","0":"Gets the table that includes the Dictionary keys."}]

[{"index":"table Values (ReadOnly)","0":"Gets the table that includes the Dictionary values."}]

# Methods

[{"index":"boolean ContainsKey(K key)","0":"Checks if the specified key is included in the Dictionary."}]

[{"index":"table ToTable()","0":"Generates a table that has the keys and values included in the Dictionary."}]

[{"index":"boolean, V TryGetValue(K key)","0":"Retrieves the specified key and the connected value."}]
LitMode

Selects the rendering method that will determine whether materials or objects will be affected by light sources.

# Members

[{"Name":"Default","Value":"0","Desc":"Follows the rendering methods set to WorldConfig. It's useful for when you want to control the Lit\/Unlit status of multiple objects without needing to set each one individually."},{"Name":"Unlit","Value":"1","Desc":"Not affected by a light source. This mode always renders the material's original colors and texture to max brightness regardless of the light source's color, intensity, or position. It's well suited for certain background elements such as UI that need to be emphasized."},{"Name":"Lit","Value":"2","Desc":"Affected by light sources. This mode is directly affected by placed light sources. The color and brightness of objects will change dynamically."}]

# Methods

[{"index":"LitMode CastFrom(number value) (Static)","0":"Converts numbers to the applicable type."}]

[{"index":"LitMode CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
UITouchDragEvent

An event that occurs when an ongoing mouse drag input is being made on the UI Entity.  
  
This event is triggered by the API below.

  * UITouchReceiveComponent (Space;Client)



# Properties

[{"index":"Entity Entity","0":"The Entity affected by the event."}]

[{"index":"Vector2 TouchDelta","0":"The distance moved by a touch or mouse input."}]

[{"index":"int32 TouchId","0":"The identifier that uniquely represents a specific input type. For example, left mouse click is -1, center mouse click is -2, and right mouse click is -3. Touch inputs on mobile devices are incremented starting from 1."}]

[{"index":"Vector2 TouchPoint","0":"The screen coordinates where the event occurred."}]

# Constructors

[{"index":"UITouchDragEvent(Entity entity = nil, Vector2 touchDelta = Vector2(0, 0), int32 touchId = 0, Vector2 touchPoint = Vector2(0, 0))","0":"Initializes UITouchDragEvent to the specified value."}]
Logic

This is the superclass of all logic. Provides basic functions of logic.

# Methods

[{"index":"EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)","0":"Links events. When a key-type event occurs in this service, a handler is notified. The handler receives event parameters."}]

[{"index":"EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)","0":"Links events. This service notifies a handler when an eventType event occurs. The handler receives event parameters."}]

[{"index":"boolean DisconnectEvent(string key, EventHandlerBase eventHandler)","0":"Disconnects the key-type event and its handler."}]

[{"index":"boolean DisconnectEvent(Type eventType, EventHandlerBase eventHandler)","0":"Disconnects the eventType event from its handler."}]

[{"index":"boolean IsClient()","0":"Returns whether the current execution environment is a client or not."}]

[{"index":"boolean IsServer()","0":"Returns whether the current execution environment is a server or not."}]

[{"index":"void SendEvent(EventType sendEvent)","0":"Generates an event."}]
DistanceJoint

Make sure the distance between the two Entities is kept constant. Two Entities act as if connected by a stick. It is used by adding it to Joints of DistanceJointComponent.

# Properties

[{"index":"boolean CollideConnected","0":"Sets whether two Entities connected by a Joint will collide with each other."}]

[{"index":"float Length","0":"Sets the distance to be maintained by two Entities connected by a Joint."}]

[{"index":"Vector2 LocalAnchorA","0":"Set the Anchor of the Entity with JointComponent. Use relative coordinates based on the Entity."}]

[{"index":"Vector2 LocalAnchorB","0":"Set the Anchor of the Entity connected by Joint. Use relative coordinates based on the Entity."}]

[{"index":"EntityRef TargetEntityRef","0":"Set the Entity to be connected with a Joint."}]

# Constructors

[{"index":"DistanceJoint()","0":"Initializes DistanceJoint to the default value."}]

[{"index":"DistanceJoint(DistanceJoint joint)","0":"Initializes DistanceJoint to the same value as the specified joint."}]
os

# Functions

[{"index":"any date(string format, integer time) (Static)","0":"Returns a string or table containing the date and time according to the format string."}]

[{"index":"any date(string format) (Static)","0":"Returns a string or table containing the date and time according to the format string."}]

[{"index":"any date() (Static)","0":"Returns a string containing the date and time."}]

[{"index":"number clock() (Static)","0":"Returns an approximation of the amount of CPU time in seconds used by the program."}]

[{"index":"integer time(table table) (Static)","0":"Returns the time. The table must have year, month, and day fields. May contain hour, min, sec, and isdst fields. All other fields are ignored."}]

[{"index":"integer time() (Static)","0":"Returns the current time."}]

[{"index":"number difftime(integer t2, integer t1) (Static)","0":"Returns the difference, in seconds, from time t1 to time t2."}]
FontStyleType

Expresses fonts in various ways.

# Members

[{"Name":"Normal","Value":"0","Desc":"Displays the text in a default style."},{"Name":"Bold","Value":"1","Desc":"Displays the text in bold."},{"Name":"Italic","Value":"2","Desc":"Italicizes the text."},{"Name":"Underline","Value":"4","Desc":"Underlines the text."},{"Name":"LowerCase","Value":"8","Desc":"Displays the text in lower case."},{"Name":"UpperCase","Value":"16","Desc":"Displays the text in upper case."},{"Name":"SmallCaps","Value":"32","Desc":"Displays all of the text in upper case but makes upper case letters look bigger than lower case letters."},{"Name":"Strikethrough","Value":"64","Desc":"Displays the text with a strikethrough."}]

# Methods

[{"index":"FontStyleType CastFrom(number value) (Static)","0":"Converts numbers to the applicable type."}]

[{"index":"FontStyleType CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
TextAlignmentType

Indicates text alignment options.

# Members

[{"Name":"UpperLeft","Value":"0","Desc":"Sort by the top-left corner."},{"Name":"UpperCenter","Value":"1","Desc":"Sort by the top corner."},{"Name":"UpperRight","Value":"2","Desc":"Sort by the top-right corner."},{"Name":"MiddleLeft","Value":"3","Desc":"Sort by the left center."},{"Name":"MiddleCenter","Value":"4","Desc":"Sort by the center."},{"Name":"MiddleRight","Value":"5","Desc":"Sort by right center."},{"Name":"LowerLeft","Value":"6","Desc":"Sort by the bottom-left corner."},{"Name":"LowerCenter","Value":"7","Desc":"Sort by the bottom corner."},{"Name":"LowerRight","Value":"8","Desc":"Sort by the bottom-right corner."}]

# Methods

[{"index":"TextAlignmentType CastFrom(number value) (Static)","0":"Converts numbers to the applicable type."}]

[{"index":"TextAlignmentType CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
NexonOtpStateType

Indicates whether the user uses two-factor authentication. Two-factor authentication is applied differently for each account type.\nKorean accounts use Nexon OTP as a two-factor authentication method.\nGlobal accounts use SMS and Google Authenticator as two-factor authentication methods.

# Members

[{"Name":"Unknown","Value":"-1","Desc":"System error. Cannot confirm two-factor authentication."},{"Name":"Inactive","Value":"0","Desc":"This account does not use two-factor authentication. If it's a Korean account, this account does not use Nexon OTP. If it's a global account, this account does not use two-factor authentication."},{"Name":"Active","Value":"1","Desc":"This is the value returned when two-factor authentication is completed. Korean accounts use Nexon OTP. Global accounts use SMS or Google Authenticator authentication."}]

# Methods

[{"index":"NexonOtpStateType CastFrom(number value) (Static)","0":"Convert numbers to the applicable type."}]

[{"index":"NexonOtpStateType CastFrom(string value) (Static)","0":"Convert strings to the applicable type."}]
WorldShopProduct

Product information obtained from WorldShopService.

# Properties

[{"index":"string Description","0":"The description of the product."}]

[{"index":"DateTime EndSalesPeriod","0":"Date and time of the end of the sale. It has a valid value only when HasSalesPeriod is true."}]

[{"index":"boolean HasSalesPeriod","0":"Makes sure the sales period is set."}]

[{"index":"string Id","0":"The identifier of the product."}]

[{"index":"string Name","0":"The name of the product."}]

[{"index":"int32 Price","0":"The price of the product."}]

[{"index":"DateTime StartSalesPeriod","0":"Date and time of starting the sale. It has a valid value only when HasSalesPeriod is true."}]

[{"index":"WorldShopProductStatus Status","0":"The sale status of the product."}]

[{"index":"string ThumbnailRUID","0":"The RUID of the world thumbnail image."}]

[{"index":"WorldShopProductType Type","0":"The type of the product."}]
BadgeInfo

Indicates the badge's information.

# Properties

[{"index":"string Description (ReadOnly)","0":"The description of the badge."}]

[{"index":"DateTime EndAcquisitionPeriod (ReadOnly)","0":"The date and time when the acquisition ended. It has a valid value only when HasAcquisitionPeriod is true."}]

[{"index":"BadgeGrade Grade (ReadOnly)","0":"The grade of the badge."}]

[{"index":"boolean HasAcquisitionPeriod (ReadOnly)","0":"Checks if the acquisition period exists."}]

[{"index":"string Id (ReadOnly)","0":"The Id of the badge."}]

[{"index":"string Name (ReadOnly)","0":"The name of the badge."}]

[{"index":"DateTime StartAcquisitionPeriod (ReadOnly)","0":"The date and time when the acquisition started. It has a valid value only when HasAcquisitionPeriod is true."}]

[{"index":"BadgeStatus Status (ReadOnly)","0":"The obtainable status of the badge."}]

[{"index":"string ThumbnailRUID (ReadOnly)","0":"The RUID of the thumbnail image of the badge."}]
TextVerticalAlignmentOption

How to align vertical text.

# Members

[{"Name":"Top","Value":"256","Desc":"Aligns the text to the top of the text box."},{"Name":"Middle","Value":"512","Desc":"Aligns the text to the center of the text box."},{"Name":"Bottom","Value":"1024","Desc":"Aligns the text to the bottom of the text box."},{"Name":"Baseline","Value":"2048","Desc":"Aligns the first line to the center of the text box based on the bottom line of the text."},{"Name":"Geometry","Value":"4096","Desc":"Aligns the center of the entire text to the center of the text box."},{"Name":"Capline","Value":"8192","Desc":"Aligns the text so that it is centered in the area based on the center of the first line."}]

# Methods

[{"index":"TextVerticalAlignmentOption CastFrom(number value) (Static)","0":"Converts numbers to the applicable type."}]

[{"index":"TextVerticalAlignmentOption CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
[MCI22] Developer Conference

Look at the past, present and future of MapleStory Worlds in the MCI22 Developer Conference video.

$$youtube /M2uiPXv50hM?t=1821 $$

[30:21](https://www.youtube.com/watch?v=M2uiPXv50hM&t=1821s) MSW's new attempt introduction \- Sung Yul, Future Unit of MSW [53:21](https://www.youtube.com/watch?v=M2uiPXv50hM&t=3201s) Create MSW Game with Global IP \- Yun Sung -jae, Game production Unit of MSW [1:13:57](https://www.youtube.com/watch?v=M2uiPXv50hM&t=4437s) MSW made with users \- Lee Jong-yoon, Game UX Analysis team of Intelligence labs [1:26:16](https://www.youtube.com/watch?v=M2uiPXv50hM&t=5176s) Let's make the possibility a reality! The Challenge of MSU EDU \- Lee Joo-young, Platform partnership business part of N Platform business team
RectTileEnterEvent

This event occurs when entering a specific quadrangle tile.  
  
This event is triggered by the API below.

  * KinematicbodyComponent (Space;Server,Client)
  * SideviewbodyComponent (Space;Server,Client)



# Properties

[{"index":"Entity Entity","0":"An Entity that collided with a tile."}]

[{"index":"KinematicbodyComponent Kinematicbody (Deprecated)","0":"This property is deprecated. Use the Entity property."}]

[{"index":"RectTileInfo TileInfo","0":"Details of the tile."}]

[{"index":"RectTileMapComponent TileMap","0":"The RectTileMapComponent that owns the tile with the occurring event."}]

[{"index":"Vector2Int TilePosition","0":"The location of the tile."}]

# Constructors

[{"index":"RectTileEnterEvent(KinematicbodyComponent kinematicbody = nil, RectTileMapComponent tileMap = nil, Vector2Int tilePosition = Vector2Int(0, 0), RectTileInfo tileInfo = nil, Entity entity = nil)","0":"Initializes RectTileEnterEvent to the specified value."}]
RectTileLeaveEvent

This event occurs when leaving a specific quadrangle tile.  
  
This event is triggered by the API below.

  * KinematicbodyComponent (Space;Server,Client)
  * SideviewbodyComponent (Space;Server,Client)



# Properties

[{"index":"Entity Entity","0":"An Entity that collided with a tile."}]

[{"index":"KinematicbodyComponent Kinematicbody (Deprecated)","0":"This property is deprecated. Use the Entity property."}]

[{"index":"RectTileInfo TileInfo","0":"Details of the tile."}]

[{"index":"RectTileMapComponent TileMap","0":"The RectTileMapComponent that owns the tile with the occurring event."}]

[{"index":"Vector2Int TilePosition","0":"The location of the tile."}]

# Constructors

[{"index":"RectTileLeaveEvent(KinematicbodyComponent kinematicbody = nil, RectTileMapComponent tileMap = nil, Vector2Int tilePosition = Vector2Int(0, 0), RectTileInfo tileInfo = nil, Entity entity = nil)","0":"Initializes RectTileLeaveEvent to the specified value."}]
CameraBlendType

This is how to create a camera transition.

# Members

[{"Name":"Cut","Value":"0","Desc":"Transitions cameras instantly."},{"Name":"EaseInOut","Value":"1","Desc":"The camera transitions smoothly according to the S-curve."},{"Name":"EaseIn","Value":"2","Desc":"Starts and stops camera transitions at a linear rate."},{"Name":"EaseOut","Value":"3","Desc":"Starts camera transitions at a slow pace, gradually increasing the speed to stop the transitions."},{"Name":"HardIn","Value":"4","Desc":"Starts at a slow pace, gradually increases the speed and stops the transition."},{"Name":"HardOut","Value":"5","Desc":"Starts at a fast pace, gradually slows down and stops the transition."},{"Name":"Linear","Value":"6","Desc":"Transitions the camera at a linear speed."}]

# Methods

[{"index":"CameraBlendType CastFrom(number value) (Static)","0":"Converts numbers to the applicable type."}]

[{"index":"CameraBlendType CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
AvatarBodyActionSelectorComponent

This Component selects and applies the avatar's body Action.

# Properties

[{"index":"MapleAvatarBodyActionState ActionState","0":"Current state is Action."}]

[{"index":"ReadOnlyDictionary> StateActionDic (ReadOnly) (HideFromInspector)","0":"Information value about the state. This will be improved later."}]

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"Checks whether Component is activated or not."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"Displays whether this Component is Enable in the hierarchy. If Entity Enable is false regardless of Component Enable, returns false."}]

[{"index":"Entity Entity (ReadOnly)","0":"The Entity that owns this component."}]

# Methods

##### inherited from Component:

[{"index":"boolean IsClient()","0":"Returns whether the current execution environment is a client or not."}]

[{"index":"boolean IsServer()","0":"Returns whether the current execution environment is a server or not."}]

# Events

[{"index":"ActionStateChangedEvent","0":"This event occurs when the action state changes."}]
HitEvent

This event occurs when an entity is hit.  
  
This event is triggered by the API below.

  * HitComponent (Space;Server,Client)



# Properties

[{"index":"Vector2 AttackCenter","0":"The center of the attack."}]

[{"index":"Entity AttackerEntity","0":"The attacker entity. It can also be nil."}]

[{"index":"List Damages","0":"The list of damage to be displayed separately."}]

[{"index":"any Extra","0":"Other attack information."}]

[{"index":"HitFeedbackAction FeedbackAction (Deprecated)","0":"This property is deprecated."}]

[{"index":"boolean IsCritical","0":"Checks if the attack is critical."}]

[{"index":"integer TotalDamage","0":"Total damage."}]

# Constructors

[{"index":"HitEvent(Vector2 attackCenter = Vector2(0, 0), Entity attackerEntity = nil, List damages = nil, any extra = nil, HitFeedbackAction feedbackAction = HitFeedbackAction.Default, boolean isCritical = false, integer totalDamage = 0)","0":"Initializes HitEvent to the specified value."}]