@bf6mods/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/cli/index.d.ts +1 -0
  2. package/dist/cli/index.js +196 -0
  3. package/dist/cli/index.js.map +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/resources/prepare/tsconfig.json +15 -0
  8. package/dist/resources/prepare/types/config.ts +10 -0
  9. package/dist/resources/templates/AcePursuit/src/config.json +1 -0
  10. package/dist/resources/templates/AcePursuit/src/index.ts +3421 -0
  11. package/dist/resources/templates/AcePursuit/src/levels.tscn +6922 -0
  12. package/dist/resources/templates/AcePursuit/src/strings.json +191 -0
  13. package/dist/resources/templates/All/bf6.config.ts +6 -0
  14. package/dist/resources/templates/All/package.json +13 -0
  15. package/dist/resources/templates/All/tsconfig.json +4 -0
  16. package/dist/resources/templates/Basic/bf6.config.ts +3 -0
  17. package/dist/resources/templates/Basic/src/index.ts +112 -0
  18. package/dist/resources/templates/BombSquad/src/config.json +1 -0
  19. package/dist/resources/templates/BombSquad/src/index.ts +3683 -0
  20. package/dist/resources/templates/BombSquad/src/levels.tscn +3212 -0
  21. package/dist/resources/templates/BombSquad/src/strings.json +123 -0
  22. package/dist/resources/templates/Exfil/src/config.json +1 -0
  23. package/dist/resources/templates/Exfil/src/index.ts +2393 -0
  24. package/dist/resources/templates/Exfil/src/levels.tscn +5600 -0
  25. package/dist/resources/templates/Exfil/src/strings.json +185 -0
  26. package/dist/resources/templates/Vertigo/src/config.json +1 -0
  27. package/dist/resources/templates/Vertigo/src/index.ts +1948 -0
  28. package/dist/resources/templates/Vertigo/src/levels.tscn +6387 -0
  29. package/dist/resources/templates/Vertigo/src/strings.json +308 -0
  30. package/package.json +41 -0
@@ -0,0 +1,191 @@
1
+ {
2
+ "teamrespawns": "Team Redeploys Remaining: {}",
3
+ "titleLineOne": "PORTAL HOH_Parkour",
4
+ "titleLineTwo": "PVE HOLDOUT",
5
+ "gearStore": "Weapons & Ammo",
6
+ "waitingforplayersX": "{}/{} IN LOBBY - {} REQUIRED",
7
+ "waitingforplayers": "Waiting for Players: {}/{}",
8
+ "combatStartDelayCountdown": "THE BATTLE BEGINS IN {}",
9
+ "gameround": "Round {}",
10
+ "enemiesremaining": "Enemies Remaining: {}",
11
+ "playerwallet": "Cash Remaining: ${}",
12
+ "healthState": "{} / {}",
13
+ "combatStartCountdown": "{} Enemies Inbound!",
14
+ "bigEnemyIncoming": "Powerful Enemy Inbound!",
15
+ "purchasePhaseCountdown": "Spend your cash! {}",
16
+ "gamestart": "GO!",
17
+ "startsin": "Start in {}",
18
+ "gamestarting": "Starting in: {}",
19
+ "gameending": "Game Ends In: {}",
20
+ "lap": "Lap {}/{}",
21
+ "victory": "WINNER!",
22
+ "scoreboard_1_rank": "#{}",
23
+ "scoreboard_1_name": "{}",
24
+ "scoreboard_1_time_1": "{}{}:",
25
+ "scoreboard_1_time_2": "{}{}.{}",
26
+ "scoreboard_1_time_3": ":",
27
+ "scoreboard_1_time_4": ".",
28
+ "vehicle_1": "F-97 Kestrel",
29
+ "vehicle_2": "F-61V",
30
+ "vehicle_3": "F-39E",
31
+ "X": "X",
32
+ "Select": "Select",
33
+ "leftArrow": "<",
34
+ "rightArrow": ">",
35
+ "readyplayers": "({}/{} ready)",
36
+ "ready": "READY",
37
+ "overtakenmessage": "OVERTAKE!",
38
+ "chosenvehicle": "CHOSEN VEHICLE",
39
+ "waitingforplayer": "Waiting for players to ready up!",
40
+ "selectVeh": "Selected Vehicle",
41
+ "header_placement": "FINISHED! You placed {}.",
42
+ "position_in_race": "{}/{}",
43
+ "scoreboard": "Scoreboard",
44
+ "combatPrePhaseBanner": "Enemy ETA {} Seconds",
45
+ "combatRoundBanner": "Round {}",
46
+ "combatPostPhaseBanner": "Enemy Attack Repulsed",
47
+ "purchasePrePhaseBanner": "Pre Purchase Phase Banner",
48
+ "purchasePhaseBanner": "Purchase Phase {}",
49
+ "youAreInJail": "You Are In No-Redeploy Jail",
50
+ "afterburnerExplainedTitle": "Comeback Mechanic",
51
+ "afterburnerExplained": "To keep things close, the racers at the back gain access to the afterburner. The number of boosted players scales with how many are in the race.",
52
+ "autoPurchasedRespawn": "Redeploy Purchased: -${}",
53
+ "outOfInventory": "Out of Inventory",
54
+ "modversion": "Script ver: {}-{}-{}",
55
+ "boosterdisabled": "AFTERBURNER TRIGGER DISABLED",
56
+ "sneakySnake": "Sneaky Snake",
57
+ "speedySnake": "Speedy Snake",
58
+ "slasher": "Stabber",
59
+ "sniper": "Sniper",
60
+ "soldier": "Soldier",
61
+ "shotgun": "Skeeter",
62
+ "hmgClass": "SAW-er",
63
+ "rpgClass": "Splasher",
64
+ "sacrificer": "Sacrificer",
65
+ "paratrooper": "Sky Soldier",
66
+ "_default_language_": "_en_",
67
+ "Abrams": "Abrams",
68
+ "Leopard": "Leopard",
69
+ "Cheetah": "Cheetah",
70
+ "CV90": "CV90",
71
+ "Gepard": "Gepard",
72
+ "UH60": "UH60",
73
+ "Eurocopter": "Eurocopter",
74
+ "AH6M": "AH6M",
75
+ "AH64": "AH64",
76
+ "Vector": "Vector",
77
+ "Quadbike": "Quadbike",
78
+ "GolfCart": "GolfCart",
79
+ "Marauder": "Marauder",
80
+ "Flyer60": "Flyer60",
81
+ "JAS39": "JAS39",
82
+ "F22": "F22",
83
+ "F16": "F16",
84
+ "M2Bradley": "M2Bradley",
85
+ "SU57": "SU57",
86
+ "store": {
87
+ "cashFmt": "Cash: ${}",
88
+ "costFmt": "${}",
89
+ "healthFmt": "Health: {}",
90
+ "killsFmt": "Kills: {}",
91
+ "closeStore": "X",
92
+ "disabledMsg": {
93
+ "locked": "LOCKED",
94
+ "buyAmmo": "BUY ANY AMMO"
95
+ },
96
+ "gunstab": "Guns",
97
+ "attachmentstab": "Attachments",
98
+ "gadgetstab": "Gadgets",
99
+ "ammotab": "Ammo",
100
+ "upgradestab": "Upgrades",
101
+ "randomize": "Reroll This Tab",
102
+ "gun1": "G36",
103
+ "gun2": "Tavor 7",
104
+ "gun3": "G3A4",
105
+ "gun4": "",
106
+ "primary1": "G36",
107
+ "primary2": "Tavor 7",
108
+ "primary3": "G3A4",
109
+ "primary4": "ACE 32",
110
+ "primary5": "HK433",
111
+ "primary6": "SCAR MK17",
112
+ "primary7": "L85A3",
113
+ "primary8": "KORD 6P67",
114
+ "primary9": "HK417 A2",
115
+ "primary10": "XM7",
116
+ "primary11": "M4A1",
117
+ "M4A1": {
118
+ "M4A1_SCP_RMR": "M4A1_SCP_RMR",
119
+ "M4A1_SCP_TrijiconMRO": "M4A1_SCP_TrijiconMRO",
120
+ "M4A1_SCP_TrijiconSDO": "M4A1_SCP_TrijiconSDO",
121
+ "M4A1_SCP_TrijiconVCOG": "M4A1_SCP_TrijiconVCOG",
122
+ "M4A1_SCP_NX81": "M4A1_SCP_NX81",
123
+ "M4A1_SCP_Mark4M2": "M4A1_SCP_Mark4M2",
124
+ "M4A1_SCP_VortexM157": "M4A1_SCP_VortexM157"
125
+ },
126
+ "primary12": "SCAR-SC .300",
127
+ "primary13": "QBZ-192",
128
+ "primary14": "AK-205",
129
+ "primary15": "MSBS GROT B10 C",
130
+ "primary16": "APC10 G Pro",
131
+ "primary17": "Kriss Vector",
132
+ "primary18": "UMP-40",
133
+ "primary19": "MP7 A2",
134
+ "primary20": "MP5 MLI",
135
+ "primary21": "P90 Tactical",
136
+ "primary22": "MPX",
137
+ "primary23": "M27 IAR",
138
+ "primary24": "Ultimax 100 MK8",
139
+ "primary25": "RPK",
140
+ "primary26": "M60E6",
141
+ "primary27": "M250",
142
+ "primary28": "Minimi 5.56 Mk3",
143
+ "primary29": "M240 L",
144
+ "primary30": "MG4k",
145
+ "primary31": "SVCh",
146
+ "primary32": "M39 EMR",
147
+ "primary33": "SVDM",
148
+ "primary34": "ARA Light DMR",
149
+ "primary35": "MRAD",
150
+ "primary36": "SV-98",
151
+ "primary37": "M2010 ESR",
152
+ "primary38": "590A1",
153
+ "primary39": "KSG",
154
+ "primary40": "M4/M1014",
155
+ "primary41": "18.5KS-K",
156
+ "ammo1": "Primary Ammo",
157
+ "ammo2": "Secondary Ammo",
158
+ "ammo3": "Primary Mag",
159
+ "ammo4": "Secondary Mag",
160
+ "upgrade1": "More Speed",
161
+ "upgrade2": "More Bullets",
162
+ "upgrade3": "More Lunch",
163
+ "upgrade4": "<-- buy me to unlock",
164
+ "upgrade5": "Bonus Health",
165
+ "upgrade6": "Bonus Damage",
166
+ "upgrade7": "+1 Redeploy",
167
+ "upgrade8": "Start Combat",
168
+ "gadgetTEST": "Test Gadget",
169
+ "gadget1": "C5 Explosives",
170
+ "gadget2": "RPG-7",
171
+ "gadget3": "Deployable Cover",
172
+ "gadget4": "Explosive Crossbow",
173
+ "gadget5": "Adrenaline Shot",
174
+ "gadget6": "T-UGS",
175
+ "gadget7": "Supply Crate",
176
+ "gadget8": "UAV",
177
+ "gadget9": "2x Throwing Knife",
178
+ "gadget10": "AT Mine",
179
+ "gadget11": "Defibrillator",
180
+ "gadget12": "SRAW",
181
+ "gadget13": "Motion Sensor",
182
+ "gadget14": "MBT LAW",
183
+ "gadget15": "MP APS",
184
+ "gadget16": "Decoy Grenade",
185
+ "gadget17": "Sticky Grenade Launcher",
186
+ "gadget18": "PTKM 1R",
187
+ "gadget19": "Concussion Grenade",
188
+ "gadget20": "M4 SLAM",
189
+ "gadget21": "Frag Grenade"
190
+ }
191
+ }
@@ -0,0 +1,6 @@
1
+ export default defineBf6Config({
2
+ entrypoint: 'src/index.ts',
3
+ config: 'src/config.json',
4
+ tscn: 'src/levels.tscn',
5
+ strings: 'src/strings.json',
6
+ })
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "{name}",
3
+ "scripts": {
4
+ "build": "bf6mods build",
5
+ "dev": "bf6mods dev",
6
+ "postinstall": "bf6mods prepare"
7
+ },
8
+ "type": "module",
9
+ "devDependencies": {
10
+ "@bf6mods/cli": "^1.0.0",
11
+ "@bf6mods/sdk": "^1.0.1"
12
+ }
13
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ // Do not touch unless you know what you are doing
3
+ "extends": "./.bf6/tsconfig.json",
4
+ }
@@ -0,0 +1,3 @@
1
+ export default defineBf6Config({
2
+ entrypoint: 'src/index.ts',
3
+ })
@@ -0,0 +1,112 @@
1
+ /*
2
+
3
+ Welcome to basic templates!
4
+
5
+ Here you can find some of the commonly used events and functions that'll hopefully kickstart your scripting journey.
6
+ 'mod/index.d.ts' is your bestfriend when it comes to learning about all that is capable within Portal scripting.
7
+ If you're ever unsure how to do something, try searching for a relevant function in it!
8
+
9
+ */
10
+
11
+ ////////////////////////////////// ON PLAYER EVENTS ///////////////////////////////////////
12
+ //////////// Useful player action-related events to hook up reactive logics to ////////////
13
+
14
+ // Triggered when player joins the game. Useful for pregame setup, team management, etc.
15
+ export function OnPlayerJoinGame(eventPlayer: mod.Player): void {}
16
+
17
+ // Triggered when player leaves the game. Useful for clean up logic, team management, etc.
18
+ export function OnPlayerLeaveGame(eventNumber: number): void {}
19
+
20
+ // Triggered when player selects their class and deploys into game. Useful for any spawn/start logic.
21
+ export function OnPlayerDeployed(eventPlayer: mod.Player): void {}
22
+
23
+ // Triggered on player death/kill, returns dying player, the killer, etc. Useful for updating scores, updating progression, handling any death/kill related logic.
24
+ export function OnPlayerDied(eventPlayer: mod.Player, eventOtherPlayer: mod.Player, eventDeathType: mod.DeathType, eventWeaponUnlock: mod.WeaponUnlock): void {}
25
+
26
+ export function OnPlayerEarnedKill(
27
+ eventPlayer: mod.Player,
28
+ eventOtherPlayer: mod.Player,
29
+ eventDeathType: mod.DeathType,
30
+ eventWeaponUnlock: mod.WeaponUnlock
31
+ ): void {}
32
+
33
+ // Triggered when a player is damaged, returns same variables as OnPlayerDied. Useful for custom on damage logic and updating custom UI.
34
+ export function OnPlayerDamaged(
35
+ eventPlayer: mod.Player,
36
+ eventOtherPlayer: mod.Player,
37
+ eventDamageType: mod.DamageType,
38
+ eventWeaponUnlock: mod.WeaponUnlock
39
+ ): void {}
40
+
41
+ // Triggered when a player interacts with InteractPoint. Reference by using 'mod.GetObjId(InteractPoint);'.
42
+ // Useful for any custom logic on player interaction such as updating check point, open custom UI, etc.
43
+ // Note that InteractPoint has to be placed in Godot scene and assigned an ObjId for reference.
44
+ export function OnPlayerInteract(eventPlayer: mod.Player, eventInteractPoint: mod.InteractPoint): void {}
45
+
46
+ // Triggered when a player enters/leaves referenced BF6 capture point. Useful for tracking capture point activities and overlapping players.
47
+ // Note that CapturePoint has to be placed in Godot scene, assigned an ObjId and a CapturePointArea(volume).
48
+ export function OnPlayerEnterCapturePoint(eventPlayer: mod.Player, eventCapturePoint: mod.CapturePoint): void {}
49
+ export function OnPlayerExitCapturePoint(eventPlayer: mod.Player, eventCapturePoint: mod.CapturePoint): void {}
50
+
51
+ // Triggered when a player enters/leaves referenced AreaTrigger volume. Useful for creating custom OnOverlap logic, creating custom capture point, etc.
52
+ // Note that AreaTrigger has to be placed in Godot scene, assigned an ObjId and a CollisionPolygon3D(volume).
53
+ export function OnPlayerEnterAreaTrigger(eventPlayer: mod.Player, eventAreaTrigger: mod.AreaTrigger): void {}
54
+ export function OnPlayerExitAreaTrigger(eventPlayer: mod.Player, eventAreaTrigger: mod.AreaTrigger): void {}
55
+
56
+ /////////////////////// GAMEMODE EVENTS AND USEFUL FUNCTIONS //////////////////////////////
57
+ ////////// Various useful events and functions to manipulate gameplay and actors //////////
58
+
59
+ export function OnGameModeEnding(): void {}
60
+
61
+ export function OngoingGlobal(): void {}
62
+
63
+ // Triggered on main gamemode start/end. Useful for game start setup and cleanup.
64
+ export async function OnGameModeStarted() {
65
+
66
+ // Enables or disables a headquater. Note that HQ_PlayerSpawner has to be placed in Godot scene, assigned an ObjId and a HQArea(CollisionPolygon3D).
67
+ const hq = mod.GetHQ(0);
68
+ mod.EnableHQ(hq, true);
69
+
70
+ // Enables or disables the provided objective.
71
+ const capturePoint = mod.GetCapturePoint(0);
72
+ mod.EnableGameModeObjective(capturePoint, true);
73
+
74
+ // Returns the id corresponding to the provided object.
75
+ const capturePointId = mod.GetObjId(capturePoint);
76
+
77
+ // Returns a vector composed of three provided 'X' (left), 'Y' (up), and 'Z' (forward) values.
78
+ // Useful for specifying transform, 3d velocity or RGB color.
79
+ const vector = mod.CreateVector(1, 2, 3);
80
+
81
+ // Get player closest to a point
82
+ const player = mod.ClosestPlayerTo(vector);
83
+
84
+ // Returns the team value of the specified player OR the corresponding team of the provided number.
85
+ const teamOfPlayer = mod.GetTeam(player);
86
+ const teamObject = mod.GetTeam(0);
87
+
88
+ // Displays a notification-type Message on the top-right of the screen for 6 seconds. Useful for communicating game state/info or debugging.
89
+ const exampleMessage = mod.Message('example');
90
+ mod.DisplayNotificationMessage(exampleMessage);
91
+ mod.DisplayNotificationMessage(exampleMessage, player);
92
+ mod.DisplayNotificationMessage(exampleMessage, teamOfPlayer);
93
+
94
+ // Adds X delay in seconds. Useful for making sure that everything has been initialized before running logic or delaying triggers.
95
+ await mod.Wait(5);
96
+
97
+ // Teleports a target to a provided valid position facing a specified angle (in radians).
98
+ mod.Teleport(player, mod.CreateVector(100, 0, 100), mod.Pi());
99
+
100
+ // Returns the 'X', 'Y', or 'Z' component of a provided vector.
101
+ // Useful for modifying specific vector component or debugging transform.
102
+ const x = mod.XComponentOf(vector);
103
+ const y = mod.YComponentOf(vector);
104
+ const z = mod.ZComponentOf(vector);
105
+ const changedVector = mod.CreateVector(x + 10, y - 5, z * 2);
106
+
107
+ // Returns various player state information
108
+ const eyePosition = mod.GetSoldierState(player, mod.SoldierStateVector.EyePosition);
109
+ const facingDirection = mod.GetSoldierState(player, mod.SoldierStateVector.GetFacingDirection);
110
+ const health = mod.GetSoldierState(player, mod.SoldierStateNumber.CurrentHealth);
111
+ const isInWater = mod.GetSoldierState(player, mod.SoldierStateBool.IsInWater);
112
+ }