Portal Challenge Script: Difference between revisions
No edit summary |
(Revamped it, adding gcfscape step and made it more detailed) |
||
(13 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
{{lang|Portal_Challenge_Script}} | |||
''For more info on Bonus Maps, BNS files, and BMZ files see [[Bonus Maps]]'' | ''For more info on Bonus Maps, BNS files, and BMZ files see [[Bonus Maps]]'' | ||
== | {{Back|Category:Portal_level_design|Portal Level Design}} | ||
* Launch | == Extraction of <code>challenges.bns</code> == | ||
* | Extract the original file using [[Crowbar]] or [[GCFScape]]. GCFScape is easier to use and less cluttered. We will extract the file to have a reference to making our own. If you want to make it by scratch you can skip the extraction. | ||
* | <br> | ||
==Inside the file== | <br> | ||
* When you open the < | Crowbar Method: | ||
* Launch Crowbar | |||
* Click the <code>Unpack</code> tab at the top | |||
* Click the <code>Browse</code> button on the <code>Packages</code> line to the right | |||
* Navigate to <code>Steam/steamapps/common/Portal/portal</code> then select <code>portal_pak_dir.vpk</code> as the file | |||
* Click the <code>Browse</code> button on the <code>Output to</code> line to the right | |||
* Navigate to <code>Steam/steamapps/common/Portal/portal/scripts</code> then select <code>challenges</code> as the folder | |||
* Navigate in Crowbar to <code><root>/scripts/challenges</code> and select <code>challenges.bns</code> | |||
* Click the <code>Unpack</code> button near the bottom, next to <code>Skip Current</code> | |||
* Open the extracted file with your preferred text editor | |||
<br> | |||
GCFScape Method: | |||
* Launch GCFScape | |||
* Click <code>File</code> then <code>Open</code> | |||
* Navigate to <code>Steam/steamapps/common/Portal/portal</code> then select <code>portal_pak_dir.vpk</code> as the file | |||
* Navigate in GCFScape to <code>root/scripts/challenges</code> | |||
* Right-Click <code>challenges.bns</code> and Click <code>Extract</code> | |||
* Navigate to <code>Steam/steamapps/common/Portal/portal/scripts/challenges</code> and extract it there | |||
* Open the extracted file with your preferred text editor | |||
{{note|This is not required to make a <code>.bns</code> file. They can be made by renaming a <code>.txt</code> file. We will use the <code>challenges.bns</code> as a reference.}} | |||
== Inside the file == | |||
* When you open the <code>challenges.bns</code> file you can see scripts similar to this one: | |||
<pre>"#Bonus_Map_TC13Challenges" | <pre>"#Bonus_Map_TC13Challenges" | ||
Line 14: | Line 47: | ||
"image" "bonusmaps/testchmb_a_08_challenges" | "image" "bonusmaps/testchmb_a_08_challenges" | ||
"comment" "#Bonus_Map_ChallengesComment" | "comment" "#Bonus_Map_ChallengesComment" | ||
"lock" " | "lock" "0" | ||
"challenges" | "challenges" | ||
Line 45: | Line 78: | ||
}</pre> | }</pre> | ||
==="#Bonus_Map_TC13Challenges"=== | === "#Bonus_Map_TC13Challenges" === | ||
This piece of code denotes the name of the map. This is linked to the < | This piece of code denotes the name of the map. This is linked to the <code>portal_LANGUAGE.txt</code> file in the game's resources folder. {{note|This feature is language specific, and unless you plan to make your map multilingual, you can simply insert text instead of <code>"#Bonus_Map_TC13Challenges"</code>.}} | ||
===map=== | === map === | ||
This is the name of the map without the bsp extension, the one which you put in the game's maps folder. | This is the name of the map without the bsp extension, the one which you put in the game's maps folder. | ||
===chapter=== | === chapter === | ||
This line refers to the chapter the map belongs to. You can find these chapter files in your | This line refers to the chapter the map belongs to. You can find these chapter files in your VPK file. Simply create a new chapter with any name and a cfg extension. Add a line for each map in your chapter in to the file in this format: | ||
map your_map_name | map your_map_name | ||
Now, put this cfg file into the < | Now, put this cfg file into the <code>steam\steamapps\common\portal\portal\cfg</code> folder. | ||
===image=== | === image === | ||
This is the thumbnail of the map, which is in fact a [[material]]. The root path for this is < | This is the thumbnail of the map, which is in fact a [[material]]. The root path for this is <code>steam\steamapps\common\portal\portal\materials\VGUI</code>. | ||
===comment=== | === comment === | ||
A language based description of your map. Again, unless you want to make the map multilingual, just replace it with text. | A language based description of your map. Again, unless you want to make the map multilingual, just replace it with text. | ||
===lock=== | === lock === | ||
A [[boolean]] variable, which specifies if the map is locked or not until you complete the game. | A [[boolean]] variable, which specifies if the map is locked or not until you complete the game. A standalone map should '''leave this value at ''0'' ''' or the map will always be locked and unplayable. If it is part of a series of maps to be played in order, and not the first map, it can be unlocked via a [[point_bonusmaps_accessor]]. | ||
==Challenge types== | == Challenge types == | ||
You will also have to set the criteria of your map for | You will also have to set the criteria of your map for | ||
* Portals | * Portals | ||
Line 86: | Line 119: | ||
The following three lines specify the amount of Portals, Steps, or Time needed for each medal. | The following three lines specify the amount of Portals, Steps, or Time needed for each medal. | ||
==Adding your own challenge== | == Adding your own challenge == | ||
Adding your own challenge is an easy, | Adding your own challenge is an easy, 2-to-3-step task. | ||
* Make your map(s) and put them in < | * Make your map(s) and put them in <code>Steam/SteamApps/common/portal/portal/maps</code> | ||
* This is an optional step as you can reuse an old image, or create your own. If you created your own image, put it into the <code>Steam/SteamApps/common/portal/portal/materials/VGUI</code> directory or one of its subdirectories (recommended). | |||
* This is an optional step as you can reuse an old image, or create your own. If you created your own image, put it into the < | * Finally, create a new .bns file in the <code>Steam/SteamApps/common/portal/portal/scripts/challenges</code> folder and edit it with or without the help of this tutorial. | ||
* Finally, create a new .bns file in the < | |||
== See also == | |||
* [[Portal Level Creation]] | |||
[[Category:Modding]] | |||
[[Category:Portal]] | |||
[[Category:Tutorials]] |
Latest revision as of 20:24, 31 July 2025
For more info on Bonus Maps, BNS files, and BMZ files see Bonus Maps
Extraction of challenges.bns
Extract the original file using Crowbar or GCFScape. GCFScape is easier to use and less cluttered. We will extract the file to have a reference to making our own. If you want to make it by scratch you can skip the extraction.
Crowbar Method:
- Launch Crowbar
- Click the
Unpack
tab at the top
- Click the
Browse
button on thePackages
line to the right - Navigate to
Steam/steamapps/common/Portal/portal
then selectportal_pak_dir.vpk
as the file
- Click the
Browse
button on theOutput to
line to the right - Navigate to
Steam/steamapps/common/Portal/portal/scripts
then selectchallenges
as the folder
- Navigate in Crowbar to
<root>/scripts/challenges
and selectchallenges.bns
- Click the
Unpack
button near the bottom, next toSkip Current
- Open the extracted file with your preferred text editor
GCFScape Method:
- Launch GCFScape
- Click
File
thenOpen
- Navigate to
Steam/steamapps/common/Portal/portal
then selectportal_pak_dir.vpk
as the file
- Navigate in GCFScape to
root/scripts/challenges
- Right-Click
challenges.bns
and ClickExtract
- Navigate to
Steam/steamapps/common/Portal/portal/scripts/challenges
and extract it there
- Open the extracted file with your preferred text editor

.bns
file. They can be made by renaming a .txt
file. We will use the challenges.bns
as a reference.Inside the file
- When you open the
challenges.bns
file you can see scripts similar to this one:
"#Bonus_Map_TC13Challenges" { "map" "testchmb_a_08" "chapter" "chapter5.cfg" [$X360] "image" "bonusmaps/testchmb_a_08_challenges" "comment" "#Bonus_Map_ChallengesComment" "lock" "0" "challenges" { "#Bonus_Map_ChallengePortals" { "comment" "#Bonus_Map_LeastPortalsComment" "bronze" "9" "silver" "5" "gold" "4" } "#Bonus_Map_ChallengeSteps" { "comment" "#Bonus_Map_LeastStepsComment" "bronze" "30" "silver" "20" "gold" "10" } "#Bonus_Map_ChallengeTime" { "comment" "#Bonus_Map_LeastTimeComment" "bronze" "40" "silver" "30" "gold" "19" } } }
"#Bonus_Map_TC13Challenges"
This piece of code denotes the name of the map. This is linked to the portal_LANGUAGE.txt
file in the game's resources folder.

"#Bonus_Map_TC13Challenges"
.map
This is the name of the map without the bsp extension, the one which you put in the game's maps folder.
chapter
This line refers to the chapter the map belongs to. You can find these chapter files in your VPK file. Simply create a new chapter with any name and a cfg extension. Add a line for each map in your chapter in to the file in this format:
map your_map_name
Now, put this cfg file into the steam\steamapps\common\portal\portal\cfg
folder.
image
This is the thumbnail of the map, which is in fact a material. The root path for this is steam\steamapps\common\portal\portal\materials\VGUI
.
comment
A language based description of your map. Again, unless you want to make the map multilingual, just replace it with text.
lock
A boolean variable, which specifies if the map is locked or not until you complete the game. A standalone map should leave this value at 0 or the map will always be locked and unplayable. If it is part of a series of maps to be played in order, and not the first map, it can be unlocked via a point_bonusmaps_accessor.
Challenge types
You will also have to set the criteria of your map for
- Portals
- Steps
- Time
There are three similar sections at the end of each map. This one below is for portals. For steps or time, replace the "Portals" in each string with Steps or Time, accordingly.
"#Bonus_Map_ChallengePortals" { "comment" "#Bonus_Map_LeastPortalsComment" "bronze" "9" "silver" "5" "gold" "4" }
The first line, again, is a language-based string variable. You don't have to change it here. The following three lines specify the amount of Portals, Steps, or Time needed for each medal.
Adding your own challenge
Adding your own challenge is an easy, 2-to-3-step task.
- Make your map(s) and put them in
Steam/SteamApps/common/portal/portal/maps
- This is an optional step as you can reuse an old image, or create your own. If you created your own image, put it into the
Steam/SteamApps/common/portal/portal/materials/VGUI
directory or one of its subdirectories (recommended). - Finally, create a new .bns file in the
Steam/SteamApps/common/portal/portal/scripts/challenges
folder and edit it with or without the help of this tutorial.