Laser League: World Arena

Laser League: World Arena

Not enough ratings
LaserLeague_CustomLevel_Guidelines_V1.1_EN
By Python-ZZ and 1 collaborators
Editorial guidelines for creating, using and publishing Laser League custom maps.
   
Award
Favorite
Favorited
Unfavorite
1. Create and edit map files
1.1 Create preparation
1.1.1 Prepare the Json editor
The LL map is a Json file, and you need to prepare at least one tool that can edit the Json file.
Such as: Notepad++, JSONLint, JSONCompare.

1.1.2 Get the map template
Find the initial map template we provide for you in the local game file, the location is as follows:\Laser League\GameProject\Content\Mod\Levels
Initial templates are also available through a workshop subscription.

1.2 Create a map
1.2.1 Create map methods and locations
  • If you have found the location of the map template, or have downloaded the map template. Please make sure that the template is in the following location in the game directory: Laser League\GameProject\Content\Mod\Levels
  • If you want to experience maps published by other players, please also make sure that the map files you obtained are placed in the above location.
  • If you plan to create multiple maps, it is recommended to back up the map template for use.
  • The map template can be edited through the JSON editor.

1.3. Map Editing Syntax and Formatting
1.3.1 Basic structure of the map


1.3.2 Diagram editing process overview
The LL map template provides editing of sequence information for positioning points, laser nodes, props, and map information.

info.json
Competition venue information file
pattern.json
Map sequence information file

  • After you complete the 2.1 map template configuration, you can start the game to preview the template:
  • MODE SELECTION > CUSTOM LEVEL > CREATE LOCAL MATCH
  • After you edit and save the map file, click the refresh button on the left in the game and create a local match, you can preview your edit results.
  • (This function is only valid for the pattern.json file)
  • The size of the stadium field is 3600*1820 units, and each cell is 120*120 units.
2.1 Syntax Explanation-laser sequence
2.1.1 Syntax Explanation - (pattern.json)
For a complete example, please refer to the map template we provide you.

2.1.1.1Spawn Point
The spawn point is the position coordinate in the map, and it is the key data to determine the position and movement path of the "laser node".
Section sample:

 "laserNodeSpawnPointList":{  "LockdownN":{             "rotation":0,             "translation":{                 "x":900,                 "y":-1000,                 "z":0             } } },

Property description:
LockdownN
The default name of spawn point can be defined by yourself.
rotation
Indicates the deflection angle of the Spawn Point, 0-360 degrees is a clockwise deflection, -360-0 is a counterclockwise deflection. (Deflection angle: When creating a laser node at this point, the default orientation of the laser node will be consistent with the deflection angle of the anchor point)
x
Determines the position of the coordinate point on the x-axis.
y
Determines the position of the coordinate point on the y-axis.
z
Determines the position of the coordinate point on the z-axis.
(usually set to 0)
2.1.1.2Laser Node Section
The laser node determines the behavior of the laser, "movement type", and related parameters such as laser length.
Section sample:
 "laserNodeSpawnList":[         { "description": "1A", "spawnableClass": "1A", "nodeLifetime": -1, "laserDuration": 12, "laserScaleBase": 0.25, "autoExpandTeam": "Team_None", "nodeRemainsUntilIdx": -1, "unlockedByPowerup": "PT_Count", "affectedByExpand": false, "expandScale": 1, "laserGapSpawningEnabled": false, "laserGapPowerupsIgnored": false, "laserGapMovementLoops": false, "laserGapMovementTime": -1, "laserGapsPerBeam": -1, "laserGapSpacing": -1, "laserGapLength": -1, "movementStartsWhenSpawned": false, "movementType": "None", "movementPathPointsName": ["1A","1B"], "movementSpeed": 400, "rotationType": "None", "rotateToPathSpeed": 0, "rotateToPointName": "", "rotateToActorLengthPolicy": "Default", "rotateIntervalStartAngle": 0, "rotateIntervalEndAngle": 0, "rotationSpeedMultiplier": 1, "spawnGroup": -1, "delay": 0 } ], "laserNodeRepeatFrom": -1, "laserGapsPerBeam": 2, "laserGapSpacing": 800, "laserGapLifetime": -1, "laserGapLength": 500, "laserGapStartLocationX": 200,

Property description:
Laser Node
description
Maximum 128 characters
Describe
spawnableClass
Non empty
Please refer to the Laser type table
nodeLifetime
SUG: -1/(10 - 30)
The existence time of the laser node, -1 means forever.
laserDuration
SUG: -1/(5 - 15)
The duration of the laser active state, -1 means forever.[-1 will make the laser can't be thieve or switched]
laserScaleBase
SUG: (0.1 - 1.5)
Laser scaling, you can adjust the length of the laser.Reference: Laser scaling is 1, laser length: 2500uu.
autoExpandTeam
Team_None
The laser node is expanded by default and can be set to fixed team or neutral
nodeRemainsUntilIdx
-1/(0<=,<=Maximum laser node number)
Laser nodes remain until a specified laser node appears. -1 for none.
unlockedByPowerup
Power-up type
Set whether the laser node is activated by the specified power-up prop.Power-up type table
affectedByExpand
true / false
Whether this laser node is affected by Power-up - Expand.(Extended: Affects laser length multiples)
expandScale
SUG: (1 - 8)
Set the effect of Power-Up - Expand on the laser length multiplier.
laserGapSpawningEnabled
true / false
Select whether there is a default laser gap.
laserGapPowerupsIgnored
true / false
Whether the laser gap is not affected by Power-up-Segment
laserGapMovementLoops
true / false
Whether the laser gap moves
laserGapMovementTime
SUG: (~200)
The time factor of the laser gap move
laserGapsPerBeam
SUG: (0 - 8)
The number of laser gaps per laser wall, -1 means none.
laserGapSpacing
SUG: (0 - 500)
The length of the Laser between gaps, -1 means none.
laserGapLength
SUG: (200 - 800)
Laser gap length, -1 means none.
movementStartsWhenSpawned
true / false
Choose whether to start the movement immediately after it is spawned.
movementType
movementType
movementType.
Movement Type table
movementPathPointsName
Spawn point name
Configure the movement path of the laser node, and the laser node will move to each spawn point in sequence.
#The first point is the spawn location of the laser node.
movementSpeed
SUG: (300 - 600)
RotateToPath: Sets the movement speed of the laser node.
rotationType
rotation type
Sets the rotation type of the laser node.Rotation Type table
rotateToPathSpeed
SUG: (0- 30)
RotateToPath: Laser node rotation speed.
rotateToPointName
Point
The target orientation of the laser node rotation.
rotateToActorLengthPolicy
Laser wall length rules
Laser wall length rules for target class rotation.
rotateIntervalStartAngle
SUG: (-360 - 360)
Angle interval class rotation: The starting angle of the rotation.
rotateIntervalEndAngle
SUG: (-360 - 360)
Angle interval class rotation: The end angle of the rotation.
rotationSpeedMultiplier
SUG: (0 - 30)
Angle interval class Rotation speed factor.
spawnGroup
-1
Spawn group ID. Leave it for -1
delay
SUG: (0-60)
Set the spawn delay for laser nodes. This laser node will spawn delayed after the previous laser node spawned.

2.2 Syntax description - power up, map and ID
Laser Node sequence properties (Global Parameters for Laser Nodes)
laserNodeRepeatFrom
Set whether a loop is required after the laser sequence is all run and the starting point of the loop. -1 means do not loop. (The laser serial number starts with 0)
laserGapsPerBeam
The number of laser gaps per side of the laser is limited.
laserGapSpacing
The length of the Laser between gaps, -1 means none.
laserGapLifetime
Duration of the laser gap.
laserGapLength
The length of the laser gap.
laserGapStartLocationX
The starting position of the laser gap relative to the laser node.

Notes:
Create a laser node 1A, the laser type is 1A, the laser node is permanent, the laser activation lasts 12s, the laser scaling is 0.25, the movement path is 1A-1B, the movement speed is 400, the laser wall gap limit is 2, the laser gap interval is 800, and the laser gap is permanent, the length of the laser gap is 500, and the starting position of the laser gap is 200.

Additional Notes:
1. When using Power-up Item-Lockdown, the corresponding spawn point and laser node [LockdownN/E/S/W] must be added to generate the partition wall.
2. When using power-up props, the corresponding laser node must also be added.

2.2.1 Power-up Section
For the power-up items that are refreshed randomly in the arena, you can select the type of power-up items to be added, configure the refresh time of the power-up items, and other related information.

Section sample:
 "powerupSpawnList":[         {             "powerupType":"PT_LockDown",             "duration":0,             "lifeTime":6,             "randomSpawnPointList":["1A","1B"],             "delay":10         } ], "powerupRepeatFrom": 0,  "labsolabsolutedelaye,

Property description:
Power-up
powerupType
duration
-1/(0<,<+∞)
The duration of the power-up item after activation. -1 means never ends.
lifeTime
-1/(0<,<+∞)
The lifetime of this power-up item after it was created. -1 means permanent.
randomSpawnPointList
Spawn point name
Multiple spawn points can be set.
#If the list is none, the powerup will spawn randomly among all of the powerupspawnpoints.
delay
(0<=,<+∞)
Set power-up spawn delay. This power-up will appear delayed after the previous power-up spawned.

power-up sequence attribute (global parameter for power-up props)
powerupRepeatFrom
Set whether a loop is required after the power-up props sequence is all run and the starting point of the loop. -1 mea
e number starts with 0.
absolutedelay
Set whether the power-up item spawn delay is absolute value true / false.

Notes:
When using power-up Item-Lockdown, the corresponding spawn point and laser node [LockdownN/E/S/W] must be added to generate the partition wall.
The absolutedelay property affects the delay property of the power-up prop.
absolutedelay = true; power-up spawn delays are calculated from the start of the sequence.
absolutedelay = false; The power-up spawn delay will be calculated from the time the previous power-up item is built.
When using Power-up Item-Lockdown, the corresponding spawn point and laser node [LockdownN/E/S/W] must be added to generate the partition wall.

2.2.2 Power-up Spawn Point and Additional Information
Power-up Spawn Point is an important stat for controlling where power-up props are spawned.
Section sample:
     "powerupSpawnPointList":{         "PowerupSpawnPoint_4":{             "rotation":0,             "translation":{                 "x":-966,                 "y":360,                 "z":0             }         }, }

Property description:
PowerupSpawnPoint_4
Power-up Spawn Point name, you can customize the name according to your needs.
rotation
Indicates the orientation of the power-up spawn point, 0-360 degrees is a clockwise deflection, -360-0 is a counterclockwise deflection. (usually set to 0).
x
Determines the position of the power-up Spawn Pointx axis.
y
Determines the position of the power-up Spawn Pointy axis.
z
Determines the position of the power-up Spawn Pointz axis. (usually set to 0)

Notes:
Create Power-up spawn point PowerupSpawnPoint_4 with position (-996, 360, 0).

2.3 Syntax Explanation - (info.json)
2.3.1 Map information
Module content and examples:
{     "pattrenName":"Wakame",     "description":"test",     "defaultStadium":"Beyond",     "author":"teay_p1",     "version":"1.0",     "descriptionText":"",     "coverimg":"Waka.png", }

Property description:
pattrenName
New map name.
description
Add a description to your map.
defaultStadium
Set up the stadium.
Stadium table
author
Enter the author's name.
version
Your version number.
descriptionText
You can give a brief description of the features of the created map.
coverimg
Fill in your preview image name, players will see it in the game, you need to place the preview image under the map folder.
#The image format is .png.

Notes:
PattrenName: Wakame
Description: test
Stadium: Beyond
Author: teay_p1
Version: 1.0
Preview image: Waka1.png

2.4 Syntax Description - (onlineinfo.json)
2.4.1 Steam file ID
Module content and examples:
{ "steamFileId": "2800667806", "updateTime": "0" }

Property description:
steamFileId
Steam file ID
updateTime
Update time (timestamp format)

Notes:
Steam file ID: 2800667806
Update time: 2022-04-28 21:11:11
Additional Notes:
Querying Steam File ID

2.5 Extra attentions
  • Set the delay value of adjacent nodes to 0 to make them spawn at the same time.
  • Set the coordinates of several nodes that form a circle, and let the laser node move according to the path to form a laser node that moves around the center. At the same time, set the rotation type to RotateToPoint, so that the laser always faces the center.
  • The missing parameters automatically apply the default value.
  • The ordinal position of the parameter entries does not affect the actual effect.
  • When the movement type is LoopPath or ReversePath, and movementStartsWhenSpawned is set to false, it will cause the node to activate the position teleportation.
  • When the movement type is LoopPath or ReversePath, when movementStartsWhenSpawned is true, and the delay is not 0, the node position will be offset from the spawn point, which is determined by the movement speed and delay time.
  • Be aware of the JSON format that each value needs to end with a comma, but the last value does not need it.
3. Test and Iterate
3.1 Test modification
  • ● After saving the map file, start the LL client, and you will see the created map project in: MODE SELECTION > CUSTOM LEVEL
  • ● In the above interface, you can choose to start a local match to test the map.
3.2 Iterate the map
When you modify the map outside the game, you can refresh your map data by reloading without exiting the game.
  • ● Map data information: Click the refresh button on the left in the map list to refresh the data of the corresponding map.#Restart Match in the in-game pause menu can quickly load new data and get into the game.
  • ● Basic map information: Exiting the custom level page and re-entering it will refresh the basic information of the map.
4. Workshop process
● After confirming that the map has been created and ready to share, online items can be created and published to the workshop through in-game publishing. If you no longer need to share, you can hide or delete it through the steam workshop.
4.1 Status in the map list

Local level map

Local level map that has created the item on workshop

Custom levels from Subscribed

4.2 Create online items
Maps in local state will create online items to the Workshop the first time they are clicked to publish.

3.Release & Update
Fill in the necessary information on the game's release page and click the button on the page to release and update. If the release is successful, it will jump to the creative workshop page of the map.
#Note: After the local map is published successfully, it will still be reserved for the next modification and update. If you subscribe to your own published maps, both the subscribed version and the local version will exist in your map list. Please modify, update and publish through the local version.

4. Get map
● You can automatically get maps published by other players by subscribing in the creative workshop.
● You can also place maps shared by others in the ContentModLevels directory of the game.

5. Delete
● To delete the acquired map, please unsubscribe and delete the corresponding map folder in the game directory ContentModLevels.
● If it is a local map, just delete the corresponding file directly.
5. Common Problem
5.1 Common reasons for creation failure
  • ● Check the internet connection with steam
  • ● Check if the account is restricted
  • ● Check if Steam Cloud Quota is full
5.2 Common reasons for publishing failures
  • ● Check the internet connection with steam
  • ● Check if the fileID in the map's onlineinfo is wrong
  • ● Check if the preview image is too large, or the post contents are illegal
5.3 Level Data loading error
There will be an error shown on the description text box when the data has fatal erros.
  • JSON format error: Loading failure caused by Json format error
  • Unable to Parse-laserNodeSpawnPointList: The parameter setting of the laser node object is incorrect
  • Unable to Parse-powerupSpawnList: Power prop object parameter setting error

5.4 The game crashes
  • Check the required options in the pattern.json file to see if the data is legal.
5.5 Contact us
1 Comments
łapek 8 Jun, 2022 @ 8:26am 
ł67yjnhb7m