Official 1.0 Modding Update Release
After months of work, testing, and feedback since v0.97, the Modding Update v1.0 is finally here. This update presents the biggest evolution of Broke Protocol since its launch. Introducing full modability, server/client scripting, and a slew of improvements and fixes. v1.0 allows servers to edit nearly all gameplay elements, add custom content, and create a whole new experience altogether.
Modding Support
One of the biggest features of v1.0 is complete modding support. World objects, items, vehicles, skins and everything in between can be completely edited in this version. Not only in visuals, but all properties, physics, colliders, sound effects and more can be modified.
If servers want to just edit existing objects, that’s certainly possible too. Edit vehicle top speeds, weapon damage outputs, or edit building textures to transform a map into a custom style or theme. This is done through the modding guide posted here. Custom content will be streamed and cached on connecting clients automatically.
Server and Client Scripting
Broke Protocol is one of fewer and fewer games that encourage 3rd-party servers to foster communities rather than faceless matchmaking. And serverside scripting will only add to the ways in which server communities can create something completely unique and carve a niche to grow their audience.
The server scripting model is supported by external plugins. You can see the basic GameSource.dll supported at the Official GitHub Repo. Edit basic game hooks here and also see examples of how custom EventHandler callbacks can be created. Just build your own plugins and place into the Game Plugins/ directory for automatic loading. A full API reference will be maintained here with documentation at our Official GitHub Pages site.
Updates Since Last Devlog
Server and Player Info Screens
You can now view what mods, maps, and other custom stuff servers are running from the Server browser window. Just click on the server and select ‘View Server Info.’ And likewise for Player Info from the Players (Tab) Menu. There you’ll find SteamID, player ID, as well as a link to their steam profile to either add friends from in-game and prevent identity spoofing.
Database Saves and Apartments
Some back-end database support now allows for saving of multiple apartments instead of just one. This means players can take over all the apartments on a map without having to sell their previous flat. This was done in preparation for garage support which will allow players to save their vehicles post-1.0. Also if a server changes map, all of your apartment items and purchase values will be refunded back into your bank account reliably and automatically.
The database is also accessible from the server API. A field for CustomData is present to track and save anything related to custom modding that won’t fit anywhere else.
Exploit Fixes
Tons of exploits are fixed in v1.0 which means easy money is harder to come by. Using SteamIDs now prevents multi-boxing. Exploits related to AI suicides or second-hand deaths are now fixed to prevent free item farming – deaths without any attacker now won’t drop items at all.
Also added a few more server-side checks and AI insta-jailing to prevent combat logging. These changes should mitigate many abuses and establish more sustainable server economies. If you do discover any more exploits, please message us in private on the Official Discord.
Steam Web API
We’ve switched to using the Steam Web API to validate player logins since this doesn’t require any Steam client to be present on the server and it works across Linux and Windows platforms.
This does however require you to request a web api key from Steam here. Note you don’t need a custom domain, you can just input your public server IP address which can be found using https://api.ipify.org/. Then you enter your key into your server settings.json under ‘webkey.’
Affiliate Program
Finally, we do have an affiliate program open now. This program allows anyone to get a 30% commission for any sales from brokeprotocol.com. When you sign up, you’ll be given a custom referral link that offers a 10% discount on the game.
You can post your referral link on social media to your followers and anyone who follows through with a purchase on the website (a cookie will track them for 30 days) will have the purchase tracked and recorded on their dashboard. Payout each month with $20 minimum in account.
Changelog
That’s it! We worked really hard for about half a year on this modding update and can’t wait to see what custom content comes out of it. Post anything you’d like to share on the Steam Workshop and our Discord bot will stream what’s new. From there, we’ll highlight outstanding mods over the coming weeks. Here’s the final v1.0 changelog:
- Added support for custom server Assets / Items / Objects and syncing with clients
- Added custom CEF rendering using server-side HTML & JavaScript
- Added CEF <-> C# bridge using .getAsync() and ExecuteJs
- Added EventHandler for custom scripting and triggers on the server
- Moved many game events to external GameSource.dll for modding
- Added example Cardiac Sensor asset to Military Base
- Added example trigger around Military Base with Restricted Area warning
- Workshop supports auto-loading downloaded Assetbundles, Maps, and Resources (scripts)
- AI Police no longer chase / arrest players who lost wanted levels
- World Builder optimizations and support for custom assets
- Improvements to item rendering in Inventories
- New terrain dynamics – Different sounds and physics when driving/walking
- New tire effects on different terrain
- Map/minimap shows icon / location names directly
- Added Chat History (Default Key: U)
- Added Direct Connection button in Server menu to specify IP/Port
- Servers now have custom port setting
- Smoother first person animations and sprint FOV change
- Fixed network syncing shops with large inventories
- Update to latest Unity Engine 2019.2.15f
- New masterserver – .NET Core 3.0
- LiteDB for player storage
- Player accounts / saves / bans tied to SteamIDs to prevent VPN exploitation
- New serializer – Inventory / items / apartment entities will get serialized correctly so no more big byte arrays
- Permission system – see groups.json for more info. Allows for a per group permission system based on nodes
- Separate volume sliders for music and voice chat
- Official serverlist data is now available in JSON format
- Changed some byte/int classes to enums
- Fixed transparency and clothing rendering on lower shader levels
- Change to deferred rendering mode for performance and compatibility
- License requests to Mayor and issues show clearer messages
- Better night visibility for map/race markers
- Better editor environment colors and water transparency
- Added View Server Info Panel
- Added View Player Info Panel
- Boosted default game lighting
- Deaths without an attacker no longer drop inventories (exploit fix)
- Support multiple jails per map
- Fixed combat logging before AI sends player to jail
- Bugfixes
- Code Cleanup
- Misc changes