{"id":43846130,"url":"https://github.com/NanashiTheNameless/VintageShock","last_synced_at":"2026-02-17T20:00:36.809Z","repository":{"id":328303492,"uuid":"1113430896","full_name":"NanashiTheNameless/VintageShock","owner":"NanashiTheNameless","description":"VintageShock - Shocking Haptic Feedback for Vintage Story via the OpenShock API","archived":false,"fork":false,"pushed_at":"2026-01-27T16:27:19.000Z","size":621,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-27T18:36:20.385Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mods.vintagestory.at/vintageshock","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NanashiTheNameless.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.YML","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["NanashiTheNameless"],"buy_me_a_coffee":"NamelessNanashi","custom":["https://www.paypal.me/NamelessNanashi"]}},"created_at":"2025-12-10T01:05:08.000Z","updated_at":"2026-01-27T16:36:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/NanashiTheNameless/VintageShock","commit_stats":null,"previous_names":["nanashithenameless/vintageshock"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/NanashiTheNameless/VintageShock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NanashiTheNameless%2FVintageShock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NanashiTheNameless%2FVintageShock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NanashiTheNameless%2FVintageShock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NanashiTheNameless%2FVintageShock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NanashiTheNameless","download_url":"https://codeload.github.com/NanashiTheNameless/VintageShock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NanashiTheNameless%2FVintageShock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29556404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T18:16:07.221Z","status":"ssl_error","status_checked_at":"2026-02-17T18:16:04.782Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-02-06T06:00:21.105Z","updated_at":"2026-02-17T20:00:36.801Z","avatar_url":"https://github.com/NanashiTheNameless.png","language":"C#","funding_links":["https://github.com/sponsors/NanashiTheNameless","https://buymeacoffee.com/NamelessNanashi","https://www.paypal.me/NamelessNanashi"],"categories":["Game Integrations"],"sub_categories":["VintageStory"],"readme":"# VintageShock\n\nShocking Haptic Feedback for Vintage Story via the OpenShock API based on in-game events.\n\n## !! **NON-FREE/PROPRIETARY License Warning**\n\nThis software is NOT OSI Compliant!\\\nSee the [LICENSE.md](\u003cLICENSE.md\u003e) file for more complete details.\n\n---\n\n## NNCL v1.3 License TL;DR\n\n**This is a simplified summary and does not replace the full license terms.**\n\n### What You Can Do\n\n- Use, study, modify, and share the work for free\n- Create and distribute modified versions\n- Deploy it for personal and non-commercial purposes\n\n### What You Must Do\n\n- Provide proper attribution to the licensor (me)\n- Provide source code if you distribute compiled versions\n- Include the full license with all distributions\n- Maintain the ethical policy in your adaptations\n\n### What You Cannot Do\n\n- Use it for racism, xenophobia, queerphobia, transphobia, homophobia, enbyphobia, misogyny, misandry, and/or sexism.\n- Use it for commercial purposes (sales, subscriptions, SaaS, ads, etc.)\n- Train commercial AI or ML models with it\n- Use it to enable discrimination or violence\n- Alter or remove the license terms\n- Use it as/for law enforcement, military, or immigration enforcement\n\n### Key Points\n\n- All modified versions must use the same license\n- The licensor can revoke your rights with 7 days notice\n- No warranties or guarantees are provided\n- Large-scale deployments (100+ users) require public compliance documentation\n- Filing patent lawsuits related to the work or its content automatically terminates your license\n\n### Bottom Line\n\nFree for ethical, non-commercial use, with the requirement to share your code and keep the license intact.\n\n---\n\n## Features\n\n- **OpenShock API Integration**: Trigger shocks through the OpenShock device API with full authentication\n- **ConfigLib Integration**: Easy configuration through ConfigLib's in-game settings menu\n- **Configurable Shock Triggers**:\n  - Player death events\n  - Player taking damage\n  - Player damaging other players\n- **Client Commands**: Test and manage your shock settings with `.vshock` commands\n\n## Requirements\n\n- [ConfigLib](\u003chttps://mods.vintagestory.at/configlib\u003e) - For configuration management\n- [ImGui](\u003chttps://mods.vintagestory.at/imgui\u003e) - Required by ConfigLib\n\n## Configuration\n\nConfiguration is managed through ConfigLib. Access settings via:\n\n1. In-game: ConfigLib settings menu\n2. Manual edit: `VintagestoryData/ModConfig/vintageshock.yaml`\n\n### Configuration Options\n\n- **Enabled**: Enable or disable the entire mod\n- **API URL**: The full URL to your shock API endpoint (default: `https://api.openshock.app/`)\n- **API Token**: Bearer token for authentication with the OpenShock API (get from \u003chttps://app.openshock.app/\u003e)\n- **Device ID**: The ID of the device you want to trigger\n- **Intensity**: Shock intensity (0-100)\n- **Duration**: Shock duration in milliseconds (300-65535)\n- **OnPlayerDeath**: Trigger shock when you die\n- **OnPlayerDamage**: Trigger shock when you take damage\n- **OnPlayerHurtOther**: Trigger shock when you hurt others\n\n## Client Commands\n\n- `.vshock reload` - Reload configuration from ConfigLib\n- `.vshock test` - Send a test shock to verify API connection\n- `.vshock status` - Display current configuration\n- `.vshock set` - Shows how to edit settings\n\n## Building\n\nRequirements:\n\n- .NET SDK 8.0+\n- Vintage Story 1.21.6 or newer\n\nBuild command:\n\n```bash\ndotnet build VintageShock.sln -c Release /p:GameDir=\"/path/to/VintageStory\"\n```\n\nThe mod will be packaged as `VintageShock-\u003cversion\u003e.zip` in the workspace root.\n\n## Installation\n\n1. Download or build `VintageShock.zip`\n2. Copy the zip file to your Vintage Story `Mods` folder\n3. Install [ConfigLib](\u003chttps://mods.vintagestory.at/configlib\u003e) and [ImGui](\u003chttps://mods.vintagestory.at/imgui\u003e) if not already installed\n4. Start the game and configure via ConfigLib settings menu or edit `ModConfig/vintageshock.yaml`\n\n## Usage/Setup\n\n1. Get your OpenShock API token from \u003chttps://app.openshock.app/\u003e\n2. Get the device ID for your OpenShock device\n3. Configure settings via ConfigLib in-game menu or edit the YAML file directly (copypaste doesnt appear to work in ConfigLib so directly editing the .yaml may be preferrable)\n4. Use `.vshock reload` to reload the settings from the config file\n5. Use `.vshock test` to verify your setup works\n6. Play the game - shocks will trigger based on your configured events\n\n## Notes\n\n- Shocks are triggered asynchronously to prevent game lag\n- Configuration is managed through ConfigLib\n- ConfigLib's ImGui-based GUI doesn't support clipboard paste - edit the YAML file directly for easier token/device ID entry\n\n## Support\n\nFor issues or suggestions, visit the GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNanashiTheNameless%2FVintageShock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNanashiTheNameless%2FVintageShock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNanashiTheNameless%2FVintageShock/lists"}