Duke4.net Forums: Ion Fury - qouestion about hub transitions (making map packs) - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ion Fury - qouestion about hub transitions (making map packs)  "How to pack multiple custom maps into a single redistributable package"

User is offline   dbrckovi 



I recently got into making maps for Ion Fury using mapster32.
So far I managed to figure out a lot by following various tutorials on the net or by "reverse engineering" the original Ion Fury maps.
However I can't figure out how to properly make map packs.

My end goal is to make a complete 'zone' with multiple interconnected maps.
More or less, I think I understand how to use HUBSECTION and HUB TRANSITION sprites to connect two maps, but I don't know how to pack those maps so that they are "aware" of each other.

It seems that the base game did it in LEVELS.CON file. Should I make a similar file to connect my maps?
Is there some tutorial which covers what I need, or some finished map pack which I could examine?

Thank you!

User is offline   MetHy 


I haven't actually tested to change levels.con and make it work with usermaps, but yes, levels.con and the HUB sections and level transitions work together.

Let's say that you want to have ONE zone and that you're trying replace the Preview Campaign by your own campaign. This is just an example because it's easier to use preview as an example: you don't need to replace any existing episode and you can add your own, you should also be able to make several zones if you want to; but if you understand my example hopefully you should be able to add as many EPs and zones as you want.
Anyway, in that example try the following:

- Not a mandatory step but, rename the name of the ep there


definevolumename EP_PREVIEW Crisis in Columbia

- then, rename the map files and level names in the part in levels.con corresponding to that


definelevelname EP_PREVIEW 0 maps/preview_0.map 00:00 00:00 Defense Farce
definelevelname EP_PREVIEW 1 maps/preview_1.map 00:00 00:00 Washington Wasteland
definelevelname EP_PREVIEW 2 maps/preview_2.map 00:00 00:00 Blast Processing
definelevelname EP_PREVIEW 3 maps/preview_3.map 00:00 00:00 Disrupted Service
definelevelname EP_PREVIEW 4 maps/preview_4.map 00:00 00:00 Nukage Nightmare
definelevelname EP_PREVIEW 5 maps/preview_hhoh.map 00:00 00:00 Heskel's House of Horrors

- Finally, you can change the music tracks in music.con

- then, I assume you know how to add this con and have it load with your maps without the files overwriting anything from the main game.

- as for the level transitions you need:
a HUBSECTION sprite in each map, the hitag determines level number. It starts with 0 so the first level should be hitag 0.
a SE64 at the end of each map that teleporters to a corresponding SE65 in the next map. Think of it like SE7 except it teleporters to another level. Check the documention for the tagging system, everything should be noted there, notice that you can send the player to any map within the zone, it doesn't have to be the next map according to filenames per se.

If you want the player to be able to backtrack to the previous level, you need to add a seperate SE64-65 link that goes the other way. If no backtracking is possible, the game should automatically consider this a Point Of No Return and delete the remaining keycards in the player's inventory.
You may also use SE80 instead of SE64, which works the same way but adds a fade to black for transition (I do not know for sure that you can add backtracking with SE80 as we never used it that way).

For the end of the zone, have an EOL sprite to end the last map (instead of SE64). If you have another zone afterwards, the tag of the EOL should correspond to the next level number according to the levels masterlist in levels.con. In other words, the EOL which ends the zone in z5a2 is lotag 23 because z6a1 is level 23 in the master list, so this setting is seperate to level numbers according to HUBSECTION, for reasons that should be obvious with my next paragraph.
Also note that secrets/enemy counts only reset at the end of a zone.

If you have several zones, know that it's levels.con that determines the zones; and that what the HUBSECTIONS, and SE64-65 effects sprites know are zone contained. What I mean by that is, for instance, zone 1 level 2 is HUBSECTION hitag 1; but zone 6 level 2 is also HUBSECTION hitag 1.

Hope I was helpful and didn't make a mistake there. It's actually not that complicated !

This post has been edited by MetHy: 19 November 2020 - 01:13 AM


User is offline   dbrckovi 


Thanks for the detailed answer.

Your info on how to edit levels.con and how to use sprites will definitely be helpful.

However my main problem is that I would like to add a new zone without modifying any existing game files.
My plan (hope) is to eventually upload my "episode" on the net so that anyone can install it without too much hassle and without breaking anything in their base game.
Is this even possible?

Based on your info and after examining the game files, I realized that the game first loads "game.con". Which then loads "scripts/main.con", which eventually loads "scripts/levels.con".
So in theory if I add my own con file and then include it in the GAME.CON, the game should load it.
Even though this is not a big change, it still involves changing the base game file, and I'd like to avoid that.

User is offline   MetHy 


View Postdbrckovi, on 19 November 2020 - 11:57 AM, said:

Even though this is not a big change, it still involves changing the base game file, and I'd like to avoid that.

Something like this should work and avoids to replace any OG game files:
- inside IF's rootfolder, make a new folder called "awesomap" or whatever. Inside that new folder, have your custom levels.con.
- make a new "awesomap.con" file in the root folder also, that reads


include awesomap/levels.con

- make a shortcut for Ion Fury which in this case would be titled "Ion Fury - awesomap", the shorcut 's target at the end should be


fury.exe" -x awesomap.con

Thus, the shorcut loads your root custom episode con which in turns loads your custom levels.con. Then, no file is replaced, and thus it doesn't matter if your custom level.con replaces original game zones or adds new ones since the player can choose to load the original or yours.
This solution also assumes that you'll need to include several .con files; then in your root folder awesomap.con you can include any other custom con you may need such as "include awesomemap/music.con". If you only need one con you can probably skip the step involving the root custom con and only load your custom levels.con directly.

This post has been edited by MetHy: 20 November 2020 - 08:29 AM


User is offline   dbrckovi 


This seems like a good solution. Thank you!

Share this topic:

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password

Sign in options