# P12 Editor Alpha v0.8.3.1 Release Notes

By [Project Twelve](https://paragraph.com/@p12) · 2022-10-26

---

![](https://storage.googleapis.com/papyrus_images/a07b966c8357c3b9cd7174ba55dc9412db63ab011caeb5958dc26ca56cdaada6.png)

### New Features:

**\[Editor\] - Object Manager - Drag and drop objects to the top and bottom edges of the panel in the Object Manager bar to perform panel sliding**

*   Panel sliding is performed when dragging objects to the top and bottom edges of the object manager panel in the object manager
    

**\[Editor\] - Special character restriction optimization**

*   Optimize the editor with different special character restriction rules
    
    *   Project name now allows input of (1) Chinese (2) English (3) numbers (4) "-" (5) "\_"
        
*   Object Manager now has no character restrictions
    
*   Property Panel now has no character restrictions
    
*   Publish game name now allows input of (1) Chinese (2) English (3) numbers (4) "\_" (5) ":" (6) "-" (7) " ?" (8) "!" (9)", "(10)" ("(11)")"
    

**\[Editor\] - Object Manager: Object Manager can now perform searches by object ID**

**\[Editor\] - Object Manager: Now automatically adds a serial number to the name after copying the object**

**\[Editor\]-Color Picker logic optimization**

*   Optimize the color palette, real-time changes in the color effect will be changed in the main viewport corresponding to the final effect after clicking OK, click cancel to return to the state before color mixing
    

**\[WorldRun\]-Optimize resource loading** Optimized the timing of dynamic resource loading, solving the problem that the main thread takes too long to match the information received after blocking due to resource loading, and improved the game loading speed.

**\[WorldRun\]-User TS script compilation optimization** Used esbuild to improve compilation speed, improve PIE startup speed

**\[Engine\]-Automatic merging of static models** New auto-merge static models feature to optimize game performance.

**\[GamePlay\]-New overhead UI function**

*   Added new overhead UI function, through the game function object - World UI, developers can choose UI type - OverheadUI (Overhead UI)
    
*   Instructions：
    
    1.  Drag the world UI function object into the object list and select the header UI type.
        
    2.  Set the parameters of the header UI such as maximum visible distance, whether it can be obscured, and whether to turn on near large and far small.
        
    3.  Bind the designed UI object to the UI object of the header UI.
        
    4.  Finally, we bind the following script to finish the display of the header UI.
        
            //Bind character overhead slot player.Character.AttachGameObjectToCharacter(this._UIWdiget, GamePlay.CharacterSocketType.Root); //Set the position offset of the overhead UI this._UIWdige.SetRelativeLocation(new Type.Vector(0, 0, 150))
            
        

**\[GamePlay\]-Prefab Features**

**\[GamePlay\] - New four-wheeled vehicle object**

*   Add a new game feature object: four-wheeled vehicle, through which developers can quickly create a four-wheeled vehicle with physical characteristics.
    
*   Instructions:
    
    *   Mount the four-wheeled carrier function object to the vehicle skeleton model sublevel for use.
        
*   Select the four-wheeled carrier function object, you can modify the base attributes in the property panel.
    
*   Select the carrier camera, you can modify the properties of the carrier exclusive camera in the property panel.
    

**\[API\]-Extend scale interface to support dynamic setting of character scaling**

Scaling property in the Property Panel:

Related API

    player.character.scale = new Type.Vector(0.5,0.5,0.5);
    

**\[API\]-New phone vibration interface**

    /*
    Provided a new interface to support calling the phone vibration function
    */
    GamePlay.isDynamicVibration(true); //Start vibration 
    GamePlay.isDynamicVibration(false); //End vibration
    

**\[API\]-New time dilation interface**

    /*
    Provided an interface to control the time dilation of specified objects
    Provided an interface to control the world time dilation, when the world time dilation, all objects will control the impact
    */
    Global.setGlobalTimeDilation(0.5);; //Set world time dilation
    GamePlay.GetCurrentPlayer().setCustomTimeDilation(0.5); //Set character time dilation
    

**\[API\]-New HTTP web request interface**

    //Request HTTP
    MWCore.fetch("http://www.baidu.com").then(response => {
        if (!response.ok) {
            return Promise.reject(new Error(`Failed to fetch baidu: ${response.status}`));
        }
        console.log(`ResponseCode: ${response.status}`);
        console.log(`Headers: ${JSON.stringify(Array.from(response.headers.keys()))} ${JSON.stringify(Array.from(response.headers.values()))}`);
        return response.text();
    }).then(content => {
        console.log(`Content: ${content}`);
    });
    

**\[API\]-New effect object interface**

    /*
    New effect object property setting/getting interface
    */
    get effectRangeType(): effectRangeType; //Get effect type
    set effectRangeType(inEffectRangeType: effectRangeType);  //Set effect type
    get effectRangeShape(): effectRangeShape;  //Get effect shapes
    set effectRangeShape(inEffectRangeShape: effectRangeShape);  //Set effect shapes
    get circleRadius(): number;  //Get the radius of the circle
    set circleRadius(inCircleRadius: number);  //Set the radius of the circle
    get rectangleWidget(): number;  //Get the length of the rectangle
    set rectangleWidget(inRectangleWidget: number);  //Set the length of the rectangle
    get rectangleHight(): number;  //Get the width of the rectangle
    set rectangleHight(inRectangleHight: number);  //Set the width of the rectangle
    get sectorRadius(): number;  //Get the radius of the sector
    set sectorRadius(inSectorRadius: number);  //Set the radius of the sector
    get sectorAngle(): number;  //Get the angle of the sector
    set sectorAngle(inSectorAngle: number);  //Set the angle of the sector
    get sphereRadius(): number;  //Get sphere radius
    set sphereRadius(inSphereRadius: number);  //Set sphere radius
    get cubeWidget(): number;  //Get the length of the cube
    set cubeWidget(inCubeWidget: number);  //Set the length of the cube
    get cubeHight(): number;  //Get the width of the cube
    set cubeHight(inCubeHight: number);  //Get the width of the cube
    get cubeLength(): number;  //Get the height of the cube
    set cubeLength(inCubeLength: number);  //Get the height of the cube
    get segmentRadius(): number;  //get the radius of the segment
    set segmentRadius(inSegmentRadius: number);  //set the radius of the segment
    get segmentAngle(): number;  //Get the sector angle
    set segmentAngle(inSegmentAngle: number);  //Set the sector angle
    get segmentHight(): number;  //Get the height of the sector
    set segmentHight(inSegmentHight: number);  //Set the height of the sector

---

*Originally published on [Project Twelve](https://paragraph.com/@p12/p12-editor-alpha-v0-8-3-1-release-notes)*
