The Witcher 3

File information

Last updated

Original upload

Created by

glassfish777

Uploaded by

glassfish777

Virus scan

Safe to use

About this mod

Restores the ice skating mechanic for Ciri that CDPR devs often talk about in interviews. Now with next-gen update support! WARNING: Highly unfinished and experimental. Please only install this to play around with it. Don't try to actually play through the quests with it as there are a ton of bugs and things will break.

Permissions and credits
Changelogs
TLDR: I restored the unfinished Ice Skating feature for Ciri that was cut from the game but left in the files. It's just the ice skating mechanic itself only as there were no quests, dialogue, or models left in files. This is an experimental mod right now so don't expect any compelling gameplay. I just restored this for fun. Please read all the directions carefully if you choose to install this.

This version of the mod is for the Next-Gen update(4.04) only. For the 1.32 version of this mod please see here.
The versions are mostly identical except the Next-Gen version support Photo mode while skating.

Overview

When talking about Witcher 3 cut content CDPR devs have often mentioned that they were going to have a section of the game where you would control Ciri while ice skating. This section was going to be in the quest On Thin Ice and would have featured the fight with Caranthir and run up to it. While these combat sections with Ciri are still present in the current version of On Thin Ice, they do not feature the ice skating mechanic which was cut in early 2014. The developers often cite not wanting to introduce a new mechanic so late in the game as the reason for cutting ice skating among other issues.

By some absolute miracle almost all of CDPR's work on this mechanic still survives in the current game's files. Pretty much all of the necessary scripts, animations, and behavior graphs to restore this mechanic at the prototype level it was left at are still present. It should be noted that this mechanic was a VERY big work in progress at the time it was cut. It was almost as if the developers were right in the middle of coding and debugging it and some manager walked in and told them to stop. A lot of stuff here was still in the process of being figured out and sorted out by CDPR themselves. With this mod I have done my best to restore this mechanic to a playable state so that people could play around with it and see what the ice skating mechanics were all about. You can watch a short video demonstrating what I have restored here.

Please keep in mind that unlike some of the other restored content mods you may have seen this bit of content was never actually finished by CDPR themselves and everything here was very prototype and not intended to be see in the finished product. Most of what you see here is the work of CDPR but I have done my best to fill in some of the gaps and make this a playable mechanic but I am not a professional video game developer so expect this to still be very prototype and unfinished. Also keep in mind that there are no quests, dialogue, sounds, or items associated with this mechanic in the game files or included with this mod. Ciri will also not wear any ice skates or have any unique appearance when Ice Skating. CDPR either never made any or they were stripped from the game files before release. I would only recommend installing this as something to play around with and to avoid playing any actual quests with it. The mechanic is buggy and will likely break something so I suggest only using it when roaming around. White Orchard or Kaer Morhen would be the ideal maps to try this in as Ciri can move quite fast while skating and there may be problem with asset streaming on denser maps.

What this mod restores

This mod only restores the Ice Skating gameplay mechanic for Ciri accessible via the debug console. It features 12 of the 16 known moves CDPR planned for Ice Skating. These are detailed in the section below. I would recommend using keyboard and mouse when ice skating. Basic controller support is provided however it controls very poorly and I cannot get one of the moves to work properly with it. As mentioned above, this mod does NOT restore any quests, dialogue, sounds, items or apparel(including the actual ice skates) that may have been associated with the mechanic at any point in the game's development.

Mechanics

Starting Skating: To start skating, you must switch to Ciri. Type "Ciri" in the debug console to do so. You then need to type "Skate" into the console to start skating. To stop skating type "Ciri" again into the console.

Skate Idle: Upon entering skating or when you are stopped, Ciri will be in Skate Idle holding her sword with a reverse grip. Ciri will always draw her sword when skating. This was enforced by CDPR as swordless skating was never finished nor implemented. When you press one of the movement key or move the analog stick Ciri will take a starting step in your chosen direction.

Skate Run: This is default state of movement. Ciri will start in speed level 0(more on speed levels in a later section). You can hold W on your keyboard or forward on the stick to accelerate as you would expect. Press A and D on your keyboard or left and right on the stick to turn. Hold the S key on your keyboard or back on the stick to start braking. If you let go of the movement controls while moving Ciri will very slowly decelerate. Upon reaching a slow enough speed Ciri will automatically stop and return to Skate Idle. You can also hold Left Shift on your keyboard or on the controller to sprint. Sprinting will move Ciri up to speed level 1 and engage the sprinting animations. Letting go of sprint will move Ciri back to speed level 0.


Skate Dash: Ciri can use her special abilities to dash and gain a big boost of speed. Press Left Alt on your keyboard or Right Trigger on your controller to dash. Dashing will consume a small bit of energy(stamina). If you don't have the required energy then you won't be able to dash. Dash also features a cooldown of 0.5 seconds before you can use it again unless you are able to get your next dash in the Flow Gap(more on Flow in another section). Dashing will move you up to the next speed level up
to a maximum of speed level 2. If you manage to string together your dashes in the flow then you will be able to reach speed level 3, the maximum speed level.
CDPR's skating dash animation was missing the dash special effect so I added it in.

Skate Dash Attack: Ciri can attack with her sword while performing a dash. To do this click your left or right mouse buttons or press X on your controller.
You do not need to be in the middle of a regular dash to dash attack. The dash attack also features the same speed boost effects as the regular dash. This is currently the only way to semi reliably hit any enemy while skating. CDPR said one of the troubles they had with skating was getting the sword fighting to work well and they weren't joking. What they had at this point was not great and frustrating to use. This attack works best against large enemies or packs of small enemies. Single small fast moving enemies will be frustrating to get hits on. My best advice for them is to slow down and take your time with aiming and timing. I have made some tweaks to make this more reliable but it's still not that good.

Skate Dash Attack Lock-On: CDPR probably recognized the issue with hitting small fast moving enemies and included an automatic lock on feature for the dash attack.
Unfortunately, this feature requires enemies by manually tagged as a 'SkateTarget' enemy. So far the only enemy I have included with this mod to be tagged with this is the Hound of the Wild Hunt(type 'spawn(wildhunt_minion_lvl1)' in the console to spawn). This mechanic still didn't work that great. I greatly reduced the speed boost you get from this and increased the angular range targets can be around Ciri to get a lock on. It still isn't that good but should be slightly better if you can get the aiming and timing right.

Skate Drift: To make quick sharp turns Ciri can use the Drift move. To execute this, hold the drift key, Left Control on your keyboard or Y on your controller, and turn in the direction you wish to drift in. Ciri will perform a cool animation and start drifting in your chosen direction for as long as you hold the drift key + direction down. While drifting, a special drift camera designed for this move will activate in order to better show where Ciri is going. Drifting will also slow Ciri down and reduce her speed level by one level. If you manage to perform a drift in the Flow gap and you were at Speed level 3 then you will be able to return to speed level 3 without having to perform a string of dashes to get it back(basically your speed level cap won't reset back to 2 and will stay at 3)
.

Skate Slide: This is similar to drift except it won't involve turning. Just hold down your drift key without holding a direction to activate it. A special camera for the slide will be active for as long as the drift key is held down.

Skate Fast Stop: Hold down the drift key and S on your keyboard or back on the stick to come to a stop immediately.

Skate Backward: Tap the E key to start skating backward. While skating backward you will be able to make sharp turns but will slow down rapidly. Tap the E key to return to forward skating. If you slow to a slow enough speed Ciri will automatically stop. If you manage to perform a drift in the Flow gap and you were at Speed level 3 then you will be able to return to speed level 3 without having to perform a string of dashes to get it back(basically your speed level cap won't reset back to 2 and will stay at 3). NOTE: This move is currently not available when using a controller.

Skate Jump: Press the space bar or B button on your controller to jump from either Skate Idle or Skate Run. The jump is really janky and will stop your momentum. Jumps can currently only be performed downhill(your landing location has to be at a lower elevation than your takeoff location). This was actually the case with ALL types of jumps in the game circa 2014. Also not sure if it's possible in reality to jump uphill while ice skating.

Skate Jump Attack: Click your left or right mouse button or X on your controller right after pressing jump to perform a spinning jump attack. The animation doesn't not look quite right and I've never been able to hit anything with this as it's very jerky and out of control. For now this is just for show and not meant for actually attacking anything.

Skate Hit Lateral and Hit Frontal: These are the states Ciri was supposed to enter when taking a hit from collision or from an enemy. They were extremely buggy and made the mechanic unplayable so I disabled them.

Skate Air Stomp and Air Dash: These files were sadly left blank by CDPR so there is nothing I can do for now to restore these moves. They sound cool though.

Flow and Speed Levels: There are 4 speed levels when skating, 0 , 1 , 2,  and 3. Each speed level has a maximum speed limit. These are 6, 9, 12, and 15 accordingly(speed
is unitless in W3). You start at speed level 0 and can get to speed level 1 by either sprinting or dashing. Speed level 2 can be reached via dash only while speed level 3 requires a dash in the flow gap. Dashing will also give a you a speed boost to reach the next speed level's maximum speed. If you fall below the previous speed levels maximum speed your speed level will automatically be dropped down to the previous one. When performing special moves like the dash, drift, slide, landing
from a jump, or dash attack something called the Flow Gap will be opened. You will have a period of time to string together another move for a bonus. The only real bonus CDPR ever implemented for this was getting to the final speed level. For example, if you perform 3 dashes within the flow gap time of each other then you will reach speed level 3. The drift, slide, and backward skate all provide a another bonus where if you are at a speed level 3 and your perform one of these moves in the flow gap then your speed level cap won't get lowered back down to 2. Landing from a jump does not provide any bonuses on it's own but will open a flow gap to string other moves with. The jump is very rough right now so I would not recommend trying to string together jumps. The current flow gap time is set to 0.5 seconds(I know this is the same as
dash cooldown for now). Tip: For dash you have to a wait a very tiny bit until the dash is complete before the next flow gap is opened so its all about timing.


Note on Ciri's Stamina: Ciri's energy or stamina system went through several changes during development and worked differently when ice skating was still a thing in development. It was previously going to work a lot like Geralt's original stamina system where every action would cost stamina and skate skating actions like dash would be no different. However, this whole system was scrapped(lot's of interesting evidence of it left behind btw) and Ciri and Geralt's stamina system started working differently. When initially spawning in as Ciri her stamina will be full and work like Geralt's out of combat stamina with really fast regen however Ciri doesn't use stamina while sprinting normally so this is kinda useless(jumping uses stamina but doesn't actually require it to jump... yeah this game is buggy). However upon exiting your first combat encounter with Ciri a stamina drain effect will be placed on her that will slowly drain her stamina down to zero. Upon entering another encounter this drain effect
is removed and stamina will quickly regen again so you can use her special moves. This drain stamina out of combat effect doesn't quite work with skating since dash uses stamina. For now I've decided to remove this drain effect from Ciri completely so her Stamina works like Geralt's now. In the future I may decide to make dash use no stamina instead. Please note this if you try to merge this mod with another mod that modifies Ciri's combat.

Note on Ciri's Vitality Regen: The Ciri replacer in the Witcher 3 was never intended to be used outside of the quests where you play as her
. All of her abilities from her special attacks to her vitality regen are actually automatically added/removed from her by the quests. So when ever you load up Ciri via the console the current state of her abilities will be dependent on what state the last quest you played as her left her in(the quests do some weird stuff in the background). Unfortunately, On Thin
Ice, the last quest where you play as her, will leave her in a state without her special attack and most importantly without automatic vitality regen. I've added some code that will check if Ciri has vitality regen upon loading and will add it if she doesn't which should hopefully fix this bug.



HUD

CDPR never actually got far enough with the mechanic to make a proper HUD to show your speed level, flow gap, or other relevant information. They were using the game visual debug system to show this information on screen so the developers could test the mechanic. The visual debug is basically the kind of stuff debug stuff devs show on screen when developing the game(basically what you saw in the GTA 6 leak). Unfortunately, CDPR has stripped the visual debug system from the game's
binary before shipping it so we do not have access to it to show ice skating related info(I really wish they would add it in the next gen version but they probably won't). I hope to eventually make a proper HUD for ice skating but in the meantime I've hacked the combat log on the lower left of the screen to show speed
level related information briefly as well as some other messages indicating change
of state and camera.


Installation

Installing this mod is not straightforward so please read carefully. First make sure you have your debug console enabled. You can find instructions for
doing so here. Inside the zip file you will find a mod folder that needs to be unpacked to your 'Mods' folder like usual. You will also find a text file that is needed to ensure your controls work. Follow the directions in the text file and add the large block of text starting with '[Skating]' to your input.settings file located in your Documents\The
Witcher 3 folder. Most of the scripts included with this mod won't require merging as I don't think any mod has ever touched the skating scripts until this one. You may try merging the ciri.ws file but I would highly recommend just giving it priority. For all other conflicts give this mod priority or things will not work properly. I will not be making any compatibility patches for the time being as the mod is intended for experimentation and should not be apart of a permanent mod list or be a part of the normal gameplay experience for now. I can say for sure that this mod is working with the Concept Ciri mod with no conflicts if you have that installed.

Known Issues

Being a experimental prototype gameplay feature, Ice skating will have a ton of bugs. Please except to encounter the following issues in addition to
other I may not know about yet.

-You will probably get stuck if you run into weird geometry or terrain. Type 'Ciri' in the debug console to reset.
-Falling off of cliffs without jumping will get you stuck. Reset as described above.
-You can only jump downhill. Will hopefully be able to fix this one day.
-There is a sutter when transitioning from the starting step to running. I've tried to fix this the best I can but it's still kinda noticeable. This is likely because both animations were prototype and never designed to blend together well. This effect should be reduced the higher framerate you play at.
-Sometimes Ciri's stamina outside of combat will just go to zero. I did remove the stamina drain effect so that this doesn't happen all the time but something is still causing it to happen occasionally. The only way to fix it is to reload a save or in some cases restart the game. Also don't load autosaves made while skating.
-When taking off from idle Ciri may on rare occasion go in the opposite direction than what was commanded. I'm pretty sure I've fixed this but I'm putting it here just in case.
-There is no animation when switching sides during backward skating. One was never implemented by CDPR.
-Ciri still looks like she is accelerating when letting go of controls. CDPR never implemented animations for skating along without accelerating and just used a loop of the moving foward animation.
-Braking from sprinting might not be very effective.
-Sometimes the camera might stay rotated from the drift camera. I'm pretty sure I've fixed this but putting here just in case. Just try drifting in the opposite direction to fix it if it does.
-Probably many more

Feedback and Future Plans

I happy to take any feedback on this mod but please do not expect me to fix any bugs in the near term. Keep in mind that this mechanic was left as a major work in progress by CDPR and its restoration on my end is also one. Ice skating was always intended to
occur during on rails Ciri gameplay sections where the level would be
designed to best accommodate the high speeds skating physics and enemies set to be one hit kills to make the wonky skating combat system more palatable. Crowded places like the Novigrad streets or rocky areas like the Skellige mountains are probably not where skating was intended to happen and will likely result in getting stuck on some level geometry.

In the future I would like to continue polishing the skating mechanics to hopefully make them into a more fully featured a playable mechanic. This is an absolutely massive ask as I am not professional video game developer and ice skating is something even CDPR themselves struggled with. I don't think as of now this will ever reach the level of a final polished mechanic. I would also like to add swordless skating. There are a few swordless skating animations left in the files but most are missing so this will probably require making new animations. Adding ice skating for Geralt could also be possible if skating animations were created for him. If you are familiar with animations, behaviors, or locomotion scripts in the Witcher 3 and have any advice please feel free to reach out as I'd love to hear any new ideas.

I am also looking to add actual ice skates for Ciri to wear while skating but I unfortunately I don't have the necessary artistic or 3D modelling skills. If you would like to make some please reach out to me and maybe we can collaborate.

Lastly, my ultimate goal is to one day create a brand new quest(s) where Geralt and Ciri can go ice skating. This would ideally serve as a the tutorial for the mechanic which would then be used again during the Caranthir fight. We are a long way off from this however as there is quite a bit to go toward making the mechanic itself ready for use in normal gameplay.


Technical Background

Read this section if you are interested in how this content was restored.

Somehow, all of the scripts were left in the game and still get compiled by the engine every time it compiles scripts. They were such a major work in progress that a lot of important code was commented out for presumably debugging purposes. As some might know all developer comments are stripped out of the current version of the game's scripts. Fortunately, CDPR did leave the comments in Patches 1.08-1.11 and 1.21. These comments were absolutely invaluable to restoring this mechanic as I could actually uncomment some of the critical code and read developer comments to try and figure out what they were going for. Even with these comments however it was still a struggle trying to figure out what exactly CDPR was trying to do but I did my best to figure it out.

The console command, 'Skate', used to switch to skating is still present and usable in the current version of the game. However, if you try to use it both Geralt and Ciri will draw their steel swords and immediately T-pose. Normally, T-posing occurs when the animations or behavior graphs for a particular state cannot be found. This however is not the case with Ice Skating as skating animations and behavior graphs for Ciri are present in the game files(ice skating was only intended for Ciri as far as I can tell). The issue here was that the states for the various ice skating actions were not included as components in ciri_player.w2ent. Only WolvenKit 7's new chunk handling system can add the appropriate chunks to include these new states. Adding the chunks with older versions will cause the game to crash upon switching to Ciri. After adding the states and attaching the behavior graph to the ciri_player.w2ent, the 'Skate' command will successfully put Ciri in the 'Skate Idle' skate. After correcting some inconsistencies with the current version's animation system (AnimEndAux is now AnimEndAUX), the basic takeoff and running animations and movement were working. In order to get the controls for accessing the other moves working, a new input context had to be added to the users input.settings file so that controls unique to skating could be bound.

With this done, numerous script edits, rewrites, and uncomments, could be made in order to add missing functionality, remove buggy functionality like collision animations, and add missing physics. I also went ahead and added a basic dash effect to the dash animation as I presume it was to involve Ciri's special powers like her combat dash in the current game does. Overall, I was able to restore all of the planned skating moves with the exception of the Air Dash and the Air Stomp which featured blank script files. In addition there are several more unused animations like the lean and swordless versions of the existing moves that I did not restore. All of these moves are still very
prototype and janky to use (especially the combat).

I was also able to add the custom cameras made for the drift and slide by adding the appropriate chunks to new_camera.w2ent.


Special Thanks


I want to thank Ryan Hank for answering all my questions about w2beh, w2anims, and locomotion in the game as well as helping me get the jump
working. I also would like to thank Nikich and Aeltoth for all their help with this project. In addition, thank you to MerseyRockoff and the members of the Brothers In Arms Ultimate Bugfix and Restored Content Collection team for their support.


My Other Mods

Old Witcher 3 (1.32):
Novigrad Crest in Journal Restored
Restored Content - Shrines of Verna
Restored Content - Ciri's Fate
Restored Content - Old Mutagen Icons
Restored Content - Additional Perks
Experimental Restored Content - Ice Skating
Smooth Camera Zoom for Base Game Signs and Posters
Restored Content - Yellow Mutagens

Next-Gen Witcher 3(4.0):
Smooth Camera Zoom for Base Game Signs and Posters
Restored Content - Old Mutagen Icons

Restored Content - Yellow Mutagens - Next-Gen
Restored Content - Additional Perks - Next-Gen
Experimental Restored Content - Ice Skating - Next-Gen

Restored Content - Ciri's Fate - Next-Gen
Restored Content - Woodland Spirit Aftermath
Restored Content - Shrines of Verna - Next-Gen
Restored Content - Usable Whetstones


Other mods I have contributed to or collaborated on:

Restored Content - Buffed Monster

Restored Content - Buffed Monster - Next-Gen
Restored Content - Food
Healthy Food
Brothers In Arms-TW3 Bug Fix and Restored Content Collection(includes all my location fixes mods as well as some other things I've contributed)
Brothers In Arms- TW3 Bug Fix and Restored Content Collection - Next-Gen
DLC - Events
DLC - Events - Next-Gen