Action denied

Ingaming Guideline Ropeways - Advanced

In this tutorial you will learn how to ingame a detachable ropeway. If you have no experience in the field of ingaming, then work through the Beginner Guideline first.

Please make sure that Unity 2019.1.14f1 and the Modding SDK are correctly installed!

To edit the datatables it is recommended to download Visual Studio Code.

Chapters in this article:

SetUp

1. First, you create a folder for your project. To do this, go to the folder in which you installed the Modding SDK. In my case, that's C:\Desktop\Unity Modding. Next you follow the path Assets\Mods and create a folder with the name of your project. For example Tappenalm.

2. In order to have a better overview, you should create individual subfolders. For example: 3d models, textures, material, scripts

3. Perfect. Next you need to copy some scripts from the SDK. The path Assets\WinterResortSimulator-SDK\DataTables takes you to the datatables.

Then you go to the folders carriers, ropeways, supports and copy one script each into your project folder. In my case I need the scripts Sonnenbahn.lua, DCD8.lua, Revision-8CLD.lua and EUBSupports.lua.

An explanation of the scripts can be found here.

4. To load your mod you need the mod.lua, you can find it under the following path: Assets\WinterResortSimulator-SDK\Template. Copy them and add them to the script folder.

5. If you have already textured your 3d models in Blender, you can drag the textures into your textures folder. It is important that the files have the same name as in Blender. If this is not the case, the textures won't be displayed on the 3d model.

6. Next, you drag your 3d models into the folder 3d models.

7. Now you can open Unity. The path Assets\Mods\Tappenalm\3d models takes you to your 3d models.

8. Select all 3d models and uncheck the boxes Import Cameras and Import Lights in the inspector area and check the boxes Read/Write Enabled and Generate Collieders. Then click the Apply button to save the settings.

9. Finally, you drag your 3d models individually onto the Scene and then drag them to the folder Tappenalm. Unity will now ask you if you want to create a prefab, just click the button Prefab Variant and rename the file, in my case to Gegenstation.

10. If you double click on one of the prefab files you will open the file. Now you can assign materials with texture to your 3d models. Each step is saved automatically by Unity, and this feature enabled by default.

11. Next, name all the parts of your 3d model correctly, create subfolders if necessary and put everything in a meaningful sequence. This step is not absolutely necessary, but you will have a better overview yourself and players will be able to customize your ropeway more easily with the “Ropeway Customizer” modification (available for download on the steam workshop).

12. The last thing you do is create an assetbundle for your mod. Just click on the assetbundle line in the lower right corner and create a new assetbundle. In my case, I call my assetbundle tappenalm.unity3d.

It is important that the AssetBundle ends with .unity3d!

Now select the AssetBundle you just created for all other files for your mod.

Perfect, now you are completely set up and you can start with ingaming!


Carrier

At first, we create the prefab for our carrier. After we done this, we put our Materials on our mesh. Now write the name of your prefab in the passage called “prefab”:

After we’ve done this, you have to figure out the Index from our suspension like it’s shown in the picture:

Now we will paste the index from our Suspension in the passage rotXIndex. Important: Parent your 3d model like this:

Now just put the index of your suspension in this passage.

Now, create your door (or bar) animation and put the index of your mesh or empty where you put your animation component on it:

That’s how the animation part in the data table should look right now:

Now we will register the Number Labels in the data table, now it should look like this:

Now, that our carrier are already numbered you must of course still be able to sit in there. For this we Create an Empty and put a Box Collider on it, after you’ve done this, scale the collider and place it. Then crate two other emptys, one of them you call “cam” and the other one “leave”. After that you have to place the empty “cam” as you would like to have your camera for the seat. Now you place the empty “leave” slightly below the seat so that you don't get stuck in the ceiling of the cabin when you get out. Right away it should look like this:

Subsequently we register the Indexes from the seats. For this, we take the parent from the seat and register it right here:

Next, we take the index of the we empty called “cam”, and register it here:

We do the same thing with the “leave” Empty and put it in here:

Afterwards, copy the seats as many times as you need them for a carrier, in this case 6 pieces:

Since we’ve done this, we create two emptys, one of them we call “ExterieurCameraRoot” and the other one “ExterieurCamera” and parent it like this:

Put the Indexes in like this:

Now, you have a working Camera :).

Additional: If you want to have Static Cameras, just create an Empty and call it ExCam_xy and Place it like this:

That’s how the line in the data table should look like:

Last you have to place the seats for the NPC’s. For this, you create an empty called “skier_xy” and place it where you want your NPC's to sit, as with the seats, you must create as many of these as your carrier can hold. Prent it like this:

The only thing that’s left is to is to register everything in the mod.lua an create an Asset Bundle!

Congratulations, you ingamed your first carrier! :)


Control

DLC Control

If you want to use the DLC Control put these two lines in your data table:

controlClass = DoppelmayrControl,

cenConform = true, If you want your cableway to be Cen compliant (with Danger Buttons).

cenConform = false, If you don't want your cableway to be Cen conform (with Emergency Stop Buttons).

Structure of the pushbutton

Each pushbutton is a GameObject, which is constructed as follows: NameOfTheButton, see below = The base of the button. It also contains the animation and the trigger with which the click is caught). B5P_Button (= Object that is clicked) ButtonLabel (= The button label):

Structure of the LEDs

Each LED is a GameObject, which is structured as follows: NameOfTheLEDs, see below (= Here is the animation and the trigger with which the click is caught). B5P_Button = Object, to which the game assigns the correct material e.g. red For Gefahraus) ButtonLabel (= The label of the LED):

Structure of the switches

Each switch is a GameObject, which is structured as follows: NameOfSwitch, see below (= The socket of the switch. It also contains the trigger with which the click is caught). B5KRL_Button (= The actual switch) SwitchLabel (= The switch label) And some more rot labels:

Names for Buttons and Switches
Button (B) & Switch (S) Names Game Object
Control Voltage (S) ControlOn
Driving Direction (S) Direction
Automatic start (S) AutomaticLaunching
Slow Speed (S) Slow
Passengers (S) Passengers
Stations (S) StationsStaffed
Launch (B) Reset
Run (B) Run
Ready (B) Ready
Driving Speed (S) DrivingSpeed
Stop (B) SD1
Emergency Stop (B) SD3
Danger Without Fast Conclusion (B) SD2
Danger With Fast Conclusion (B) SD4
Danger 2 (B) SD5
Signal (B) Ring
Auxiliary (S) AuxReady
Lamp Test (B) LampTest
Horn acknowledgement (B) ResetHorn
DepartureDSTunoccupied (B) RunDSTUnstaffed
LED's
Operating brake Closed LEDBrakeEBClosed
Operation Brake Opened LEDBrakeEBOpen
Safety brake Closed LEDBrakeSBClosed
Control Voltage On LEDControlsOn
Available LEDReset
Ready LEDReady
Setpoint0 LEDTargetSpeedZero
Driving speed 0 LEDZeroSpeed
Drive LEDRun
Without Passengers LEDWithoutPassengers
StopDST LEDSD_1DST
Emergency Stop LEDSD_2DST
Driving out DST without fast closing LEDSD_2DST
Driving out DST with fast closing LEDSD_4DST
Danger 2 LEDSD_5DST
StopRST LEDSD_1RST
Emergency Stop RST LEDSD_3DST
Driving out DST without fast closing LEDSD_2RST
Driving out DST with fast closing LEDSD_4RST

Stations

At first Create a prefab.


Supports


Possible Bugs


This article is still under development

In case you are facing difficulties, feel free to reach out to our modding community on the official WRS discord server in the #modding chats!