cool, it seems to worg.
This commit is contained in:
parent
2d0739e90e
commit
efb97f23db
6 changed files with 162 additions and 20 deletions
18
README.md
18
README.md
|
@ -46,7 +46,23 @@ entire instance and probably not lose anything important.
|
|||
|
||||
### SteamVR Bindings
|
||||
|
||||
TODO
|
||||
The SteamVR bindings are awful, and even worse for non-steam games like Vivecraft; the
|
||||
bindings are supposed to be in the workshop, but they're not. Plus you still have to click
|
||||
through a bunch of things even if it was there.
|
||||
|
||||
Thus, we bundle the bindings json file in the pack, downloaded by packwiz, and
|
||||
include the `setup-steamvr-bindings.ps1` script to copy the bindings file to the
|
||||
`<documents>/steamvr/input/imports` directory, and then call the HTTP API that
|
||||
steamVR uses internally in the bindings UI to click the button for you.
|
||||
|
||||
And also there's the `setup-steamvr-bindings.vbs` wrapper script, since ps1
|
||||
scripts don't seem to run on double-click by default, but VBS does.
|
||||
|
||||
So you still have to do some stuff manually, but it's way less hassle than it'd be
|
||||
otherwise.
|
||||
|
||||
Ideally the multiMC script would run the script on boot, but the packwiz-installer
|
||||
already runs there. Might be able to make a wrapper to call both though.
|
||||
|
||||
### Mod Descriptions
|
||||
|
||||
|
|
73
index.html
73
index.html
|
@ -73,26 +73,60 @@
|
|||
</div>
|
||||
</section>
|
||||
|
||||
<section id="download">
|
||||
<section id="setup">
|
||||
<h2>SteamVR Binding Setup</h2>
|
||||
|
||||
<p>
|
||||
After you have the instance loaded in launcher, you'll still have to setup the bindings, which is
|
||||
excruciatingly difficult usually. We've managed to automate most of this, but you'll still have to do the
|
||||
following at least one time:
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Open the launcher (PolyMC, MultiMC, or Prism Launcher)</li>
|
||||
<li>Right-click on the VR Crawler instance</li>
|
||||
<li>Select "Minecraft Folder" to open the .minecraft folder</li>
|
||||
<li>Locate the file named "setup-steamvr-bindings.vbs"</li>
|
||||
<li>Double-click the "setup-steamvr-bindings.vbs" script to run it.</li>
|
||||
<li>the script installs the bindings for you!</li>
|
||||
</ol>
|
||||
|
||||
<h3>Manual Binding Setup</h3>
|
||||
|
||||
<p>
|
||||
If you don't want to use our recommended bindings, you should at least setup the following bindings:
|
||||
|
||||
<ul>
|
||||
<li> Combat Roll - Roll </li>
|
||||
<li> ImmersiveMC VR Bindings - Ranged Grab </li>
|
||||
<li> VR Jester - Gesture Listener Trigger </li>
|
||||
</ul>
|
||||
|
||||
in the "Modded" tab of the binding UI. See <a
|
||||
href="https://steamcommunity.com/sharedfiles/filedetails/?id=2029205314">this visual
|
||||
guide</a> for help on how to do this.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
</section>
|
||||
<section id="play">
|
||||
<h2>How to Play</h2>
|
||||
|
||||
<p>
|
||||
Start the game, put on your headset, then connect to the server that's prefilled in the multiplayer menu.
|
||||
Double-click the instance in the launcher. It'll take a while to start up. Once you're in, connect to the
|
||||
server in the multiplayer menu (if it doesn't auto-connect).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you're entirely new to vivecraft / minecraft, you may have to set up the SteamVR bindings. With an Index controller
|
||||
you can use the VR Crawler community binding. It is included in the instance folder as org.jrbudda.vivecraft.steamvrinput_knuckles.json
|
||||
and can be placed in Documents/steamvr/input. Otherwise use SteamVR's binding menu to bind Combat Roll - Roll,
|
||||
VR Jester - Gesture Listener Trigger, and ImmersiveMC VR Bindings - Ranged Grab in the Modded tab.
|
||||
<a href="https://steamcommunity.com/sharedfiles/filedetails/?id=2029205314">This</a> explains the process of setting up custom bindings.
|
||||
Check out <a href="https://www.vivecraft.org/how-to-play/">Vivecraft's How To Play guide</a>
|
||||
for more basic control info.
|
||||
If you're entirely new to minecraft/vivecraft, see <a
|
||||
href="https://www.vivecraft.org/how-to-play/">Vivecraft's How To Play guide</a> for basic info.
|
||||
TODO our bindings are different though, so we'll eventually have some controller pictures for you.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If it's your first time playing, you'll get some books in your inventory that explain things.
|
||||
Open them up to read them. We've also put up signs around the starting town to help you figure things out,
|
||||
hopefully without ever opening the overlay or taking the headset off.
|
||||
As for actual game mechanics, you will get some books in your inventory that explain things.
|
||||
As usual though, nobody fucking reads those things, so if somebody else is on the server, ask them in voice
|
||||
chat for help.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
@ -104,11 +138,12 @@
|
|||
themselves to actually moving your arms around; inevitably, everyone just logs on in flat mode instead.
|
||||
</p>
|
||||
<p>If you want a more vanilla
|
||||
experience, try the other <a href="https://rentry.org/xrd2e">/vrg/ NA minecraft server</a>, or one of the <a
|
||||
href="https://boards.4chan.org/vm/catalog#s=minecraft">servers shilled on /vm/</a> .
|
||||
experience, try the other <a href="https://rentry.org/xrd2e">/vrg/ NA minecraft server</a>, or one of
|
||||
the <a href="https://boards.4chan.org/vm/catalog#s=minecraft">servers shilled on /vm/</a> .
|
||||
</p>
|
||||
<h3>What's actually in the mod pack?</h3>
|
||||
<p>See <a href=mods.html>the full modlist</a> for a nicely categorized list, with expandable full descriptions
|
||||
<p>See <a href=mods.html>the full modlist</a> for a nicely categorized list, with expandable full
|
||||
descriptions
|
||||
and links to the modrinth pages.</p>
|
||||
<h3>Something broke / the server is down!</h3>
|
||||
<p>Complain in <a href=https://vrg.party>the thread</a>, I'll see it.</p>
|
||||
|
@ -116,10 +151,12 @@
|
|||
<p>
|
||||
The modpack doesn't actually have the jars in it. It uses <a
|
||||
href="https://packwiz.infra.link/tutorials/installing/packwiz-installer/">packwiz-installer</a> to
|
||||
actually download all the jars for you from modrinth, as well as keep the modpack up to date to the changes
|
||||
actually download all the jars for you from modrinth, as well as keep the modpack up to date to the
|
||||
changes
|
||||
we make in
|
||||
<a href="https://git.vrg.party/hiina/minecraft-crawler">the git repository for the pack</a>.
|
||||
It's a lot of autism, and packwiz ain't perfect, but it's a lot more maintainable than a directory full of
|
||||
It's a lot of autism, and packwiz ain't perfect, but it's a lot more maintainable than a directory full
|
||||
of
|
||||
jars.
|
||||
</p>
|
||||
</section>
|
||||
|
|
|
@ -2523,3 +2523,11 @@ hash = "7a6c14d87a80ec8a6cf49d620148f32a091dccee25a930f72f593840eb6223c8"
|
|||
[[files]]
|
||||
file = "patchouli_books/vrcrawler/loot_tables/grant_book_on_first_join.json"
|
||||
hash = "3223d26ef6c683a5a016a7749c30121457b4f7218641f0db48dbf7ebbab28e48"
|
||||
|
||||
[[files]]
|
||||
file = "setup-steamvr-bindings.ps1"
|
||||
hash = "38d2fd63756957a14e4443cbe5b68d09dc3d609b297e038370935dfa8132b842"
|
||||
|
||||
[[files]]
|
||||
file = "setup-steamvr-bindings.vbs"
|
||||
hash = "38b42d412ac37f390a94a546dba352a0e89b76c32ea0d45bdd6db401f3feffe9"
|
||||
|
|
|
@ -5,7 +5,7 @@ pack-format = "packwiz:1.1.0"
|
|||
[index]
|
||||
file = "index.toml"
|
||||
hash-format = "sha256"
|
||||
hash = "e6e8841f657869ba617ea422b761bea7bc9c3dcf9369ae6b710d35ce8ab8851c"
|
||||
hash = "5f32b233dbcd548417f2a5399b4e23bea6ed7a02f7ed5c3db67ed54c68b6165d"
|
||||
|
||||
[versions]
|
||||
fabric = "0.16.0"
|
||||
|
|
75
setup-steamvr-bindings.ps1
Normal file
75
setup-steamvr-bindings.ps1
Normal file
|
@ -0,0 +1,75 @@
|
|||
# automatically imports the bindings file into steamvr so you don't have to
|
||||
# go through the awful UI yourself.
|
||||
# This uses the undocumented API in the bindings UI itself (it's a webapp).
|
||||
# SteamVR needs to be running for this to work, but avoids needing to mess with steamvr's json
|
||||
# config directly.
|
||||
Write-Host "Checking if SteamVR is running..."
|
||||
# Check if SteamVR is running
|
||||
$steamVRProcess = Get-Process -Name "vrcompositor" -ErrorAction SilentlyContinue
|
||||
if (-not $steamVRProcess) {
|
||||
$wshell = New-Object -ComObject Wscript.Shell
|
||||
$wshell.Popup("SteamVR is not running. Please start SteamVR and try again.", 0, "SteamVR Not Running", 0x0 + 0x30)
|
||||
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Copying bindings file..."
|
||||
# Get the directory that the script is in
|
||||
$currentDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||
|
||||
# Source bindings file
|
||||
$sourceBindingsFile = Join-Path -Path $currentDir -ChildPath "org.jrbudda.vivecraft.steamvrinput_knuckles.json"
|
||||
|
||||
# Ensure the source file exists
|
||||
if (-not (Test-Path $sourceBindingsFile)) {
|
||||
Write-Error "Bindings file not found: $sourceBindingsFile"
|
||||
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Construct the path to the SteamVR input import directory
|
||||
$steamVRImportDir = Join-Path -Path ([Environment]::GetFolderPath("MyDocuments")) -ChildPath "steamvr\input\imports"
|
||||
|
||||
# Ensure the SteamVR input import directory exists
|
||||
if (-not (Test-Path $steamVRImportDir)) {
|
||||
New-Item -ItemType Directory -Path $steamVRImportDir -Force
|
||||
}
|
||||
|
||||
# Destination path for the bindings file
|
||||
$destBindingsFile = Join-Path -Path $steamVRImportDir -ChildPath "org.jrbudda.vivecraft.steamvrinput_knuckles.json"
|
||||
|
||||
# Copy the bindings file
|
||||
Copy-Item -Path $sourceBindingsFile -Destination $destBindingsFile -Force
|
||||
|
||||
Write-Host "Calling SteamVR API..."
|
||||
# Convert the destination file path to a file URI
|
||||
$fileUri = [System.Uri]::new($destBindingsFile).AbsoluteUri
|
||||
|
||||
# Construct the body with the correct file URI
|
||||
$body = @{
|
||||
app_key = "org.jrbudda.vivecraft.steamvrinput"
|
||||
controller_type = "knuckles"
|
||||
url = $fileUri
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$response = Invoke-WebRequest -UseBasicParsing -Uri "http://localhost:27062/input/selectconfig.action" `
|
||||
-Method POST `
|
||||
-Headers @{
|
||||
"Accept" = "application/json, text/plain, */*"
|
||||
"Origin" = "http://localhost:27062"
|
||||
"Referer" = "http://localhost:27062/dashboard/controllerbinding.html"
|
||||
} `
|
||||
-ContentType "application/json" `
|
||||
-Body $body
|
||||
|
||||
if ($response.StatusCode -eq 200) {
|
||||
$wshell = New-Object -ComObject Wscript.Shell
|
||||
$wshell.Popup("Sucessfully set recommended SteamVR bindings for Vivecraft.", 0, "Success", 0x0 + 0x40)
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to call the API: $_"
|
||||
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
|
||||
exit 1
|
||||
}
|
6
setup-steamvr-bindings.vbs
Normal file
6
setup-steamvr-bindings.vbs
Normal file
|
@ -0,0 +1,6 @@
|
|||
Set objShell = CreateObject("Wscript.Shell")
|
||||
strPath = Wscript.ScriptFullName
|
||||
Set objFSO = CreateObject("Scripting.FileSystemObject")
|
||||
strFolder = objFSO.GetParentFolderName(strPath)
|
||||
strPSScript = objFSO.BuildPath(strFolder, "setup-steamvr-bindings.ps1")
|
||||
objShell.Run "powershell.exe -ExecutionPolicy Bypass -NoProfile -File """ & strPSScript & """", 1, True
|
Loading…
Reference in a new issue