Skip to content

Add more brass ammo calibers#1010

Open
Iisazel wants to merge 5 commits intoHardLightSector:masterfrom
Iisazel:master
Open

Add more brass ammo calibers#1010
Iisazel wants to merge 5 commits intoHardLightSector:masterfrom
Iisazel:master

Conversation

@Iisazel
Copy link

@Iisazel Iisazel commented Mar 15, 2026

About the PR

Added more craftable brass ammo calibers, specifically 45 ACP, 46x30, 45 magnum, 556x45, 57x28, 762x39, 762x51, 762x54 and 8x65 SKR

Why / Balance

Because fenn said i could, so i did! Followed same balance - high-power is 50% stronger (Rounded down), flechette is 50% weaker (Also rounded down because why not). Bigger calibers require more time to make - 762x39 and 762x51 takes 10 seconds, while 45 magnum, 762x54 and 8x65 take 15 seconds per bullet to craft

Technical details

Literally copy-pasted what Trylo did with 9x19mm 9 more times everywhere

How to test

Emag protolathe/get ammofab, print things, craft bullets, shoot deathsquad with flechettes

Media

Breaking changes

Changelog
🆑

  • add: Added more brass ammo calibers

@Nikode16
Copy link
Contributor

If you could add 12 gauge and 4 gauge high-power versions. That'd be rad as hell! Tryo's already given the go-ahead on it too.

And don't gota go crazy. Buckshot at minimum is perfectly reasonable. But if you want to do a few other round-type's. Be my guest :3

@fenndragon
Copy link
Collaborator

juuuust make sure is still caseless (it should be)

@Iisazel
Copy link
Author

Iisazel commented Mar 17, 2026

Yep, tested them. Works perfectly fine, cartriges delete on spawn properly

@Iisazel
Copy link
Author

Iisazel commented Mar 19, 2026

If you could add 12 gauge and 4 gauge high-power versions. That'd be rad as hell! Tryo's already given the go-ahead on it too.

I can do that, but after this pull gets merged

@Nikode16
Copy link
Contributor

If you could add 12 gauge and 4 gauge high-power versions. That'd be rad as hell! Tryo's already given the go-ahead on it too.

I can do that, but after this pull gets merged

Yeppie!!!!

@fenndragon
Copy link
Collaborator

Unhandled exception. NUnit.Framework.AssertionException: CLIENT: 10.656s [ERRO] eng: Exception whilst loading prototypes from /Prototypes/_HL/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/hipower.yml:
Robust.Shared.Prototypes.PrototypeLoadException: Duplicate ID: 'Cartridge9x19mmHiPower' for kind 'Robust.Shared.Prototypes.EntityPrototype
at Robust.Shared.Prototypes.PrototypeManager.LoadDirectory(ResPath path, Boolean overwrite, Dictionary2 changed) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Prototypes/PrototypeManager.YamlLoad.cs:line 103 Exception: at NUnit.Framework.Assert.ReportFailure(String message) at NUnit.Framework.Assert.Fail(String message) at Content.IntegrationTests.PoolTestLogHandler.Log(String sawmillName, LogEvent message) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/PoolTestLogHandler.cs:line 66 at Robust.Shared.Log.LogManager.Sawmill.LogInternal(String sourceSawmill, LogEvent message) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Log/LogManager.Sawmill.cs:line 119 at Robust.Shared.Log.LogManager.Sawmill.LogInternal(String sourceSawmill, LogEvent message) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Log/LogManager.Sawmill.cs:line 130 at Robust.Shared.Log.LogManager.Sawmill.Log(LogLevel level, Exception exception, String message, Object[] args) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Log/LogManager.Sawmill.cs:line 89 at Robust.Shared.Log.LogManager.Sawmill.Log(LogLevel level, String message, Object[] args) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Log/LogManager.Sawmill.cs:line 101 at Robust.Shared.Log.LogManager.Sawmill.Log(LogLevel level, String message) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Log/LogManager.Sawmill.cs:line 106 at Robust.Shared.Log.LogManager.Sawmill.Error(String message) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Log/LogManager.Sawmill.cs:line 179 at Robust.Shared.Prototypes.PrototypeManager.LoadDirectory(ResPath path, Boolean overwrite, Dictionary2 changed) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Shared/Prototypes/PrototypeManager.YamlLoad.cs:line 107
at Robust.Client.Prototypes.ClientPrototypeManager.LoadDefaultPrototypes(Dictionary2 changed) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Client/Prototypes/ClientPrototypeManager.cs:line 35 at Robust.Client.GameController.StartupContinue(DisplayMode displayMode) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.Client/GameController/GameController.cs:line 197 at Robust.UnitTesting.RobustIntegrationTest.ClientIntegrationInstance.Init() in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.UnitTesting/RobustIntegrationTest.cs:line 1049 at Robust.UnitTesting.RobustIntegrationTest.ClientIntegrationInstance.ThreadMain() in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.UnitTesting/RobustIntegrationTest.cs:line 943 --- End of stack trace from previous location --- at Robust.UnitTesting.RobustIntegrationTest.IntegrationInstance.WaitIdleImplAsync(Boolean throwOnUnhandled, CancellationToken cancellationToken) in /home/runner/work/HardLight/HardLight/RobustToolbox/Robust.UnitTesting/RobustIntegrationTest.cs:line 477 at Content.IntegrationTests.PoolManager.GenerateClient(PoolSettings poolSettings, TextWriter testOut) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/PoolManager.cs:line 179 at Content.IntegrationTests.Pair.TestPair.Initialize(PoolSettings settings, TextWriter testOut, List1 testPrototypes) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/Pair/TestPair.cs:line 68
at Content.IntegrationTests.PoolManager.CreateServerClientPair(PoolSettings poolSettings, TextWriter testOut) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/PoolManager.cs:line 368
at Content.IntegrationTests.PoolManager.GetServerClientPair(PoolSettings poolSettings) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/PoolManager.cs:line 261
at Content.IntegrationTests.PoolManager.GetServerClientPair(PoolSettings poolSettings) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/PoolManager.cs:line 274
at Content.IntegrationTests.PoolManager.GetServerClient(PoolSettings poolSettings) in /home/runner/work/HardLight/HardLight/Content.IntegrationTests/PoolManager.cs:line 191
at Content.YAMLLinter.Program.GetClientServerAssemblies() in /home/runner/work/HardLight/HardLight/Content.YAMLLinter/Program.cs:line 202
at Content.YAMLLinter.Program.RunValidation() in /home/runner/work/HardLight/HardLight/Content.YAMLLinter/Program.cs:line 137
at Content.YAMLLinter.Program.Main(String[] _) in /home/runner/work/HardLight/HardLight/Content.YAMLLinter/Program.cs:line 48
at Content.YAMLLinter.Program.

(String[] _)

@Nikode16
Copy link
Contributor

Nikode16 commented Mar 20, 2026

To explain for you the Linter fail if its not understood.

There's a Duplicate Prototype ID of "Cartridge9x19mmHiPower" in the highpower.yml

Just means you likely forgot to change a ID of a item from the 9x19 round's ID. Simple fix :3
Just make sure it's not the original 9x19 round your changing :)

@Iisazel
Copy link
Author

Iisazel commented Mar 21, 2026

To explain for you the Linter fail if its not understood.

There's a Duplicate Prototype ID of "Cartridge9x19mmHiPower" in the highpower.yml

Just means you likely forgot to change a ID of a item from the 9x19 round's ID. Simple fix :3 Just make sure it's not the original 9x19 round your changing :)

I had a second directory called "Cartriges" instead of Cartridges ;-;
Anyway, deleted it, and my bullets still work, so i consider it fixed

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.

3 participants