Skip to content

[BOUNTY] Port subtype switchable + Tallborgs#1083

Merged
fenndragon merged 48 commits intoHardLightSector:masterfrom
R3v3l4t1on:port-subtype-switchable
Apr 2, 2026
Merged

[BOUNTY] Port subtype switchable + Tallborgs#1083
fenndragon merged 48 commits intoHardLightSector:masterfrom
R3v3l4t1on:port-subtype-switchable

Conversation

@R3v3l4t1on
Copy link
Copy Markdown
Contributor

@R3v3l4t1on R3v3l4t1on commented Mar 30, 2026

About the PR

Ports the following PR's from Wizden/Cosmatic Drift/Starlight:
space-wizards/space-station-14#32586
cosmatic-drift-14/cosmatic-drift#706
cosmatic-drift-14/cosmatic-drift#790
cosmatic-drift-14/cosmatic-drift#853
ss14Starlight/space-station-14#1807
ss14Starlight/space-station-14#1961
ss14Starlight/space-station-14#2029

Also, adds Tallborgs from Bubberstation to half complete the following bounty: https://discord.com/channels/1380477227912925194/1485048522246979625

Why / Balance

Playing borg right now is ass. As I mentioned in my previous PR (which is getting closed cause uhhh I did not expect to need to port an entire fucking hand refactor), there's a very solid chance you're just not gonna be able to play the game for a while as borg if robotics isn't in the mood. These PR's solve that by letting cyborgs pick a job type at the start. Or rather. That's what the first one does.

The others are purely aesthetic, allowing borgs to pick a custom chassis within their chosen job type. This allows cyborgs to add extra character to themselves. This PR also paves the way for me to complete a bounty in a follow-up PR (because that one is a big chore and I just REALLY want this in right now...)

Technical details

Added in Upstream's borgswitchable system, which lets cyborgs pick a chassis roundstart. As a result, nuked all the extra robot parts. Wizden's PR explains the changes that had to be done to inventory template to accomodate this. Additionally adds in the subtype switchable system from Cosmatic Drift, with Starlight's additions.

How to test

Spawn a PlayerBorgBattery
Take control of it
Press the new 'select chassis' action
Pick a department
Pick a subtype
Confirm

Media

image image image

Breaking changes

Nuked all the extra cyborg parts (not the quadborgs... yet), meaning their names have changed.

Changelog

🆑 R3v3l4t1on, PJB3005, lunarcomets, Rinary1, CrazyPhantom779

  • add: Added Wizden's switchable borg types to both cyborgs (not quadborgs yet). No longer are borgs bound to the whims of organics to do the job they want!
  • add: Borg subtypes (Originally from Cosmatic Drift)! No more 1 million default engiborgs (though it is still the best chassis and anyone who disagrees can bite me). Quadborgs will get this in a later PR.
  • add: Bubberstation's tallborgs.
  • tweak: All cyborgs get tool modules. Because we love borgs.
  • remove: Removed a bunch of modules from being craftable as these are now available to cyborgs on roundstart.

PJB3005 and others added 9 commits March 30, 2026 19:56
* Borg type switching.

This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.

New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.

These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.

The modules that each borg type starts with:

* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning

Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.

Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.

The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.

Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.

The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.

There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.

* Fix sandbox failure due to collection expression.

* Module tweak

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.

* Fix inventory system breakage

* Fix migrations

Some things were missing

* Guidebook rewordings & review

* MinWidth on confirm selection button
* Borg type switching.

This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.

New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.

These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.

The modules that each borg type starts with:

* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning

Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.

Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.

The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.

Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.

The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.

There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.

* Fix sandbox failure due to collection expression.

* Module tweak

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.

* Fix inventory system breakage

* Fix migrations

Some things were missing

* Guidebook rewordings & review

* MinWidth on confirm selection button
Comment thread Resources/Prototypes/_StarLight/Entities/Mobs/Cyborgs/borg_subtypes.yml Outdated
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@R3v3l4t1on
Copy link
Copy Markdown
Contributor Author

Linter passes locally. So it should be good...

@R3v3l4t1on
Copy link
Copy Markdown
Contributor Author

Test fails are completely unrelated.

@R3v3l4t1on R3v3l4t1on changed the title Port subtype switchable [BOUNTY] Port subtype switchable + Tallborgs Apr 2, 2026
@fenndragon
Copy link
Copy Markdown
Collaborator

apologies. I didn't mean to skip over this, I wasn't aware it was intended to be ready, it does appear to be a linter fail though
one moment- oh it's nothing terrible, it's pretty straight forward

Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(27,19) No EntityPrototype found with id BorgChassisEngineerMekaSF
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(36,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Engineering/k4t-engi.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(43,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Engineering/k4t-alt-engi.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(64,19) No EntityPrototype found with id BorgChassisJanitorrMekaM
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(73,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Janitor/k4t-jani.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(80,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Janitor/k4t-alt-jani.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(108,19) No EntityPrototype found with id BorgChassisMedicalMekaSF
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(117,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Medical/k4t-med.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(124,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Medical/k4t-alt-med.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(152,19) No EntityPrototype found with id BorgChassisMiningMekaSF
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(161,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Mining/k4t-salv.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(168,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Mining/k4t-alt-salv.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(203,19) No EntityPrototype found with id BorgChassisServiceMekaSF
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(212,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Service/k4t-service.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(219,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Service/k4t-alt-service.rsi/meta.json)
Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(226,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Service/k4t-alt2-service.rsi/meta.json)
missing textures

@R3v3l4t1on
Copy link
Copy Markdown
Contributor Author

apologies. I didn't mean to skip over this, I wasn't aware it was intended to be ready, it does appear to be a linter fail though one moment- oh it's nothing terrible, it's pretty straight forward

Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(27,19) No EntityPrototype found with id BorgChassisEngineerMekaSF Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(36,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Engineering/k4t-engi.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(43,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Engineering/k4t-alt-engi.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(64,19) No EntityPrototype found with id BorgChassisJanitorrMekaM Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(73,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Janitor/k4t-jani.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(80,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Janitor/k4t-alt-jani.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(108,19) No EntityPrototype found with id BorgChassisMedicalMekaSF Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(117,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Medical/k4t-med.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(124,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Medical/k4t-alt-med.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(152,19) No EntityPrototype found with id BorgChassisMiningMekaSF Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(161,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Mining/k4t-salv.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(168,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Mining/k4t-alt-salv.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(203,19) No EntityPrototype found with id BorgChassisServiceMekaSF Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(212,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Service/k4t-service.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(219,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Service/k4t-alt-service.rsi/meta.json) Error: /Prototypes/_HL/Entities/Mobs/Silicon/Cyborgs/borg_subtypes.yml(226,15) File not found. (/Textures/_HL/Mobs/Silicon/Chassis/Service/k4t-alt2-service.rsi/meta.json) missing textures

Yeah that was a case of me mixing up some names and accidentally using - instead of _. Fix already pushed

@R3v3l4t1on
Copy link
Copy Markdown
Contributor Author

I was. A tiny bit blind. But this time. THIS TIME. I've got it. Everything is as it should be.

@fenndragon fenndragon merged commit 6fffeb9 into HardLightSector:master Apr 2, 2026
12 of 14 checks passed
@fenndragon
Copy link
Copy Markdown
Collaborator

you can relax now

xemeraldwingx-dot added a commit that referenced this pull request Apr 2, 2026
Triad-Sector pushed a commit to Triad-Sector/Triad that referenced this pull request Apr 3, 2026
* Borg type switching. (#32586)

* Borg type switching.

This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.

New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.

These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.

The modules that each borg type starts with:

* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning

Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.

Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.

The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.

Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.

The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.

There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.

* Fix sandbox failure due to collection expression.

* Module tweak

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.

* Fix inventory system breakage

* Fix migrations

Some things were missing

* Guidebook rewordings & review

* MinWidth on confirm selection button

* Borg type switching. (#32586)

* Borg type switching.

This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.

New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.

These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.

The modules that each borg type starts with:

* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning

Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.

Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.

The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.

Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.

The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.

There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.

* Fix sandbox failure due to collection expression.

* Module tweak

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.

* Fix inventory system breakage

* Fix migrations

Some things were missing

* Guidebook rewordings & review

* MinWidth on confirm selection button

* Guh messed up the ID...

* Merge pull request #1804 from Road-Train/borg-subtypes

porting AL borg subtypes

* commenting as of yet unused tags.

* Merge pull request HardLightSector#1383 from ss14Starlight/borg-rsi-fixes

Borg rsi fixes

* port subtypes

* Merge pull request #1961 from R3v3l4t1on/change-default-borg-chassis

Swapping default borg chassis

* Merge pull request #1961 from R3v3l4t1on/change-default-borg-chassis

Swapping default borg chassis

* Customization should be free!

* Remove pricing logic because I can't be arsed to fix it for 1 sprite and the system is kinda stupid anyway.

* BEGONE ENT

* Fixing several sprite paths and PROPERLY applying the restoration of the OG borg frames.

* Tallborg sprites (Not yet added to the subtypes)

* Delete the AL port due to possible licensing issues

* Add the CD version of the system instead. My sanity is at ease.

* Leftover changes.

* Another one! Guuuuh

* Gonna kill myself with all these fucking typos

* Why the fuck will this just not work...

* I am genuinely lost for why this is not working.

* Fairly sure I've fucked up SEVERAL rsi's but... I just want this shit to work man...

* WHYYYYY JUST WORK GOD DAMN IT

* SERVER LAUNCHES, SELECTING A BORG CRASHES IT. BUT BY GOD. IT'S PROGRESS.

* VICTORY!!!!!

* Duplication moment

Just 1 linter fail?  Surely not

* Fixing RSI's of several borgs so they work properly.

* Borgs use labels instead of tooltips since it is more convenient (need to adjust the location though). Also fixed medical standard not using an .rsi (and updated ID's to match the SL convention)

* refactor ChassisSpriteSelection.xaml.cs - Remove code duplication by changing CreateDefaultSubtypeButton into CreateSubtypeButton which can create both the default and other buttons. Also hopefully fixed the labels being slapped RIGHT on top of the borg sprites?

* Further refactoring: Pass only the subprototype instead of the entire action.

* UI works... several of the borgs are a tad broken though time to look into that.

* Removed unnecesary subtype mentions from the FTL file, hopefully fixed all the broken dummy protos.

* Yeah no I am not redoing all of the quadborgs as well. That's a future me problem.

* Fixing ID's.

* Fixed engi quadborg accepting arms, reinstated all the borg legs/torso/heads so quadborgs can still be built. To be removed when quadborgs become switchable.

* Reinstated the removed modules, but moved them to be craftable at base so quads don't get cucked.

* Whoops forgot to re-parent the heads.

* Tags moment.

* Split the Civilian folder into Jani/Service. Also, prototyped all the Tallborgs.

* FUCKASS TYPOS

* I swear I can't read BUT THIS TIME I'VE GOT IT.

* I swear I have eyes. I just. Can't seem to use them.

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: Matthew Herber <32679887+Happyrobot33@users.noreply.github.com>
Co-authored-by: Rinary <rinary.super@gmail.com>
@BodenPflanze
Copy link
Copy Markdown

BodenPflanze commented Apr 12, 2026

Hi, Sandwich Station maintainer here. I wanted to give you a heads up that we also had a PR for switchable borg types that also considers quad borgs "SandwichStation/SandwichStation-HL#77".
Unfortunately while i was porting the borg system over i didnt notice that you guys also did it at a similiar time.
Our Server Owner is atm trying to fix the merge conflicts with your system, when its done feel free to take a look at it and port over the changes if you like, might save some time. :)
( This PR also removes some features like ballz and sec quads, so check what you wanna keep or not)

@NotLivyathan
Copy link
Copy Markdown
Contributor

Due to future plans, I’m going to request that you don’t port the above and leave quads excluded from the switchable Borg types.

@BodenPflanze
Copy link
Copy Markdown

BodenPflanze commented Apr 12, 2026

Due to future plans, I’m going to request that you don’t port the above and leave quads excluded from the switchable Borg types.

What are the future plans if i may ask? Because currently i see no issue, after getting the minor merge conflicts fixed the system above would absolutely work with how i integrated the quads into the system in the Sandwich fork.

@NotLivyathan
Copy link
Copy Markdown
Contributor

What are the future plans if i may ask? Because currently i see no issue, after getting the minor merge conflicts fixed the system above would absolutely work with how i integrated the quads into the system in the Sandwich fork.

Per a bounty, I’ll be reworking quads to be a playable species, instead of a job role, and I don’t particularly want to have to deal with extra complications when I do so.

@Generic-Eagle
Copy link
Copy Markdown
Contributor

That’s cool and all, and bounty being made is fine, but I feel like a borg species just is more trouble than it’s worth…

Modules? Laws? Chassis change?
And of course, the general fact quads are unfortunately better than normal borgs already with only some work being done on that,

They’re not BORGS at that point, just fancy IPCs

@NotLivyathan
Copy link
Copy Markdown
Contributor

That’s cool and all, and bounty being made is fine, but I feel like a borg species just is more trouble than it’s worth…

Modules? Laws? Chassis change? And of course, the general fact quads are unfortunately better than normal borgs already with only some work being done on that,

They’re not BORGS at that point, just fancy IPCs

It’s complicated, and my plans are complex. I essentially plan to make modular Borgs. I also planned to do this to normal Borgs, but that ship has sailed now that the selectable system has made things far more complicated.

I basically plan to make quads customizable, and all their parts modular for repairs, using similar systems as we have now for playable species. It’s a lot more work than $100 is worth, but I also just think it’d be… cool.

They’d still be Borgs, just with more modularity when it comes to appearance.

@Generic-Eagle
Copy link
Copy Markdown
Contributor

So you can select any job as a borg with presumably standard laws

unless you make a system also to give laws and modules for jobs, that could be problematic

also this still leaves the issue of quads being better borgs, if they’re still going to be Borgs.

@NotLivyathan
Copy link
Copy Markdown
Contributor

NotLivyathan commented Apr 12, 2026

So you can select any job as a borg with presumably standard laws

unless you make a system also to give laws and modules for jobs, that could be problematic

also this still leaves the issue of quads being better borgs, if they’re still going to be Borgs.

It’s a subjective issue that quads are better than normal Borgs. It’s not really my problem. Insert X thing is better than insert Y thing but we still have both.

As for modules and laws, I’ll deal with all that. I’m very thorough.

@BodenPflanze
Copy link
Copy Markdown

BodenPflanze commented Apr 12, 2026

What are the future plans if i may ask? Because currently i see no issue, after getting the minor merge conflicts fixed the system above would absolutely work with how i integrated the quads into the system in the Sandwich fork.

Per a bounty, I’ll be reworking quads to be a playable species, instead of a job role, and I don’t particularly want to have to deal with extra complications when I do so.

Ah i see, gladly for you the changes from my PR are on a fork of Hardlight (Not actual HL). So i'm not complicating anything for you hence its only on our Sandwich station Server. We just happend to fork from Hardlight, i was just told that this PR exists and so i just wanted to give you a heads up in case you wanted to intigrate Quad borgs into that system so that you can save time :D
I wish you best of luck with your approach hence for our fork we will probably keep the quad as cyborgs. In my PR we made quads less OP since i removed hand and PDA slot, made them faster but in total they have 2 less extra module slots.

@NotLivyathan
Copy link
Copy Markdown
Contributor

Ah i see, gladly for you the changes from my PR are on a fork of Hardlight (Not actual HL). So i'm not complicating anything for you hence its only on our Sandwich station Server. We just happend to fork from Hardlight, i was just told that this PR exists and so i just wanted to give you a heads up in case you wanted to intigrate Quad borgs into that system so that you can save time :D I wish you best of luck with your approach hence for our fork we will probably keep the quad as cyborgs. In my PR we made quads less OP hence i removed hand and PDA slot, made them faster but in total they have 2 less extra module slots.

Oh, I know, I know. I’ll be the first one to admit a lot of the stuff I make wouldn’t really translate to other servers very well.

And Quads are currently in the state that they are because a large number of our playerbase wants to play Quadborg and also have the ability to own and operate a shuttle, which isn’t really conveniently possible without a hand and PDA.

B3CKDOOR added a commit to SandwichStation/SandwichStation-HL that referenced this pull request Apr 16, 2026
## About the PR
<!-- What did you change? -->
Merge from this PR
HardLightSector/HardLight#1083 (comment)
to the current system
+ Name of the unselected Cyborg entity has changed to "Unselected
Cyborg"
+ medborg starts with more modules

## Why / Balance
<!-- Discuss how this would affect game balance or explain why it was
changed. Link any relevant discussions or issues. -->
skins or so

## Technical details
<!-- Summary of code changes for easier review. -->
The Sprite Selection code has been modified to have it work out with the
different sprites

## How to test
<!-- Describe a procedure to test this feature, along with expected
output/behavior. -->

## Media
<!-- Attach media if the PR makes ingame changes (clothing, items,
features, etc).
Small fixes/refactors are exempt. Media may be used in SS14 progress
reports with credit. -->
<img width="903" height="531" alt="Screenshot 2026-04-13 164425"
src="https://github.com/user-attachments/assets/8b1e6a0a-9199-4302-b5d2-8dd194ae0eb0"
/>
<img width="893" height="535" alt="Screenshot 2026-04-13 164451"
src="https://github.com/user-attachments/assets/4c108346-53a2-4a5b-a628-433802d0d9ee"
/>

## Requirements
<!-- Confirm the following by placing an X in the brackets [X]: -->
- [X] I have read and am following the [Pull Request and Changelog
Guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
- [X] I have added media to this PR or it does not require an ingame
showcase.
- Either:
- [X] I have given credit the right people in the right
[attributions.yml
(example)](https://github.com/SandwichStation/SandwichStation-HL/blob/master/Resources/Audio/_ShibaStation/Lobby/attributions.yml)
file
- [X] I own the rights to the added content
<!-- You should understand that not following the above may get your PR
closed at maintainer’s discretion -->

## Breaking changes
<!-- List any breaking changes, including namespaces, public
class/method/field changes, prototype renames; and provide instructions
for fixing them. -->

**Changelog**
<!-- Add a Changelog entry to make players aware of new features or
changes that could affect gameplay.
Make sure to read the guidelines and take this Changelog template out of
the comment block in order for it to show up.
Changelog must have a 🆑 symbol, so the bot recognizes the changes and
adds them to the game's changelog. -->
<!---->
🆑 @BodenPflanze 
- add: Cyborg Skins selection
- fix: Cyborgs now can target limbs
- tweak: Medborg standart modules
- tweak: Unselected cyborg entity name
B3CKDOOR referenced this pull request in SandwichStation/SandwichStation-HL Apr 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants