Skip to content

How to use! ❤️

Aeven-Dev edited this page Aug 29, 2025 · 7 revisions

Importing Scn files! Make the world yours!

Expand! :D
  1. Go to the the top of your screen in unity's menus, there you'll find the "Windows" menu, if you click on it it will display a bunch of things and maybe even more depending on what you have installed!

  2. If you see the option for "S4 Scn" then that means the tool is installed correctly! Clicking on it will open up more options

imagen

  1. Click Scn IO to open up the import/export window! Here you'll have a few options but the 2 you're interested in are "Open" and "Save"! Im sure you can figure out what those do!

    • The "Append" option allows you to select only certain parts of the scn to be loaded! Which is great if you have a very large scn file you want to open just to get a few objects out of!
    • Another setting you should keep in mind is "Scale!", S4 uses big numbers! so importing them with scale 1 will make them reaaaally big! if you want the maps to have a "normal" size for unity then I recommend you set the scale to 100, it may sound counter intuitive but think about it this way, when you export you want maps to be scaled up by 100 and when you import you want them divided by 100 in scale!

imagen

  1. Clicking Open will bring a file explorer, look for the scn file you want to open! Once you select the file it will be loaded in the currently active Scene in unity!

  2. If you selected "Append" instead, Once you select the file an extra window will open with all of the objects that were found inside that scn file! If this fails to load it might be an issue with the tool not reading the file properly :( Get in contact to fix that!

  3. You can select or deselect objects here if you want to, keep in mind that deselecting an object with children will also deselect the children automatically!

imagen

  1. Once you're happy with your selection just press "Import!" and watch as the scn file gets loaded!

Please note that for textures to be loaded they need to be in the same directory as the scn file, just like they are in the resource folder!

Exporting Unity scenes! And give back to the world with your wonderful creations!

Expand! :3 Wonderful! So you made a map in unity and now you want it into S4? Let me show you how!

First things first, we'll go through what your map needs to be played in S4

  • ScnData: It's basically the root of your map, anything not parented to an object with a ScnData component will not be added to the final scn file!
  • Visuals: These are the meshes that you want to be shown in the world!
  • Collision: Collision is made with meshes! You can do it by hand, following the naming convention or you can use the components I made! It's better if these meshes are simpler and lower poly than your visual meshes!
  • Spawns: These are Box Colliders with a special name: alpha_spawn_pos_xx, beta_spawn_pos_xx, ball_spawn_pos, etc! You can use the menu in the hierarchy to automatically add these boxcolliders with a template name.

imagen

Exporting is a simple as pressing the Save button in the Scn IO window and choosing which ScnData objects we want to export, then just choose the folder you want it to be saved at! Maps need to be in the background folder, weapons need to be in the weapons folder, and on and on for the other types of scn files!

Alternatively, you can press the save button in the ScnData component to save only that singe scn file!

The ini file!

Expand! O:

Now let's go over the ini file!

In resources\mapinfo you have a buuuuuuunch of .ini files, these are basically text files, so you can just open them with notepad or any text editor of your choice!

The ini file has a lot of things, and I really don't know what most stuff do! But that's fine, all we'll need to do is change a few lines to get your map into S4!

The first thing we want to do is choose an ini file to edit, it has to be a map of the same mode than the one for the map you're creating, so if you're making a TD map then you can use Station-2, Side-3, Highway, etc and if you're making a DM map you can use Neden-1, Square, Wonderland, etc!

The ini file is divided in [SECTIONS], these sections have different names, all in caps, and all inside square brakets []

The sections we want are [STATIC] and [DYNAMIC] so scroll down the file or search for that, bellow it there will be a few lines like this

[STATIC]
;object_1=standbyroom.scn
object_1=azit.scn
object_2=azit_jump.scn
object_3=azit_jump_indicator.scn
object_4=azit_jump_spawn.scn
object_5=azit_spawn.scn
object_6=azit_oct.scn

As you can guess, this is the ini file for Azit. the ; is like commenting out the line, basically, that line will be ignored and stanbyroom.scn wont be loaded when you enter the map.

In order for your scn file to be loaded it has to be referenced after 'object_x=' So replace object_1=azit.scn with object_1=YourAwesomeMap.scn

Is important that there are no missing object_x entries, it has to go all the way from 1 to the end without skipping!

So now if you open up S4, and start an azit match your map should be the one loading up! along with the other azit elements such as the jumps, the spawns and the oct, so comment those out!

Sometimes you'll have a problem where the collisions of your map are not working properly and nothing makes sense at all no matter what you change. In this case, go to the mapinfo folder and find the ini file you're using. If next to that file there's another file of the same name but with .oct at the end then that's the problem you can just delete it or rename it.

bginfo-skyline.ini
bginfo-skyline.ini.oct

This .oct file is a binary file that has the collision data baked in, as far as we know.

You did it! you made a map for S4! Congratulations! 🎉🎉🥳 🎉🎉

Components!

Expand! ü There are quite a few unity components that are needed to make sure the map gets exported properly! If you import a map you'll see quite a few of these!

The first one you should keep in mind is ScnData! This component marks a gameobject in unity as the root of your scn file, anything outside of it will not be saved into the file alright? I'm serious here! Don't forget this part!

TextureReference and CollisionData are the most common ones since all maps would need visual meshes and collision meshes, right? Nobody likes falling to the infinite void for all eternity :P

Then we have S4Animations, Bone and BoneSystem as the other components that can be considered "required"

  1. TextureReference are scripts that hold some needed information about the textures so i can load load them properly into S4.
  • They store the name of the textures the model needs
  • The renderflags of the object
  • The transparency value for s4
  1. CollisionData has 2 dropdowns that define the type of collision that you want this object to be! The 2 types are ground and weapon
  • Ground collision is for players and the fumbi, ground collision has a few variations, the ones called steel, stone, etc are for what sound they make when you step on them, and the ones called wire are for allowing the fumbi to go through, while the ones called hash do not have camera collision, ideal for tiny objects, like a pole, or see-through objects like fences.
  • Weapon collision is for bullets and melee, you also have weapon_wire where is basically for wire fences, bullets go through but melee doesn't!
  1. S4Animations holds all animation info from the file, it only works with meshes and bones and it's quite the complicated topic! Stay tuned for more info!

  2. Bonesystem is really just a way to mark the object, it holds no data at all.

  3. Bone also is there to mark the object as a bone but also helps by keeping track of the hierarchy and displaying the bone relationship

We also have Helpers!

Expand! UwU

This are also components but don't actually do anything when exporting, they just help you keep things clearly defined! When generating map info this components will be used!

We have, in alphabetical order:

  • BlastData, breakable data such as health, respawn time and such
  • DOTData, damage over time area info such as damage and frequency
  • EventItem, this, well, was used by s4 for things like spawning coins during events, probably useless.
  • Jumppad, will show you an estimate of the trajectory the jumppad will do, but it's not perfect
  • PointDrawer, draws an icon for certain points such as spawn, goal, fumbi and death
  • SectorData,
  • SeizeData
  • SpectatorCameraData, the fixed points where the expectator camera can view the map.
  • WarpGateData, show's connections between the gates and other settings.

The 4 most important ones of this list, and the ones that have actually been tested are BlastData, Jumppad, PointDrawer and WarpGateData!

BlastData holds information about breakables, you know, wood boxes, doors, and those futuristic thingymajigs in OldSchool.

You don't neeeeeeed it to create a breakable, but it holds all of the variables in one neat place and generates the appropriate mapinfo text. ideally this component goes in the bone where all the breakables are parented.

Jumppad is one i actually worked quite hard on! It gives you a nifty little tool and visualization to edit a jumppad so you know somewhat accurately where you're gonna land with it.

PointDrawer is basically useful to mark what each of the box objects are for! It Draws an A for alpha spawns, a B for beta spawns and a fumbi head for the fumbi spawn!

Lastly we have WarpGateData, it also hold information about the warpgate and a list of the other warpgates it teleports to! It also draws a line to each of them so you can easily spot it!

Lasers and Pitfalls!

Expand! C: No, this isn't a tabletop party game that you can play with friends and family of all ages, as much as I'd like it to! You may or may not be wondering how to make lasers that kill one team and let the other team through, while resetting the Fumbi or how to forcefully, I mean, gently kill, no, unstuck! players that fall out of the map! Well I've got the solution for you! Introducing "Limited Areas"! The ultimate solution for those pesky players entering where they shouldn't!

Do you want to protect your spawn from those mean and bad spawn campers? Limited Areas!

Are your players tired of waiting 7 seconds for the Fumbi to respawn on their own? Limited Areas!

Is your player stuck on the bottom of your map and you need to rescue them? Wahm! Limited Areas!

And if you call now I'll give you 2 Limited Areas for the price of 1! Put another for the other team as well!

Put one in the kitchen! Put one in the garden! Put another one in that deadly pit you spent 3 hours making sure it looked deadly and cool!

Disclaimer: Limited areas are a deadly piece of map making and should not be abused nor put in any sort of kitchen/garden or any place that does not in fact look deadly or that should be limited. Limited Areas inc. will not take responsibility for any damages to players and/or Fumbies for the use and or miss use of limited areas. Limited areas is a product delivered "as is" and could spell the doom of all existence for the period of 7 seconds, you have been warned.

The last thing i want to mention in this section is that, if you press the button "Generate map info text [].[]" it will open up a window where you can automatically generate the information required to add to the '.ini' file based on all of the helpers!

Editing animations!

Expand! >:D

Alrighty, so to edit animations you have a couple of options.

  • Manually editing the values in the S4 Animation component, very bad for something complex
  • Using my S4 Animation editor, psst, don't, is very buggy.
  • Using unity's native animation system then translating that to a unity animation, probably the best option!

I wont even talk about the first option, the second option is to use my animation editor. It's not really that buggy, but for UV animations is really a no go, the implementation is wrong and buggy and the UI is bad.

Custom S4 Animation Window

It's fairly simple to use, first open the window

image

This will open this window:

image

It's currently not displaying anything because it's not attached to anything. We can attach it to a single object, a hierarchy of objects or a whole scn using the first 3 buttons.

image

These will become active if we have an object selected that meets the requirements

  • Attach Object: an object that has a S4 Animations component
  • Attach Armature: an object that has a S4 Animations component
  • Attach ScnData: an Object has a ScnData component

Once attached the editor will compile and display all the animations that it finds.

image

You can now select an animation and it will show you all of the bones that are involved in the animation.

image

If you open up a bone and select some of the properties, it will show the key-frames of these properties, you can move them around to change the values but ideally you should use these buttons to key the current position, location and/or scale of the bone or bones you have selected.

image

You can move the current frame using the slider or by setting the frame you want

image

And lastly you can add or remove new animations by pressing these buttons

image

A new animation will not have any bones or key-frames, but as soon as you add a key-frame while having an object with an s4 animation component, and that object belongs to the hierarchy that you attached to, then the bones will be added to the animation.

This animation window will soon be deprecated in favor of using the next option

S4 Armature The `S4 Armature` component is very simple, all it does is compile the S4 Animations in a Scn into a list of unity animations, the editing of these animations is done using unity's animation window which is simply much more complete.

image

It goes along the ScnData and will add the Animation Component as well you can add animations without doing the compiling and those animations will be written to the '.scn' file during exporting.

During the compilation it will delete the S4 Animations and the component itself if they become empty, it will leave them if there are UV or Vertex animations

Loading up a character!

Expand! >:D 👻 NYI

Editing uv animations!

Expand! >:D 👻 NYI