The WAR Update – Total Conversion Mod

Combined Arms War

The WAR Update Release

1.3 is a massive overhaul and step forward for Broke Protocol, and it’s finally launching today! A total conversion war mod transforms BP from lighthearted RP sandbox to unrelenting battlefield. The mod takes full advantage of BP’s modding framework, utilizing its AI, Job, UI, and Entity modding capabilities. And the best part: the code is all on GitHub if admins want to alter it or use it as a starting point for their own mods.

War Game Mode and UI

War Capture Custom UI

A team-based Territory Control mode is the main feature. Battle it out with all the games weapons, vehicles, and armor to take over the city of Eden. Or create your own battlefield in the World Builder. You can play alongside a hundred advanced bots in Offline mode or take it online with others. The War Plugin was made using the new modding API and I’ll keep expanding the feature set for each 1.3x release.

Mass AI Squad Tactics

Squad Tactics

AI has seen a total overhaul in combat behavior. They use tactical movement, form squads, and utilize vehicles and mounted guns in a completely new way. They’ll even form up on you sometimes or you can use the Follow command on them manually. Order them around with pointing and alert commands and battle it out in 64-player bot matches in total mayhem.

New Modding Framework and Events

Login Flow

The old Plugin framework is still supported, but the new system should feel a lot better yet familiar. All API docs are updated with the latest changes and the Github repo contains the source for the new War mode and everything else. The game is now split into 3 parts, GameSource for core functionality, LifeSource for RP related stuff like Crimes and Jobs. Finally, WarSource for the PVP combat mode. This should make total conversion mods more logical and straightforward. You can even do stuff like Custom UI’s and modded login flow like in the War Plugin.

Plugin Management

Plugin Manager

With all the new modding framework changes, I wanted it to be easier to manage your plugins too. When you start Offline mode, you can enable or disable each and every Plugin you have installed. The Plugin Manager will list all of your Plugins from the ones locally installed, and even your Steam Workshop subscriptions. I’ll expand this further by allowing more details to be shown for each Plugin, but this should make modding and diagnosing Plugin issues much more flexible and easier already.

Other Changes

Billboard Text

There’s quite literally too much to go over every single detail, but you’ll see new additions and fixes everywhere. You can now alter text on Billboards, you can test and select microphone input in Settings, you can see what Language other users are set to. And a lot more. I’ll be working on the next update but hope to see what kind of PVP War modes servers will run using the new mod and framework available.

Here’s the full v1.3 changelog:

v1.3 WAR Update Changelog

Game Changes:

  • New Unity UI Toolkit support for UI/HUD rendering and input handling
  • New WarSource example PVP plugin with custom skins/loadouts and login flow
  • Many new events added for modding support
  • Added Toggle Cursor binding in Controls (only necessary for Text Panels now)
  • Garage doors can now be used outside of Private Apartments for Parking Garages, etc.
  • Garage doors now check for key in inventory when parking like normal doors
  • Fixed TriggerBox/Sphere color initialization
  • Added gizmo icon to Triggers so they’re always visible even with clear alpha
  • Fixed some World Builder cleanup leaks on exit
  • Added World Builder warning when other door reference is set incorrectly
  • Fixed NavMesh volume check to include all interiors
  • Adjusted player physics for improved mantling
  • All apartments are loaded/precached for AI navigation / performance
  • AI navigation improvements and new API methods related to pathfinding
  • AI can now navigate through doors
  • More aggressive AI gang war behavior
  • Fixed many modded (custom scaled) vehicles unable to park in garages
  • Multiple progress bars can be used simultaneously (with IDs)
  • Territory capturing and logic moved to GameSource
  • Login/Register Flow completely moved to GameSource for modding
  • New Territory Prefab with text support (old maps should be updated)
  • Jail, RestrictedArea, ThrowableTarget, Repair, Rearm prefabs now use normal Triggers
  • Fixed damage inflicted at hostage when firing at mounted player
  • Removed Missions for now
  • Fixed voice volume not being applied correctly
  • Removed ShScalable class (Every object can now be scaled in World Builder and API)
  • Fixed MilkCarton and Bloodbag textures
  • Fixed SmashedCar mesh errors
  • Fixed potential reload clip count error (Thanks @2140)
  • Fixed Targeting reticle drawn in opposite direction too
  • Translucent materials now rendered even on mobile shaders
  • Fixed some Trigger/collider manipulation exploits/bugs
  • Environment color commands now accept byte values or hex color codes
  • Multiple TextPanel stacking supported with IDs, better cursor support, and color parsing
  • Multiple Menu stacking supported in a similar way with IDs
  • Human/Mob meshes updated for better Blender compatibility
  • Random spawning logic moved to GameSource
  • Tracer audio effect added and delay sprite rendering
  • Default groups.json modified to give Offline players (Host) all commands
  • AI States moved to GameSource for full modding support (additive or override)
  • All Crime related data, handling, and logic moved to LifeSource for modding
  • Added Microphone input selection and Test button to Settings
  • Moved Language setting to Main Menu with flags replacing Text
  • Language setting shared on playerlist to aid communication/RP
  • AI will select best Attachments in SetBestWeapon/Equipable
  • World Builder Focusing will update interior to match focused object
  • World Builder File Dialog Save/Load button changes appearance based on file path
  • Include MSVC Runtime with game (fix voice chat issues)
  • Territories can be named on the map now
  • Rebalanced all audio levels
  • AI will block and zoom with weapons again
  • More robust entity initialization for better modability
  • Networking and memory optimizations
  • Player/Entity spawning initialization cleanup
  • Traffic Lights now fully moddable with a new Class Script
  • New Billboard/Text class and objects that support runtime text editing
  • AI new behaviors, improvements, and fixes
  • Added Plugin manager to Offline Mode
  • World/Map markers only mark the overworld locations
  • Fixed lights/collider on APC
  • Fixed potential inventory desync
  • Adjusted color space, lighting, and shaders
  • Updated DB, Networking, and Steamworks libraries

API Changes:

  • All core game logic moved to GameSource
  • All crime, jail, and police handling moved to LifeSource
  • Dropping items sets the ‘spawner’ field on entities (for modding)
  • All object types have a Data field now (use in World Builder and in API)
  • Data string field restored after entity respawns (Thanks @Olivrrr)
  • Player Maintenance loop moved to LifeSource
  • New CustomPacket event for pre-login UI handling
  • API: [Target] attribute deprecated, Override new Events classes for custom handling
  • All Managers and World classes are now Singletons with Instance accessors
  • Manager reference no longer passed to Manager events (use Singleton classes)
  • Null strings are now handled by the network serializer as empty strings
  • BPAPI changed to static class
  • GroupManager -> GroupHandler for consistency with other static classes
  • ChatHandler -> InterfaceHandler
  • BrokeProtocol.API.Types namespace removed
  • Added SetMaxSpeed() to ShMovable class (for modding)
  • Added ExecutionMode.Additive (similar to Override except overridden events are still executed)
  • Removed ExecutionMode.Final (easy to abuse/misuse)
  • Added customData field to ConnectionData for pre-join modding
  • Removed GroupIndex.Gangster (just use ‘Criminal’ now)
  • API: Must manually call SvDestroyMenu(id) (except when showing a new menu with the same ID)
  • All events can now return a boolean to stop execution further execution on that same event chain
  • Connection related data like deviceID and passwordHash moved to svPlayer.connectData
  • Stop all entity coroutines immediately on destruction (prevent some race conditions)

See you!


Official Discord