WorldConfig

# Course Introduction

MapleStory Worlds provides various world setting functions in WorldConfig. The features of WorldConfig have an overall impact on the world you create.

##### Reference Guide

  * [Execution Space Control](/docs/?postId=210)
  * [Effective MSW 2](/docs/?postId=560)
  * [Preparation for Packet Change](/docs?postId=1102%7B%22target%22:%22_blank%22%7D)
  * [Server Verification Example](/docs?postId=1084)



# Introduce WorldConfig

You can customize a variety of settings in your world through the WorldConfig menu.

  * Press Edit - WorldConfig.
  * Detailed settings appear in the Property Editor window when you select Workspace - WorldConfig.



[png](17114447139367ac91d0b1e984ea3bba1d2ee1e30882e)

# LegacyAnimation

On March 23, 2023, the avatar movements and animations in MapleStory Worlds were changed to behave similarly to the original MapleStory. If the creator's World was created before the update date, enable LegacyAnimation to apply the avatar movements and animations from the previous MapleStory Worlds. However, we do not recommend applying LegacyAnimation to the Worlds created after the update date, as the current avatar movements are similar to the original MapleStory. The previous and current movements are as follows.

[{"index":"true","0":"[gif](16957010690636f2b8b04e7494501a3765817083d211d)"},{"index":"false","0":"[gif](1695701089240b13b2ad54232422582e9fd9f8b9c8e04)"}]

# PlayerEntityAuthorityCheck

Calls the server functions of components belonging to the player entity only by the local client. Enabling this setting can increase the security of the World. For example, the `MoveToMapPosition()` function of a component belonging to DefaultPlayer whose execution space is server cannot be called by any client other than the local client. When you execute the function, an error message appears in the console window.
    
    
    @Component
    script TargetPlayerMover extends Component
        @ExecSpace("ClientOnly")
        method void NewFunction()
        local targetEntity = nil
        for key, value in pairs(_UserService.UserEntities) do
        	if key ~= _UserService.LocalPlayer.Name then
        		targetEntity = value
        		break
        	end
        end
    
        if targetEntity ~= nil then
        	targetEntity.PlayerComponent:MoveToMapPosition("map01", Vector2(0, 3))
        end
        end
    end
    

[png](169571933009917b0b6c1d9994fe9a9e71fa7ff2dacbd)

# ServiceAuthorityCheck

Changes all Server functions of the service to behave as ServerOnly functions. Enabling this setting can increase the security of the World. For example, if you run a function whose execution space is server in the client only function as shown below, an error message appears in the console window when it is executed.
    
    
    @Component
    script SpawnLifter extends Component
        @ExecSpace("ClientOnly")
        method void OnMapEnter(Entity enteredMap)
        _TeleportService:TeleportToMapPosition(me, currentPosition + Vector3(0, 2, 0), currentMapName)
        end
    end
    

[png](169570858853819399808907c4a219ad5a93aa6dcab19)

# RestrictedPlayerEntitySync

Sets the Sync property of the native component belonging to the player entity to prevent the values changed on the client from being synchronized to the server. Enabling this setting can increase the security of the World. For example, if you type a message in `ChatBalloonComponent.Message` on the client, the chat balloon will not appear on other players' screens, since it is not synchronized to the server.
    
    
    @Component
    script ChatBalloonDisplay extends Component
        @ExecSpace("ClientOnly")
        method void ShowChatBalloon()
        local chatBalloon = self.Entity.ChatBalloonComponent
        chatBalloon.ChatModeEnabled = false
        chatBalloon.AutoShowEnabled = true
        chatBalloon.Message = "MapleStory Worlds"
        end
    end
    

However, the following components are not affected by the RestrictedPlayerEntitySync. Note that if you belong to the player entity, synchronization from client to server is always performed.

  * MovementComponent
  * PlayerControllerComponent
  * StateComponent
  * TransformComponent



# SourceLanguage

If the player uses the [Automatic Translation](/docs/?postId=1072) feature in the World, it uses the language of SourceLanguage as the translation target. Currently, you can use Korean and English as the original language. More languages may be available after future updates.

# LocalWorkspace

This allows you to download a creator's World data to the creator's desktop (Local). You can save various entries and data from the World as files on your desktop. For more information, please refer to the [LocalWorkspace](/docs/?postId=1165%7B%22target%22:%22_blank%22%7D) guide.

# WorldOrientation

You can change the world's orientation. Choose Landscape, Portrait, or Responsive to apply it to the entire world.

  * Landscape: The world will launch in a horizontal orientation.
  * Portrait: The world will launch in a vertical orientation.
  * Responsive: The world will launch in a responsive mode.



# UseLitDefaultMaterial

Activating UseLitDefaultMaterial will treat all entities as if their LitMode is set to Lit. So the entities will be affected by other light sources and have their surface color or brightness change. However, entities that can have the LitMode set separately will follow the separately LitMode value. Activating UseLitDefaultMaterial will take you to the lobby, and it will be applied when re-entering.