{"id":13779255,"url":"https://github.com/PITR-DEV/ukbutt-mod","last_synced_at":"2025-05-11T12:33:06.076Z","repository":{"id":64400372,"uuid":"575240872","full_name":"PITR-DEV/ukbutt-mod","owner":"PITR-DEV","description":"An Official ULTRAKILL Mod that adds buttplug.io support.","archived":false,"fork":false,"pushed_at":"2024-04-21T00:20:44.000Z","size":3216,"stargazers_count":110,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-03T18:13:48.159Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PITR-DEV.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-07T04:03:43.000Z","updated_at":"2024-07-28T14:28:07.000Z","dependencies_parsed_at":"2023-12-21T04:29:37.011Z","dependency_job_id":"2a9326c0-7a43-4415-ab9c-d94c8d2694ea","html_url":"https://github.com/PITR-DEV/ukbutt-mod","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PITR-DEV%2Fukbutt-mod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PITR-DEV%2Fukbutt-mod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PITR-DEV%2Fukbutt-mod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PITR-DEV%2Fukbutt-mod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PITR-DEV","download_url":"https://codeload.github.com/PITR-DEV/ukbutt-mod/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225049036,"owners_count":17412915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:01:03.171Z","updated_at":"2024-11-17T14:31:18.105Z","avatar_url":"https://github.com/PITR-DEV.png","language":"C#","readme":"# UKButt\n\nShort link: [pitr.dev/ukbutt](https://pitr.dev/ukbutt)\n\nUKButt is an official [BepInEx](https://github.com/BepInEx/BepInEx) mod for [ULTRAKILL](http://devilmayquake.com) that adds [buttplug.io](https://buttplug.io/) support.\n\n## Resources\n\n- **[Download Latest Release](https://github.com/PITR-DEV/ukbutt-mod/releases/latest)**\n- **[Installation](#installation)**\n- **[Running](#running)**\n- **[Configuration](#configuration)**\n- **[Default Values](#default-values)**\n- **[Input Modes](#inputmodes)**\n- **[Passthrough Mode](#passthrough-mode)**\n- **[The buttplug.io standard](https://buttplug.io/)**\n- **[Buttplug.io/Intiface Discord Server (for support questions)](https://discord.buttplug.io)**\n\n## Video\n\n[![IMAGE ALT TEXT HERE](https://i3.ytimg.com/vi/6r13L1yvtYA/maxresdefault.jpg)](https://www.youtube.com/watch?v=6r13L1yvtYA)\n\n## Installation\n\n[Start by installing BepInEx 5.4.21](https://docs.bepinex.dev/articles/user_guide/installation/index.html)\n\nYou can also follow one of the [Community](https://youtu.be/meNiXcbPh_s) [Made](https://youtu.be/db3Cwlv-S-8?t=1624) Videos, since BepInEx is commonly used.\n\nNext, download the latest release from the [release page](https://github.com/PITR-DEV/ukbutt-mod/releases/latest) and extract the dll files into **ULTRAKILL/BepInEx/plugins**.\n\nLastly, you need to install [Intiface Central](https://intiface.com/central/) from buttplug.io.\n\nThe mod connects to Intiface on port 12345 by default, which is the default port for Intiface Central as well.\n\n## Running\n\nBefore starting the game itself, launch Intiface Central and start the Intiface Server with the big Start Server button.\n\n![Intiface Central](https://github.com/PITR-DEV/ukbutt-mod/blob/master/images/intiface_central_PDJp72icP1.png?raw=true)\n\nThat's where you can configure the server and the devices you want to use.\n\nYou might have to enable some devices in the settings, depending on what it is.\n\n### ULTRAKILL\n\nNext, you should be able to start the game and see Intiface Central connect to the game.\n\nThe mod should be functional now.\n\n## Configuration\n\nThe mod uses ULTRAKILL's preference system and saves its configuration into the Steam Cloud-less **ULTRAKILL/Preferences/LocalPrefs.json** file,\nwith a `ukbutt.` prefix.\n\nPreferably, you should change them using the in-game console available by pressing **F8**.\n\nYou can use the `ukbutt` command to list all available commands.\n\nor `ukbutt prefs` to get the list of all available preferences and how to change them.\n\n![Console](https://github.com/PITR-DEV/ukbutt-mod/blob/master/images/ULTRAKILL_xkNU4TP8PV.png?raw=true)\n\n## Default Values\n\n\u003c!-- table --\u003e\n\n| Key                         | Type     | Description                                                             | Default                |\n|-----------------------------|----------|-------------------------------------------------------------------------|------------------------|\n| `ukbutt.socketUri`          | `string` | The URI of the Intiface Server.                                         | `ws://localhost:12345` |\n| `ukbutt.strength`           | `float`  | The strength of the vibration.                                          | `0.8`                  |\n| `ukbutt.stickForSeconds`    | `float`  | The minimum duration of a vibration. (in seconds)                       | `2.0`                  |\n| `ukbutt.tapStickForSeconds` | `float`  | Same as above, but for events marked as subtle.                         | `0.2`                  |\n| `ukbutt.useUnscaledTime`    | `bool`   | Whether to use unscaled (real) time for the duration of the vibration.  | `false`                |\n| `ukbutt.enableMenuHaptics`  | `bool`   | Whether to enable haptics in the main menu.                             | `true`                 |\n| `ukbutt.inputMode`          | `int`    | The current [InputMode](#inputmodes).                                   | `1`                    |\n| `ukbutt.strokeWhileIdle`    | `bool`   | If in menu or rank == 0, stroke at lowest speed (rank mode only)        | `false`                |\n| `ukbutt.linearPosMin`       | `float`  | Lowest position for stroker movement (rank mode only)                   | `0.1`                  |\n| `ukbutt.linearPosMax`       | `float`  | Highest position for stroker movement (rank mode only)                  | `0.9`                  |\n| `ukbutt.linearTimeMin`      | `float`  | Stroker frequency timing in seconds (rank at ULTRAKILL, rank mode only) | `0.3`                  |\n| `ukbutt.linearTimeMax`      | `float`  | Stroker frequency timing in seconds (rank at None/Idle, rank mode only) | `1.5`                  |\n\n## InputModes\n\n\u003c!-- table --\u003e\n\n| Index | Description        |\n|-------|--------------------|\n| `0`   | Nothing            |\n| `1`   | Varied (_default_) |\n| `2`   | Continuous Rank    |\n| `3`   | Passthrough        |\n\nYou can change the input mode in-game by using `prefs set_local int ukbutt.inputMode \u003cindex\u003e`\n\nMode interaction with hardware:\n\n* Varied\n  * Vibration will be triggered on certain actions, including shooting, doors, sliding, menu haptics (if set), etc...\n  * No effect on strokers\n* Continuous Rank\n  * Vibration speed or stroker oscillation frequency is set by current style rank. The higher the\n    rank, the faster the vibration or stroking.\n* Passthrough\n  * Vibration will be the same, as what the game sends to standard controllers.\n\n## Passthrough Mode\n\nNote that if you're using the Passthrough mode, the preferences set through the mod won't be used.\n\nIn that mode, you can configure the values via the in-game `General \u003e Controller Rumble \u003e Customize` menu.\n\n![img_1.png](https://github.com/PITR-DEV/ukbutt-mod/blob/master/images/ULTRAKILL_kdJQzj2EeB.png)\n\n\n## Support\n\nIf you have issues installing or using Intiface Central, you can either [visit the Buttplug.io discord](https://discord.buttplug.io) or [DM the @buttplugio twitter account](https://twitter.com/buttplugio).\n\nIf you need a list of hardware supported by Intiface Central, [visit IOSTIndex.com, which has a full list of supported hardware](https://iostindex.com/?filter0Availability=Available,DIY\u0026filter1Connection=Digital\u0026filter2ButtplugSupport=4).\n","funding_links":[],"categories":["Game Mods"],"sub_categories":["Audio Sync"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPITR-DEV%2Fukbutt-mod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPITR-DEV%2Fukbutt-mod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPITR-DEV%2Fukbutt-mod/lists"}