API additions needed for Shield Mods.
Keen, I am the author of the DefenseShields mod and having spent the better part of a year working on this mod I have learned a lot about the limitations of the API for making a mod like mine. My original request, which received 521 votes (in the top 5) on the old feedback site can be found here: https://feedback.keenswh.com/idea/expose-myprojectiles-bullets-via-modapi-5a7a771402499
I estimate that over 25% of my mod's code is dedicated to working around 3 missing API features (MyMissiles, MyProjectiles and GridResourceDistributor/GridSystems) and many of these workarounds lead to various unexpected behaviors, many of which I simply cannot fully fix without additional access.
Not having access to MyProjectiles is particularly problematic as a whole cascade of issues occur due to bullets hitting the grid vs the shield. This causes visual issues of bullet decals on hull, delayed and missing shield impact indicators, grid shaking and improper sounds on hits, shield taking no damage when projectiles pass through shield but do not hit grid. Players who take damage also taking large physics forces that cannot fully be prevented, entities inside shields trigger a cascade of events that must be dealt with, functional block particle effects kicking off AFTER damage handler and having to be suppressed after they are already visible, plus many many other issues.
A large number of your users and modders would benefit from having these 3 additions added to the API. I hope you can spare the time to add them in the near future.
Thank you for your consideration!
Shane.
Functionality of all shield mods would be greatly improved with these additions, in addition to performance improvements.
You got a like from me.
Functionality of all shield mods would be greatly improved with these additions, in addition to performance improvements.
You got a like from me.
I started to write code for exposing grid systems, but the further I progressed, the less likely it appeared it was going to be accepted. I also ran into a lot of issues.
So I stopped.
I started to write code for exposing grid systems, but the further I progressed, the less likely it appeared it was going to be accepted. I also ran into a lot of issues.
So I stopped.
Love the mod, can't play without it anymore. Hope this gets approved.
Love the mod, can't play without it anymore. Hope this gets approved.
this would help to add in all of my "issues" with the mod, knowing it was never yalls fault, i hope it gets added so that this can be the best shield mod out there and one of the best ever. hope keen sees it. good luck in your adventures
this would help to add in all of my "issues" with the mod, knowing it was never yalls fault, i hope it gets added so that this can be the best shield mod out there and one of the best ever. hope keen sees it. good luck in your adventures
I support this wholly, this mod is one of genre definers of the SE modding world, doing things in SE I never thought could work without massive effort and janky results.
I support this wholly, this mod is one of genre definers of the SE modding world, doing things in SE I never thought could work without massive effort and janky results.
If such an API were to be implemented it would make creating shield mods way easier so we might see more of them. So please implement these APIs
If such an API were to be implemented it would make creating shield mods way easier so we might see more of them. So please implement these APIs
Let's do this people this needs to be done asap
Let's do this people this needs to be done asap
I hope the SE devs take notice and at least provide a response to this. While I understand why a mod like this would never be vanilla, I love using it despite the issues. If those issues were fixed, modders could do some awesome things and users like myself would have a few less things to get annoyed with. I wish you luck and hope this mod stays alive and active.
I hope the SE devs take notice and at least provide a response to this. While I understand why a mod like this would never be vanilla, I love using it despite the issues. If those issues were fixed, modders could do some awesome things and users like myself would have a few less things to get annoyed with. I wish you luck and hope this mod stays alive and active.
Yes Please! If it helps with this and other mods - please consider doing this for the mod authors!
Yes Please! If it helps with this and other mods - please consider doing this for the mod authors!
This. We. Need.
Common, Dont force modders to work around API's Keen.
This. We. Need.
Common, Dont force modders to work around API's Keen.
Awesome mod! Hope those changes gets approved and coded by Keen soon.
Awesome mod! Hope those changes gets approved and coded by Keen soon.
If it makes mods better and more stable, I'm all for it!
If it makes mods better and more stable, I'm all for it!
#MakeShieldsGreat
#MakeShieldsGreat
I hope that there would be a vanilla shield mod in space engineers one day. Preferably the one you made!Lore-wise I think in a game that has FTL (Jump Drive) we should have shields as well. Shields should be more easier to invent compared to Jump Drives lol.
I hope that there would be a vanilla shield mod in space engineers one day. Preferably the one you made!Lore-wise I think in a game that has FTL (Jump Drive) we should have shields as well. Shields should be more easier to invent compared to Jump Drives lol.
I do not play without shields, it saves a lot of blocks AKA pcu used for defense and avoid the excessive number of debris. So better shields = less physics calculations = less interference of CLANG.
I do not play without shields, it saves a lot of blocks AKA pcu used for defense and avoid the excessive number of debris. So better shields = less physics calculations = less interference of CLANG.
Anything that helps make mods is a good thing.
Anything that helps make mods is a good thing.
I wish Modding API suggestions had it's own section as I feel this is too easily missed with normal ideas.
I wish Modding API suggestions had it's own section as I feel this is too easily missed with normal ideas.
Do it Keen SWH.
Do it Keen SWH.
Yes Keen Make the shields great, it is your destiny.
Yes Keen Make the shields great, it is your destiny.
Hi guys, thank you for the feedback, we are already working on that.
Hi guys, thank you for the feedback, we are already working on that.
Glad to see a Keen response! Hope yall Deliver without taking 69 steps backwards!
Glad to see a Keen response! Hope yall Deliver without taking 69 steps backwards!
>-------- Оригинално писмо --------
>От: support@support.keenswh.com
>Относно: New Comment in "API additions needed for Shield Mods."
>До: Станислав Славов <stani83@abv.bg>
>Изпратено на: 02.11.2018 19:28
New Comment in "API additions needed for Shield Mods."
>-------- Оригинално писмо --------
>От: support@support.keenswh.com
>Относно: New Comment in "API additions needed for Shield Mods."
>До: Станислав Славов <stani83@abv.bg>
>Изпратено на: 02.11.2018 19:28
New Comment in "API additions needed for Shield Mods."
Pushing this up with the simple comment: Is there "already" someone working on this?
Pushing this up with the simple comment: Is there "already" someone working on this?
It seems to have been forgotten. Which is sad. Come on Keen, be better than FDerp (Frontier Developments).
It seems to have been forgotten. Which is sad. Come on Keen, be better than FDerp (Frontier Developments).
Hi guys,
sorry to inform you about the stopped work on these API additions. We cooperated with one external coder who is not working on the issue anymore. We hope we can get to this later, but for now, it is not finished.
Hi guys,
sorry to inform you about the stopped work on these API additions. We cooperated with one external coder who is not working on the issue anymore. We hope we can get to this later, but for now, it is not finished.
What's the point of this forum if this is the #1 most voted post, and its two years old. I dont think this is something particularly difficult for Keen is it? Whats stopping them from implementing this? Defense shields is an awesome mod that me and all of my friends use in all of our worlds. I'd much rather Keen put in a small amount of work so that the author of defense shields can work on things besides bug fixing since keen hasnt given him sufficient access. I love and support Keen, but I really dont understand why they havent implemented this yet.
What's the point of this forum if this is the #1 most voted post, and its two years old. I dont think this is something particularly difficult for Keen is it? Whats stopping them from implementing this? Defense shields is an awesome mod that me and all of my friends use in all of our worlds. I'd much rather Keen put in a small amount of work so that the author of defense shields can work on things besides bug fixing since keen hasnt given him sufficient access. I love and support Keen, but I really dont understand why they havent implemented this yet.
Keen,
I am updating this post with more details on the API additions I requested.
-=MyCubeGridSystems ModAPI Needs=-
Expose the following MyCubeGridSystems objects/systems to modapi:
public Action<long, bool, string> GridPowerStateChanged;
public MyGridResourceDistributorSystem ResourceDistributor { get; private set; }
private Action<MyBlockGroup> m_terminalSystem_GroupAdded;
private Action<MyBlockGroup> m_terminalSystem_GroupRemoved;
Events for OnAddedToGroup and OnRemovedFromGroup
ConveyorSystem Push and Pull Access
-=MyProjectile / MyMissile=-
[OnAdd Event]:
An option to register an OnAdd event for both MyProjectiles and MyMissiles. This event would ideally return the following.
READ ACCESS:
Position, Direction, Velocity, damage/radius values, Owner, Parent entity.
WRITE ACCESS:
Trigger Destroy (Explodes/triggers hit visual/sounds) and Trigger Remove (no detonation, sound/visuals just removes).
[OnBeforeRemove Event]:
An option to register a OnBeforeRemove event for both MyProjectiles and MyMissiles. This event would ideally return the following.
READ ACCESS:
The same values as OnAdd, with the addition of returning the entity hit, if it did hit an entity.
WRITE ACCESS:
Let a mod prevent damage but allow the audio visual effect
Let the mod remove the projectile/missile without any audio visual effects/decals triggering or damage occurring.
[Register a shape to collect Projectile/Missile states in that shape]
Create a ModAPI interface that allows mods to register a shape (ellipsoid, sphere and obb). This shape would create a physicalless entity but with havok phantom e.g. MYIApiGateway.Physics.AddOrUpdatePhantom(Shape, Position, phantomId). The existing MyMissiles and MyProjectiles loop would then check for this Phantom in the same way you already check for safezones. If the projectile/missile detects a mod phantom it would fire the same/similar OnAdd event listed above every frame/tick it is touching or inside the phantom entity. Due to mod profiler overhead it may be better to fire 1 event per tick/frame per mod Phantom, returning a list of projectile events per phantom per frame.
Keen,
I am updating this post with more details on the API additions I requested.
-=MyCubeGridSystems ModAPI Needs=-
Expose the following MyCubeGridSystems objects/systems to modapi:
public Action<long, bool, string> GridPowerStateChanged;
public MyGridResourceDistributorSystem ResourceDistributor { get; private set; }
private Action<MyBlockGroup> m_terminalSystem_GroupAdded;
private Action<MyBlockGroup> m_terminalSystem_GroupRemoved;
Events for OnAddedToGroup and OnRemovedFromGroup
ConveyorSystem Push and Pull Access
-=MyProjectile / MyMissile=-
[OnAdd Event]:
An option to register an OnAdd event for both MyProjectiles and MyMissiles. This event would ideally return the following.
READ ACCESS:
Position, Direction, Velocity, damage/radius values, Owner, Parent entity.
WRITE ACCESS:
Trigger Destroy (Explodes/triggers hit visual/sounds) and Trigger Remove (no detonation, sound/visuals just removes).
[OnBeforeRemove Event]:
An option to register a OnBeforeRemove event for both MyProjectiles and MyMissiles. This event would ideally return the following.
READ ACCESS:
The same values as OnAdd, with the addition of returning the entity hit, if it did hit an entity.
WRITE ACCESS:
Let a mod prevent damage but allow the audio visual effect
Let the mod remove the projectile/missile without any audio visual effects/decals triggering or damage occurring.
[Register a shape to collect Projectile/Missile states in that shape]
Create a ModAPI interface that allows mods to register a shape (ellipsoid, sphere and obb). This shape would create a physicalless entity but with havok phantom e.g. MYIApiGateway.Physics.AddOrUpdatePhantom(Shape, Position, phantomId). The existing MyMissiles and MyProjectiles loop would then check for this Phantom in the same way you already check for safezones. If the projectile/missile detects a mod phantom it would fire the same/similar OnAdd event listed above every frame/tick it is touching or inside the phantom entity. Due to mod profiler overhead it may be better to fire 1 event per tick/frame per mod Phantom, returning a list of projectile events per phantom per frame.
I second the guy who mentioned updating the SE Source Code on GitHub, that'd definitely be a step in the right direction 👍Keen, if you're not going to implement the necessary additions, just let the modders fix it like they always do. #OpenSourceSE
I second the guy who mentioned updating the SE Source Code on GitHub, that'd definitely be a step in the right direction 👍Keen, if you're not going to implement the necessary additions, just let the modders fix it like they always do. #OpenSourceSE
I think Keen should just go ahead and add an upgradeable small and large grid shield emitter block to the base game already. Shields don't have to be that overpowered in my opinion, they are super handy for soaking up damage from relatively low velocity fender benders with asteroids and debris, and i like that shields increase the time to kill on a ship, prolonging battles some to give a small crew more time to enjoy the multiplayer experience of running around inside the ship repairing systems, adjusting settings on the fly, and restocking things.
I think Keen should just go ahead and add an upgradeable small and large grid shield emitter block to the base game already. Shields don't have to be that overpowered in my opinion, they are super handy for soaking up damage from relatively low velocity fender benders with asteroids and debris, and i like that shields increase the time to kill on a ship, prolonging battles some to give a small crew more time to enjoy the multiplayer experience of running around inside the ship repairing systems, adjusting settings on the fly, and restocking things.
Another use for this could be for the new water mod to make projectiles less effective underwater, so its not necessarily limited to shield mods.
Another use for this could be for the new water mod to make projectiles less effective underwater, so its not necessarily limited to shield mods.
one of the problems with a shield mod is that, you decided to mod in the first place. this is keen's game, and they have given us all of the necessary tools to do some pretty amazing stuff, they dont need to make leaps and bounds to help out a specific modder, as you decided to take on the complexity and hardship by modding in the specific mod in the first place. another problem is that the shield mod adds a particular imbalance which is pretty bad, especially when you compare small ship to large ship combat
what i mean by this is that small ships already have a hard enough time taking out large ships, and thats by design, but by adding shields, its almost impossible. and to add insult to injury, small ship shields, while they exist, add less than a single layer of light armor at most and do nothing more than a simple auto rifle bullet at worst, which further increases the divide, and makes it a large ship v large ship ONLY game, which isnt what this is supposed to be
the game is supposed to be that small ships work in tandem with large ships to fulfill complex roles such as scrapping or mining, with the larger ship being the refinery, or disassembly, and the smaller ship being far more expendable and able to fly much easier to wherever specifically needed
as it stands, small ships need a small buff in some cases, whereas variety is needed otherwise
once they have gotten to the point that they feel that they need to move on to SE 2, i feel like these api addons wont be added to SE and instead will simply be carried over to the second game (or engine upgrade) the engine is starting to show its age, you have to remember just how old this game is, and the fact that it was based off of an older game with the same engine, because they arent a AAA studio (which somehow everyone expects the speed and quality of)
one of the problems with a shield mod is that, you decided to mod in the first place. this is keen's game, and they have given us all of the necessary tools to do some pretty amazing stuff, they dont need to make leaps and bounds to help out a specific modder, as you decided to take on the complexity and hardship by modding in the specific mod in the first place. another problem is that the shield mod adds a particular imbalance which is pretty bad, especially when you compare small ship to large ship combat
what i mean by this is that small ships already have a hard enough time taking out large ships, and thats by design, but by adding shields, its almost impossible. and to add insult to injury, small ship shields, while they exist, add less than a single layer of light armor at most and do nothing more than a simple auto rifle bullet at worst, which further increases the divide, and makes it a large ship v large ship ONLY game, which isnt what this is supposed to be
the game is supposed to be that small ships work in tandem with large ships to fulfill complex roles such as scrapping or mining, with the larger ship being the refinery, or disassembly, and the smaller ship being far more expendable and able to fly much easier to wherever specifically needed
as it stands, small ships need a small buff in some cases, whereas variety is needed otherwise
once they have gotten to the point that they feel that they need to move on to SE 2, i feel like these api addons wont be added to SE and instead will simply be carried over to the second game (or engine upgrade) the engine is starting to show its age, you have to remember just how old this game is, and the fact that it was based off of an older game with the same engine, because they arent a AAA studio (which somehow everyone expects the speed and quality of)
Implementing these API extensions in a way that lets modders create either bubble shields or 'Skin tight' shields would be great too.
Implementing these API extensions in a way that lets modders create either bubble shields or 'Skin tight' shields would be great too.
What is this conversation even? Darkstar ABSOLUTELY deserves special consideration from the devs. They've EARNED their place at the table.
What is this conversation even? Darkstar ABSOLUTELY deserves special consideration from the devs. They've EARNED their place at the table.
I don't like playing with shields. But even as someone who doesn't, I think the shield API is a good idea since so many people DO.
Shields are a mainstay of science fiction in space. They also allow for themed builds (think Star Trek). It's a Sandbox game, so even if Keen has no intentions of having shielding as part of vanilla play it still makes sense in terms of marketing. What I would suggest is that Keen created the API but work with some successful shield modders from the workshop and figure out what's good, bad, and ugly.
Like I said... it's not my cup of tea. But even I can recognize the need for it. If you market it right, you could release a retro-space pack with some decorative blocks that would seem right at home in some big name franchises that use shielding tech as part of their lore.
I don't like playing with shields. But even as someone who doesn't, I think the shield API is a good idea since so many people DO.
Shields are a mainstay of science fiction in space. They also allow for themed builds (think Star Trek). It's a Sandbox game, so even if Keen has no intentions of having shielding as part of vanilla play it still makes sense in terms of marketing. What I would suggest is that Keen created the API but work with some successful shield modders from the workshop and figure out what's good, bad, and ugly.
Like I said... it's not my cup of tea. But even I can recognize the need for it. If you market it right, you could release a retro-space pack with some decorative blocks that would seem right at home in some big name franchises that use shielding tech as part of their lore.
Did this get fixed with the update to the mod api?
Did this get fixed with the update to the mod api?
I mean they SHOULD just add shields into vanilla, but Keen has other priorities like curved windows.
I mean they SHOULD just add shields into vanilla, but Keen has other priorities like curved windows.
Replies have been locked on this page!