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

Executes child nodes until the child node returns Failure.

# Properties

##### inherited from BTNode:

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

[{"index":"func InitFunction","0":"Initialization calls this function."}]

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

[{"index":"AIComponent ParentAI (ReadOnly) (HideFromInspector)","0":"AIComponent to have the node."}]

# Constructors

[{"index":"SequenceNode(string name = \"SequenceNode\")","0":"Initializes SequenceNode to the specified name."}]

# Methods

##### inherited from CompositeNode:

[{"index":"void AttachChild(BTNode node)","0":"Incorporates the node as a child."}]

[{"index":"void AttachChildAt(BTNode node, int32 index)","0":"Incorporates the node as a child at the index position. Index starts at 1."}]

[{"index":"boolean DetachChild(BTNode node)","0":"Detaches a child node."}]

[{"index":"boolean DetachChild(string nodeName)","0":"Finds and detaches nodeName child node."}]

[{"index":"void DetachChildAt(int32 index)","0":"Detaches the child node at index position. Index starts at 1."}]

##### inherited from BTNode:

[{"index":"BehaviourTreeStatus Behave(float deltaTime)","0":"Executes the node. The deltaTime refers to the duration between the previous frame and the current frame. Defined in seconds."}]
LeaderboardResultCode

Displays the leaderboard-related request processing results.

# Members

[{"Name":"Unknown","Value":"-1","Desc":"An unknown error has occurred."},{"Name":"Ok","Value":"0","Desc":"Request processing was successful."},{"Name":"InvalidEnvironment","Value":"1000000","Desc":"Unavailable from the current execution environment."},{"Name":"InternalError","Value":"1000001","Desc":"An internal system error has occurred."},{"Name":"BadRequest","Value":"1000002","Desc":"Invalid request."},{"Name":"TooManyLeaderboard","Value":"1000003","Desc":"Exceeded the max number of leaderboards."},{"Name":"NotSupportedValue","Value":"1000004","Desc":"Unsupported parameter value."},{"Name":"NotSupportedMode","Value":"1000005","Desc":"Unsupported setting."},{"Name":"InvalidResetDate","Value":"1000006","Desc":"The reset date and time has been set in the past."},{"Name":"LeaderboardNotFound","Value":"1000007","Desc":"Leaderboard not found."},{"Name":"NotHighScore","Value":"1000008","Desc":"You attempted to register a score lower than the previous score when the score update method is set to LeaderboardScoringStrategy.High."},{"Name":"ScoreNotFound","Value":"1000009","Desc":"Score information not found."}]

# Methods

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

[{"index":"LeaderboardResultCode CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
Utilizing the Mobile Device Vibration Function

# Course Introduction

Use the vibration function of mobile devices to give extra feedback to your players.

# MobileVibratorService

You can enable vibration on mobile devices by utilizing `MobileVibratorService`. This feature is still in testing and is only available on mobile devices, so it will not work normally when tested in the Maker.

# Example

Let's make it so that each time a button is pressed, a notification will pop up accompanied by a vibration.

[gif](16691656921273488fc31718d491dafd206dc89dd0996)

  1. Select UI Editor - ui - DefaultGroup - Create Entity - Create Button and place UIButton_Vib. 
     * ImageRUID: e00ce931b027545449e68e06b0f0b411
  2. Create the new Vibrate component and add it to UIButton_Vib.
  3. Add ButtonClickEvent to Vibrate component and set it to UIButton_vib after changing to entity. 
         
         @Component
         script ButtonVibrationFeedback extends Component
         @EventSender("Self")
         handler HandleButtonClickEvent(ButtonClickEvent event)
         local Entity = event.Entity
         --------------------------------------------------------
         if _MobileVibratorService:IsHWSupported() then
             _MobileVibratorService:Vibrate()
             _UIToast:ShowMessage("Vibration On")
         end
         end
         end
         



    
    
    6. Create a private World and test the vibration on your mobile device.
    
    >**Learn more**
    > Toast UI is editable in the UI Editor - ToastGroup.
MatchmakingResultCode

Displays the matchmaking-related request processing results.

# Members

[{"Name":"Unknown","Value":"-1","Desc":"An unknown error has occurred."},{"Name":"Ok","Value":"0","Desc":"Request processing was successful."},{"Name":"InvalidEnvironment","Value":"1000000","Desc":"Unavailable from the current execution environment."},{"Name":"InternalError","Value":"1000001","Desc":"An internal system error has occurred."},{"Name":"BadRequest","Value":"1000002","Desc":"Invalid request."},{"Name":"AlreadyMatching","Value":"1000003","Desc":"Matchmaking is already in progress."},{"Name":"NotMatched","Value":"1000004","Desc":"Matchmaking was unsuccessful."},{"Name":"UserNotFound","Value":"1000005","Desc":"Player not found."},{"Name":"NotMatching","Value":"1000006","Desc":"Not currently matchmaking."},{"Name":"MatchingExpired","Value":"1000007","Desc":"Matchmaking has expired."},{"Name":"LeaderboardNotFound","Value":"1000008","Desc":"Leaderboard not found."},{"Name":"ScoreNotFound","Value":"1000009","Desc":"Score information not found."},{"Name":"RequestNotFound","Value":"1000010","Desc":"Matchmaking request history not found."},{"Name":"AlreadyMatched","Value":"1000011","Desc":"Matchmaking already succeeded."}]

# Methods

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

[{"index":"MatchmakingResultCode CastFrom(string value) (Static)","0":"Converts strings to the applicable type."}]
SyncList<V>

An array of dynamic size. It's possible to access elements with a 1-based index and provide functions to add, remove, and search data. V represents the data type that can be added to the array.

# Properties

[{"index":"number Count (ReadOnly)","0":"Gets the number of elements in the List."}]

# Methods

[{"index":"boolean Contains(V item)","0":"Checks whether the List contains an element."}]

[{"index":"number IndexOf(V item)","0":"Returns the index of the first element in the List."}]

[{"index":"table ToTable()","0":"Generates a table with the elements included in the List."}]

[{"index":"void Add(V item)","0":"Adds an element to the end of the List."}]

[{"index":"void AddRange(table items)","0":"Adds the table element to the end of the List."}]

[{"index":"void Clear()","0":"Removes all elements in the List."}]

[{"index":"void Insert(number index, V item)","0":"Inserts an element into the List at the specified index."}]

[{"index":"number LastIndexOf(V item)","0":"Returns the index of the last element in the List."}]

[{"index":"boolean Remove(V item)","0":"Removes the first occurrence of the specific element in the List."}]

[{"index":"void RemoveAt(number index)","0":"Removes the element at the specified index from the List."}]

[{"index":"void RemoveRange(number index, number count)","0":"Removes the element from the List according to the specified range."}]
UIGroupComponent

Indicates a UIGroup that groups UI Entities and sets the group's attributes. UIGroup can be created/deleted from the UIGroup edit window.

# Properties

[{"index":"boolean DefaultShow","0":"Sets whether to activate the group by the start of the game. It will start as inactive when it's set to false."}]

[{"index":"int32 GroupOrder","0":"The layer order within the UIGroup. The higher GroupOrder's value is, the higher the layer is placed in the UIGroup edit window."}]

[{"index":"UIGroupType GroupType","0":"Sets the type of UIGroup.* DefaultType: This is a default UIGroup. It's automatically created when the World is first created, and cannot be deleted.* UIType: UIGroup created directly in the UI editor.* EditorType: UIGroup created directly in the UI editor. It becomes the Editor UIGroup that can be used when editing the scene."}]

##### 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."}]
Importing a Custom Image

# Course Introduction

You can add any image resources you need to the game and utilize them in Maker.

# Image Import

  1. Open the context menu of Workspace - MyDesk and select Import From - Import Image. [png](1687511864531a541669c7cc441c1985c2a9b4c307622)   

  2. Select and load the image you'd like to use. Imported image files will be created individually under MyDesk. [png](1656401376188e2b90ccfa05b4ffab1737e46930903c3)   

  3. You can utilize the image in any way you'd like.



# Image Utilization

There are three main ways to place an image.

The first method is to open the context menu of images to be used in Workspace - MyDesk and click Place To Hierarchy. [png](1687512556186a61f88719dfd4f82994335f2831d5f49)   
The second method is to place the image to be used into Scene from Workspace - MyDesk. [gif](1656656308226c74e950564b4428db3edd9c04a2368c7)   
The third method is to place it into Scene from Workspace - NativeModel and change the value of Sprite RUID and Image RUID to use it. [png](1635395341076bd0bed7dba0d4a6c890d8eafec477074)

You can utilize images easily through these methods.

##### Reference Guide

[Sprite Color Adjustment](/docs?postId=116)
LineGUIRendererComponent

Draws a line in UI and provides the function to set the properties of the line.

# Properties

[{"index":"float Flexibility","0":"Adjusts the width of the bending part. It is applied when IsFlexible is true."}]

[{"index":"boolean IsFlexible","0":"Sets whether to draw the bending part continuously or separately."}]

[{"index":"boolean IsSmooth","0":"Draws a smooth curve if true, draws a sharp line if false."}]

[{"index":"boolean Loop","0":"If true, a closed line will be drawn automatically to connect the start and end points."}]

[{"index":"string MaterialId (Sync)","0":"Specifies the Id of the material to be applied to the renderer."}]

[{"index":"SyncList Points","0":"The group of dots that form a line."}]

##### 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

[{"index":"void ChangeMaterial(string materialId)","0":"Replaces the material to be applied to the renderer."}]

##### 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."}]
PolygonGUIRendererComponent

This feature allows you to draw polygons in UI.

# Properties

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

[{"index":"string MaterialId (Sync)","0":"Specifies the Id of the material to be applied to the renderer."}]

[{"index":"SyncList Points","0":"The group of dots that form a polygon."}]

[{"index":"boolean UseCustomUVs","0":"If true, the UV value ​​set in the UVs is applied to the shape."}]

[{"index":"SyncList UVs","0":"Sets the vertex's UV. It must have the same length as Points."}]

##### 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

[{"index":"void ChangeMaterial(string materialId)","0":"Replaces the material to be applied to the renderer."}]

[{"index":"boolean IsDrawable() (ClientOnly)","0":"Connect dots saved in Points property to see if they make up a polygon. The polygon will not be completed if any lines cross with one another."}]

##### 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."}]
DamageSkinSettingComponent

Specifies the damage skin type for attacks. The attacked entity must have DamageSkinSpawnerComponent.

# Properties

[{"index":"float Alpha (Sync)","0":"Set the Alpha value of the damage skin."}]

[{"index":"DataRef DamageSkinId (Sync)","0":"Sets the damage skin's type."}]

[{"index":"Vector2 DamageSkinScale (Sync)","0":"Sets the damage skin's size."}]

[{"index":"float DelayPerAttack (Sync)","0":"Sets the damage skin's delay time in seconds. Please refer to the GetDisplayHitCount(attackInfo) function of AttackComponent."}]

[{"index":"LitMode LitMode (Sync)","0":"Selects the rendering method that will determine whether materials or objects will be affected by light sources."}]

[{"index":"float PlayRate (Sync)","0":"Set the playback speed of the damage skin."}]

[{"index":"DamageSkinTweenType TweenType (Sync)","0":"Sets the damage skin's movement format."}]

##### 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."}]
AccountTrustLevel

The user account's authentication level. Different account authentication methods apply to each account type.\nKorean accounts use Nexon OTP as a two-factor authentication method.\nGlobal accounts use SMS and Google Authenticator as two-faction authentication methods.\nConsider advising players on what forms of authentication they need for their account type.

# Members

[{"Name":"Level0","Value":"0","Desc":"If this is a Korean account, this account has not completed e-mail authentication. If this is a global account, this account has not completed either SMS or Google Authenticator authentication from account security settings."},{"Name":"Level1","Value":"1","Desc":"This account has completed e-mail verification for a Korean account. If it's a global account, this account has only completed either SMS or Google Authenticator authentication, or they have not registered a Phone Number. Currently, the function to distinguish between Level 0 and Level 1 has not been implemented, so the UserAccountTrustLevel value of Level 1 is also returned as 0. The function to distinguish between Level 0 and Level 1 will be updated in the future."},{"Name":"Level2","Value":"2","Desc":"For Korean accounts, this account has completed e-mail authentication and identity verification. For global accounts, this account has completed both SMS and Google Authenticator authentication and has a registered Phone Number on account security settings."},{"Name":"Unknown","Value":"1000000","Desc":"Authentication level value cannot be retrieved due to system error."}]

# Methods

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

[{"index":"AccountTrustLevel CastFrom(string value) (Static)","0":"Convert strings to the applicable type."}]
User Feedback Settings

# Course Introduction

User feedback notifications allow creators to periodically receive positive feedback on the worlds they have created. In this course, we'll learn how to set up user feedback notifications.

# User Feedback Notifications

## Notification Settings

You can set up the user feedback notifications in both Pro and Design Modes.

[{"index":"Pro Mode","0":"File - User Feedback Setting[png](1684311904185def4420d2f0e48c18facb47c8e4771b3)"},{"index":"Design Mode","0":"Menu - User feedback settings[png](172717940567833e02d006ca54a0586cb2b26081cccc7)"}]

  
The User Feedback Notification Settings window contains the following items: [png](1727179447229b13d3d4b60e345b889a24464b2fbe5d4) 

[{"Item":"Plays","Desc":"Shows the names and number of users who have played your world."},{"Item":"Likes","Desc":"Shows the names and number of users who have liked your world."},{"Item":"Favorites","Desc":"Shows the names and number of users who have favorited your world."},{"Item":"Frequency","Desc":"Sets the notification frequency.The notification frequency is calculated starting from the time you press the Apply button."}]

## Notification Display

User feedback notifications are printed in both PC and mobile environments. For example, when playing MapleStory Worlds on a mobile device, the following message will appear. [gif](16843874714860fd65aedc9fb425ca6d030881d8b0d72)

> Learn More Notifications delivered while the MapleStory Worlds app on mobile devices is inactive will be displayed as background push notifications.
GlobalDataStoragePages

Provides a feature that can inquire about GlobalDataStorage of the world.

# Properties

[{"index":"boolean IsLastPage (ReadOnly)","0":"Checks whether the current page is the last."}]

# Methods

[{"index":"table GetCurrentPageDatas() (ServerOnly)","0":"Gets a GlobalDataStorage list of the current page."}]

[{"index":"int32 LoadNextPageAndWait() (ServerOnly) (Yield)","0":"Loads the next page and returns the error code. Can move to the loaded page using the MoveToNextPageAndWait function. Suspends script executions during performance."}]

[{"index":"void MoveToNextPageAndWait() (ServerOnly) (Yield)","0":"Goes to the next page. Script executions are suspended during the operation."}]

# Examples

This is an example of traversing through pages.
    
    
    @Component
    script ContentPageIterator extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            while true do
            	local datas = pages:GetCurrentPageDatas()
            	for _, data in pairs(datas) do
            		log(data.Name)
            	end
            
            	-- You can check if the current page is the last page using the IsLastPage property.
            	if pages.IsLastPage == true then
            		return
            	end
            
            	-- Preloads the data for the next page and stops the inquiry if the next page is invalid.
            	local loadResultCode = pages:LoadNextPageAndWait()
            	if loadResultCode ~= 0 then
            		return
            	end
            
            	-- Moves to the next page.
            	pages:MoveToNextPageAndWait()
            end
        end
    end
    

# SeeAlso

  * DataStorageService
EntryService

Provides features related to the entity.

# Methods

[{"index":"string GetDataSetIdByName(string name)","0":"Finds and returns the DataSet Id by the DataSet name."}]

[{"index":"string GetMaterialIdByName(string name)","0":"Finds and returns the material Id by the material name."}]

[{"index":"string GetModelIdByName(string name)","0":"Find and return the model Id by the model name."}]

##### inherited from Service:

[{"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 event with the key-type event and the handler."}]

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

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

# Examples

#### GetModelIdByName
    
    
    @Component
    script NamedModelSpawner extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            local modelId = _EntryService:GetModelIdByName("NewModel")
            if modelId ~= nil then 
                _SpawnService:SpawnByModelId(modelId , "NewEntity" , Vector3.zero , self.Entity)   
            end
        end
    end
    

# SeeAlso

  * SpawnService
KickReason

Indicates the reason for the user's expulsion.

# Members

[{"Name":"Profanity","Value":"0","Desc":"This is used to expel users who have used profanity or obscene comments from the world."},{"Name":"RuleViolation","Value":"1","Desc":"This is used to expel users who violate the rules from the world."},{"Name":"AFK","Value":"2","Desc":"This is used to expel a user who has been away from the world for a long time."},{"Name":"Scam","Value":"3","Desc":"This is used to expel users from the world who have attempted cash transactions, fraud, or false advertisements."},{"Name":"BadManner","Value":"4","Desc":"This is used to expel a user who has caused damage to other users from the world."},{"Name":"Misrepresentation","Value":"5","Desc":"This is used to expel users who impersonated others."},{"Name":"PrivacyInfringement","Value":"6","Desc":"This is used to expel users who leak or infringe other people's personal information."},{"Name":"ETC","Value":"7","Desc":"This is used to expel users who have committed inappropriate behavior that does not fall under the existing reasons for expulsion."},{"Name":"WorldError","Value":"8","Desc":"This is used to expel a user due to an error that occurred in the world."},{"Name":"WorldContent","Value":"9","Desc":"This is used to expel a user by world content."}]

# Methods

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

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