Skip to content

Conversation

@LengthenedGradient
Copy link
Contributor

Entities:

  • Ammo crate changes:
    • Shells/Racked Munitions now visualized within ammo crate
    • Now uses hexagonal packing for storage (more efficient?)
    • Now uses actual size of racked munitions for storage
  • Added Water jet Entities

QOL/Code Quality:

  • Added new safezone system
  • Add entity limit setting in menu
  • Various AIO improvements involving car steering and HUD
  • Various Autoregister improvements involving state and links
  • Some entity files like ammo and baseplates were broken up into modules for better organization

Mechanics:

  • Changed HEAT damage multiplier from 10x pre spall to 4x pre spall
  • Breech rotation check added that disables guns when their breeches clip through armor
  • Explosions are now able to penetrate

Bug Fixes:

  • Removed debris for primitives
  • Possibly fixed issue involving missing/stale bullets?

Stooberton and others added 30 commits September 24, 2025 19:05
- Ammo crate size is now defined by the arrangement of projectiles rather than external dimensions
- Ammo is now hexagonally packed
- Current ammo is displayed inside crates
ACF HEAT was changed to do [10x](326fe66) when spalling was added to kinetics, because spalling did not work on chemical rounds.

However, chemical rounds (e.g. missiles) can be used to slug (remove health) considerably better than kinetic projectiles. This was not the intention.

This should rectify things.
- Simplified the code dramatically. Instead of reusing the same entity over and over, we'll just spawn and remove one for each unique model.
- Changed the dimension calculation to use GetModelBounds: Available and consistent in both realms. Addressed issues with some missiles AABB only containing the missile body and not the fins
- Optimized volume calculations
- Added support for custom models in ammo crates
- Fixed some scaling issues
They just make helicopter bomb models.
Why did they ever do this thats not how tracers work
- Removed "Refill" ammo type
- Added "Supply" crate under components tab: Refills fuel and ammo
- Added sphere and cylinder shapes to fuel (cylinder replaces drum)
- Created acf_container baseclass to generalize behavior of ACFs container types
- Fixed stale mass updates: Mass update timers set the mass to the current content * unitmass instead of the mass when the timer was fired
This reverts commit 0c5785f.

This change introduces some weird race-condition-esque issue where previous scalable entities have completely wrong meshes (I was seeing entirely different entities getting entirely different models in some cases)
LengthenedGradient and others added 30 commits November 14, 2025 20:43
No longer need to manually specify FOV <3
RACs previously had their limits reduced from 16 to 2 due to server performance and balance concerns, alongside other automatic weapons.

HE was added to RACs due to request and to see whether it could be properly balanced given the new limits.

It has become apparent that HE on RACs is the worst offender of what is a problematic HE model.

There have also been complaints about RACs losing their niche of high rate of fire, which is a valid point.

Reverting the RAC ROF to 2000 and removing HE is an acceptable compromise to deal with both of these issues.
Outside callers like Physical Parent can call ents.Create("acf_class"), which doesn't call one of our constructors that sets self.ACF
GetMesh/GetMeshConvexes is about 2.5x slower than our ModelData.GetMesh functionality
Replaced the dumb random pos calculation for spherical objects
Avoids overhead from creating new timers every tick (also stop polluting fprofiler)
Cleaned up legal checks
Mirrors serverside behavior: aborts if not valid
Check for "Active" value change was broken. Only became apparently when using Wirelink, as standard wire IO only triggers when the value changes (doing this for us). Wirelinks trigger every time they're called.
This code can't be ripped out entirely. Some things now rely on ACF.PlayersInContraptionIterator. (See: aircraft baseplates.)

We can look into a less annoying way to implement this, more than likely checking if the weapon can do damage to others, which would require a player being in the contraption. This would be a good inbetween of too strict for testing vs. restricting handhelds/autonomous weapons/remote control weapons.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants