---- Something something monowire ---- It would be a lot of work for something that won't look very good in the end. I'm working on too many other ideas
---- Does it support controllers? ---- Yes. Look at the video about input config. Also hit ctrl+f and search for controller in these posts
---- Quick Howto ---- Pull up CET console
The first thing to do is unlock grappling hook. Either fulfill the requirements or use the cheat xp hotkey
Next is to choose a slot for grapple. I recommend: Pull in slot 1 Rope in slot 2 Swing in slot 6
As you gain xp, spend the points. Energy tank is an obvious one, next would be max distance, then a little higher accel and top speed for pull
Input binding is used if you want to change what activates the grapple (especially for controllers) Click the input binding button Click the slot to change Close cet window so actions can be seen by my mod Press the buttons you want to use at the same time Open cet window, click save
So from my understanding, this mod relies on some combination of the native inputs we have ingame to work. There is no way an action can be bound to a separate key on its own?
What about Custom Quickslots, can't the actions from this mod be bound to empty slots from that mod?
If you want to bind to a completely custom key (like a mouse thumb button), you can pull up the CET key bind and bind to one of the "Custom Key A" thru G
When you pull up grappling hook's input binding page, it will see any action + any of the custom keys that you assigned (or pressing a couple keys at the same time)
It's a bit convoluted, but it was as simple as I could make it for the level of variety that I wanted to support
The mod works, except that I'm not getting any new experience. The log is spammed with the folowing (but it's from 2 days ago. Later play sessions didn't spam the log. However, experience seems not to be working.
[2024-04-12 21:27:22 UTC+02:00] [29748] ...s\mods\grappling_hook\ui_ingame\grapple_render_frame.lua:122: Function 'ProjectWorldToScreen' context must be 'worlduiIWidgetGameController'. stack traceback: [C]: in function 'ProjectWorldToScreen' ...s\mods\grappling_hook\ui_ingame\grapple_render_frame.lua:122: in function 'Line' ...s\mods\grappling_hook\ui_ingame\grapple_render_frame.lua:38: in function 'RebuildVisuals' ..._tweaks\mods\grappling_hook\ui_ingame\grapple_render.lua:84: in function 'CallFrom_onUpdate' init.lua:450: in function <init.lua:370>
I would recommend moving the grappling hook folder someplace like your desktop D:\SteamLibrary\steamapps\common\Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\grappling_hook
Then redownload and install grappling hook
Use xp cheat, give yourself a grapple, see if the problem is gone
If so, you could try swapping out the db.sqlite3 from your backup, or if you don't care that much about your current grapple settings, just redo from the defaults
This is overly complicated to config or even unlock. Not sure why it even has an unlock requirement or level requirement...And claiming that it requires all of that because "its OP" isn't an excuse seeing how there is an XP cheat...Even if it were "because its OP" its a mod...
anyway I hope in the future you make this less of a chore.
absolutely essential mod for me by now <3 any chance we could get a version without automatic controller bindings? i keep grappling whenever pressing the X button and dont understand how to unbind it :\
i did look through the config files and the ingame menu tho before posting this question and couldnt solve my issue...
my issue is: i dont want my controller buttons to be bound to grappling - i never bound a controller button and i cant unbind the controller button - it seems to be assigned automatically when i set my keyboard binds as i want them to be.
a toggle to ignore controller inputs would be awesome.
At the top of the file are various constants. The way the rope is drawn, is that there's a from/to point. Then there is something that puts some random twirl at the end that decays to a straight line based on time (I think the to point also flies away from the player at some speed). Then a bezier is calculated for a few points along that theoretical line. Then a 2D width is calculated for those 3D points and if there's too much gap in width, there are some intermediate points chosen to help smooth out. (the steps in size aren't as easy to notice when animated in real time, but if you record video and pause, it's pretty glaring)
This will set the size (probably at 1 meter from the player) local LINE_THICKNESS = 2
You'll need to reduce this by a similar ratio. This is what determines when to step down in size local THICKNESS_EPSILON = 0.5
If your machine can handle it, bump this up a little, which will create more recursions and more gradual steps of line thickness local MAX_RECURSE_VV = 4
---------------------
In order to test, hit the reload all mods button in the cet console. Then you'll need to reload a save in order for the event to fire that I use to get a canvas to draw on
Hey I'm loving this mod so far, although i'm not 100% sure i understand it. Could you point me to the commands I need to "cheat" more xp? the level up rn seems super super slow and I'd love to just spiderman around night city
If you click the Bindings tab in CET console, you can assign a key to the cheat xp command. Use a key that's out of the way, like page up, since you'll rarely use it
After that, every time you push that key, you'll get 3 more xp
Thank you so much! i'm trying my best now to tune my "pull" for proper spiderman-ing/attack-on-titan-ing by it feels very off. do you have recommended settings/tunings for this?
Swing will let you point to open air and it picks what grapple to use. There isn't much to tune besides energy use and boost since it calculates a bunch of settings based on conditions (currently velocity, look, drop, etc)
For straight pull, you'll want to play with accelerations and max speed first. Anti gravity can help make it feel a little more floaty. There's an air anchor that cheats and anchors to a fixed distance in midair (predecessor to swing). If you use air anchor, change the aim duration to instant
I intentionally made the swing slightly too expensive at the start because it's so overpowered. You can reduce your energy to get back enough to buy it, then slowly work that back
Or if you're impatient, use the cheat hotkey a few times (or many times if you want everything all at once)
435 comments
---- Something something monowire ----
It would be a lot of work for something that won't look very good in the end. I'm working on too many other ideas
---- Does it support controllers? ----
Yes. Look at the video about input config. Also hit ctrl+f and search for controller in these posts
---- Quick Howto ----
Pull up CET console
The first thing to do is unlock grappling hook. Either fulfill the requirements or use the cheat xp hotkey
Next is to choose a slot for grapple. I recommend:
Pull in slot 1
Rope in slot 2
Swing in slot 6
As you gain xp, spend the points. Energy tank is an obvious one, next would be max distance, then a little higher accel and top speed for pull
Input binding is used if you want to change what activates the grapple (especially for controllers)
Click the input binding button
Click the slot to change
Close cet window so actions can be seen by my mod
Press the buttons you want to use at the same time
Open cet window, click save
What about Custom Quickslots, can't the actions from this mod be bound to empty slots from that mod?
If you want to bind to a completely custom key (like a mouse thumb button), you can pull up the CET key bind and bind to one of the "Custom Key A" thru G
When you pull up grappling hook's input binding page, it will see any action + any of the custom keys that you assigned (or pressing a couple keys at the same time)
It's a bit convoluted, but it was as simple as I could make it for the level of variety that I wanted to support
The log is spammed with the folowing (but it's from 2 days ago. Later play sessions didn't spam the log. However, experience seems not to be working.
[2024-04-12 21:27:22 UTC+02:00] [29748] ...s\mods\grappling_hook\ui_ingame\grapple_render_frame.lua:122: Function 'ProjectWorldToScreen' context must be 'worlduiIWidgetGameController'.
stack traceback:
[C]: in function 'ProjectWorldToScreen'
...s\mods\grappling_hook\ui_ingame\grapple_render_frame.lua:122: in function 'Line'
...s\mods\grappling_hook\ui_ingame\grapple_render_frame.lua:38: in function 'RebuildVisuals'
..._tweaks\mods\grappling_hook\ui_ingame\grapple_render.lua:84: in function 'CallFrom_onUpdate'
init.lua:450: in function <init.lua:370>
I assume you have the latest version of CET
I would recommend moving the grappling hook folder someplace like your desktop
D:\SteamLibrary\steamapps\common\Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\grappling_hook
Then redownload and install grappling hook
Use xp cheat, give yourself a grapple, see if the problem is gone
If so, you could try swapping out the db.sqlite3 from your backup, or if you don't care that much about your current grapple settings, just redo from the defaults
D:\SteamLibrary\steamapps\common\Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\grappling_hook\db.sqlite3
You can either rename or delete the file. Then the next time you start the game, it will get recreated with defaults
anyway I hope in the future you make this less of a chore.
if you have the hours spare its definately worth it going through the hassle.
any chance we could get a version without automatic controller bindings? i keep grappling whenever pressing the X button and dont understand how to unbind it :\
Or you can remove grapples from the main window of the config
my issue is: i dont want my controller buttons to be bound to grappling - i never bound a controller button and i cant unbind the controller button - it seems to be assigned automatically when i set my keyboard binds as i want them to be.
a toggle to ignore controller inputs would be awesome.
any chance for a slimmer rope visual of the pull grapple? it feels a bit fat :P
That's handled in: ui_ingame\grapple_render_frame.lua
At the top of the file are various constants. The way the rope is drawn, is that there's a from/to point. Then there is something that puts some random twirl at the end that decays to a straight line based on time (I think the to point also flies away from the player at some speed). Then a bezier is calculated for a few points along that theoretical line. Then a 2D width is calculated for those 3D points and if there's too much gap in width, there are some intermediate points chosen to help smooth out. (the steps in size aren't as easy to notice when animated in real time, but if you record video and pause, it's pretty glaring)
This will set the size (probably at 1 meter from the player)
local LINE_THICKNESS = 2
You'll need to reduce this by a similar ratio. This is what determines when to step down in size
local THICKNESS_EPSILON = 0.5
If your machine can handle it, bump this up a little, which will create more recursions and more gradual steps of line thickness
local MAX_RECURSE_VV = 4
---------------------
In order to test, hit the reload all mods button in the cet console. Then you'll need to reload a save in order for the event to fire that I use to get a canvas to draw on
kudos to you for sharing your work and this outstanding service!
edit: got it much slimmer now thank you! :))
just out of curiosity - what do those do?
"local DOT_RADIUS = 18
local DIAMOND_RADIUS = 18"
Until then, you can bind a hotkey to the cheat xp, give yourself in the low 20s amount of xp (that's what the unlock does)
After that, every time you push that key, you'll get 3 more xp
For straight pull, you'll want to play with accelerations and max speed first. Anti gravity can help make it feel a little more floaty. There's an air anchor that cheats and anchors to a fixed distance in midair (predecessor to swing). If you use air anchor, change the aim duration to instant
I intentionally made the swing slightly too expensive at the start because it's so overpowered. You can reduce your energy to get back enough to buy it, then slowly work that back
Or if you're impatient, use the cheat hotkey a few times (or many times if you want everything all at once)