acf-team / acf-3 Goto Github PK
View Code? Open in Web Editor NEWACF
License: MIT License
ACF
License: MIT License
[ERROR] addons/acf-3/lua/acf/client/sk_menu.lua:251: attempt to index local 'Repo' (a nil value)
1. ACFHomeGUICreate - addons/acf-3/lua/acf/client/sk_menu.lua:251
2. CreateAttribs - addons/acf-3/lua/acf/client/sk_menu.lua:50
3. UpdateDisplay - addons/acf-3/lua/acf/client/sk_menu.lua:224
4. OnNodeSelected - addons/acf-3/lua/acf/client/sk_menu.lua:54
5. SetSelectedItem - lua/vgui/dtree.lua:95
6. Init - addons/acf-3/lua/acf/client/sk_menu.lua:59
7. CreateFromTable - lua/includes/extensions/client/panel/scriptedpanels.lua:62
8. func - addons/acf-3/lua/weapons/gmod_tool/stools/acfmenu.lua:49
9. FillViaFunction - gamemodes/sandbox/gamemode/spawnmenu/controlpanel.lua:100
10. FillViaTable - gamemodes/sandbox/gamemode/spawnmenu/controlpanel.lua:89
11. ActivateTool - lua/includes/modules/spawnmenu.lua:287
12. DoClick - gamemodes/sandbox/gamemode/spawnmenu/toolpanel.lua:118
13. unknown - lua/vgui/dlabel.lua:234
Short Description
The HP/ton rating given by the armor properties tool when pressing reload on a contraption is incorrect if the engine(s) are using fuel. It displays the total HP without fuel, and should either show the rating with and without, or detect if fuel is used and display the appropriate rating.
It might be good to allow the armor tool to report more statistics and allow its use on anyones' vehicle. Report back mass, physical mass, maximum armor (maybe), armament, vehicle era (if applicable), prop/constraint count, e2 usage, and total physical entities.
Some people find ACF annoying to build beside and it's all sort of noises from
Engines, 1000kg bombs, 140mm, 6x racs autoloaders, 203mm with some 280mm sound file.
It's a quality of life
I'm suggesting a client-side command that lets you adjust the noise level of all ACF instances and events on the map.
Values of the volume would be 0 to 1
0.5 would be 50%
If a master volume isn't possible then maybe try just an on/off by true or false
People can then have a toggle bind on acf volume for their own convenience.
Short Description
ACF sounds are a bit dated, WAV files take up a fuckton of space and 320kbps mp3's should sound fine to the majority of people
Short Description
On light vehicles (under 2 tons or so it becomes especially noticeable), if you parent your drivetrain, the vehicle drives quite a bit slower than it would if you just welded everything ACF.
With the ability to parent any ACF components, this bug becomes much more apparent.
How to Reproduce
Create a basic vehicle chassis with a total overall mass of under 1000kg - the lighter it is, the more noticeable the bug is. Give it a beefy but heavy engine such as the special 2.9L v8. Make two copies - one with all ACF components welded, and then one with all ACF components parented. The vehicle with parented components will accelerate and reach top speed much slower than the vehicle with welded components.
Additional Information
Currently, at least for light vehicles, I'm better off just welding ACF components for the extra power it gives me, which shouldn't be the case. This can also benefit tankers if they weld-parent their heaviest few pieces of armor.
Adding crew-seats might be a good idea, I will likely throw up a push request later this week for it.
The goal of these was to:
A) Allow me to give ammo its realistic volume allowing people to make more realistic tanks and allow single shell boxes using the shell models
B) Reduce the amount of cheesy designs by making people protect more space if they want various sizable benefits, a lot less empty turrets with nothing but wedges inside. This is also why the gunner and loaders must sit very close to the gun.
C) Incentivize others to swap to crewed tanks whilst allowing current tanks to still function without crew and be overly penalized
D) Add more realism to tank sizes and classes. If you cannot fit a loader in your panzer 38t then you cannot reload as fast as one that can. Likewise if you have the large space of an artillery piece or open topped tank destroyer you can fill much of your previously open space by double up on loaders (Difficult to get 2 loaders unless you have a casemate.)
E) Autoloaders and autocannons become better weapons for smaller vehicles that lack a loader as they did historically (AMX 13 and autocannon Panzers) These will reload at the same rate as they do in stock ACF
The system I will push will do the following:
Gunners give a 25% boost to accuracy
Loaders give a 25% boost to loading speed each
However...
-Guns unless they are automatic (AL, MG, AC ,RAC ,etc ) start at 75% loading speed without a gunner
-You can only add a max of 2 loaders to boost these
-You must have a gunner linked before you can link a loader
-Loaders cannot be linked to automatic weapons (Including ALs and SAs)
Driver boosts HP by 25% (I might recode it for a wider peak power range instead.)
Additionally:
-All crew-seats will weigh 65 kilos (62 kilos for an average person, and 3 for the seat.)
-Each crew-member dies in one shot or upon being damaged
-Gunner and Loader seats must be extremely close to the guns or they will unlink
-Gunner and loader seats re-use the duplication linking system of ammo (Unfortunately the drivers could not re-use this system)
All of the above is subject to change depending on community feedback.
Short Description
It's well known that the current weapon sounds are terrible. It'd be nice to get a replacement for these so weapons don't sound like a toy.
Short Description
Rewrite the guidelines so that way tanks can't go 130kph and still be legal, general shit like that. A wiki that actually teaches people how to use ACF and build tanks, aircraft, etc
I suggest adding a heat system to ACF, this would allow various things:
-Allow removing the magazines on certain weapons like the RACs and ACs while giving them similar burst limits and by penalizing these weapons when they overheat.
-Give Infrared Missiles a framework to base their detection strength off of ( [Gun Heat/Engine Heat] + the movement speed of special entities like seats or ammo[E2 Flight would not be able to be detected otherwise] )
-Potentially allow a cooling system for engines to be made later on adding realism, and filling more empty space in tanks.
-Potentially allowing builders to try to optimize engine temperature to get the best combustion ratios and efficiency (Think warming up an engine and keeping it at optimal temperature)
I already have a couple drop in systems for these already made, Just let me know if you want them.
Ever since the beginning of mounting bigass cannons on wheels, there was the idea to fill the entire barrel with tiny little pieces of shrapnel and blast it out like a shotgun. This is what canister is to a modern tank. It would be like fletchettes in the current ACF addon, but it can't defeat any armor that isn't paper and sprays a lot more shit out of the front of the barrel in a much larger cone. Pretty much only uses would be anti infantry.
[ERROR] addons/acf-3/lua/acf/base/version/cl_version.lua:28: attempt to index local 'Version' (a nil value)
Short Description
Add support for linking multiple entities at once by holding Shift+RClick
Short Description
Solves #11 since sv_acfdamage is producing most of the errors.
Remove the disgusting block of code that is ACF_HE. Replace with two separate damaging functions, ACF_Frag and ACF_Overpressure.
Instead of the death-sphere provided by ACF_HE, replace it with ballistic fragment projectiles. Giving something a like 203mm HE at the high end of 1000-2000 fragments is still less than the amount of traces put out by 203mm HE currently.
ACF_Overpressure ideally would flood fill but that is probably way too expensive. Instead, pathfinding to players and scaling pressure via the length of the path should give good results. Damaging players around obstacles is possible with this method.
References (Optional)
Short Description
For drones and old aircraft
yeah
Short Description
Allow the copy tool to spawn whatever it has copied when left clicking on world instead of forcing users to update an existing spawned entity.
In Console:
[ACF - Error] Request unsuccessful (Code 403)
[ACF - Error] Request unsuccessful (Code 403)
In Chat:
[ACF - Updates] ACF-3-Missiles: Server is running on version Git-master-e2d19e0. Unable to check for updates.
[ACF - Updates] ACF-3: Server is running on version Git-master-45beef5. Unable to check for updates.
KEShove and HEShove are applying mass relevant to the total mass that has been hit by traces, not total physical mass which is causing HEAT and HE shells to heavily shove vehicles. This gets worse on missiles with their much more potent HEAT shells shoving vehicles at velocities that cause crazyphys to remove them or in the worst case crash the server due to rope like constraints. A probable fix for this would be to convert the parented mass in the shove calc to equiv of physical eg in the case of parented mass being 10000 and physical being 1000 you'd get a ratio of 0.1 as a result of 1000/10000 which the shove from parented props would be multiplied by eg if in this case 7000 of the 10k parented prop mass was shoved, the physical parent would have 700 applied to it.
Summary
More cannons, mortars, and howitzers.
Raw Suggestions
The return of the 170, 240, 280 mortar and 290 howitzer.
Recoil-less Rifles
lemme fuckin have my 85s i made pls
Some big guns, bigger than they should be.
More Variety
More of everything
More gun variation like 152mm howtizer
152mm cannon/al
I would like to see bigger explosive weaponry/bigger explosions. Cause nothing is more better then explosive shit.
The GetUser function is infinite looping somehow. Breaking the loop gives this stacktrace.
addons/acf/lua/entities/acf_gun/init.lua:191: in function 'GetUser'
addons/acf/lua/entities/acf_gun/init.lua:204: in function <addons/acf/lua/entities/acf_gun/init.lua:195>
[C]: in function 'xpcall'
addons/wire/lua/wire/server/wirelib.lua:58: in function 'TriggerInput'
addons/wire/lua/wire/server/wirelib.lua:530: in function 'TriggerOutput'
addons/wire/lua/entities/gmod_wire_expression2/init.lua:505: in function 'TriggerOutputs'
addons/wire/lua/entities/gmod_wire_expression2/init.lua:159: in function 'Execute'
entities/gmod_wire_expression2/core/timer.lua:13: in function 'Execute'
entities/gmod_wire_expression2/core/timer.lua:30: in function <entities/gmod_wire_expression2/core/timer.lua:29>
Fixed for now by removing WireTable.gmod_wire_expression2
FireBullets should only be used for hitscan weapons anyway.
Wiremod has i/o aliasing so that renamed wire ports can still function with old dupes.
Addition to the Armor tool, its kind of normal for people to snoop around peoples builds, wouldn't it be nice if you could check someone else's total mass without requiring administrator. Implement in a safe way yes.
People always ask how heavy something is but you could always lie about it
This would let you to check peoples HP/T, horse powers and weight without requiring admin. Which is an harmless act that doesn't affect peoples builds.
Short Description
Low Drag Rounds - Shoot further for same vel
Guided Howitzer Rounds - Guideable shells for HEAT and HE only, maneuvering decreases velocity
GLATGM Rework:
Fix GLATGM super maneuverability - in certain situations, such as when the missile must turn quickly to match a target pos, the missile becomes highly maneuverable and uncontrollable, slamming into the ground
Fix guidance computers - guidance computers often lock onto glatgms themselves, making them go "crazy".
Sluggishness - For some reason, GLATGMs are extremely sluggish at maneuvering, such that when elevating the gun 15* above horizontal and firing at a target at level elevation, the GLATGM will smash into the ground. Even Sluggish missiles such as the AT2 are able to travel without accelerating rapidly.
Balanced? - I do not know atm if its for balance reasons, but the GLATGMs will often "fly dumb" when given a target outside a certain cone around the gun's direction. If the whole point of guidance computers is to balance the GLATGM, I feel they should be able to travel to wherever the computer aims. Otherwise, implementing a hitpos system would be nice
Bomblet Shells
An Idea I saw from Ferv (https://www.youtube.com/watch?v=gLnmi89O_Ts), where shells would have essentially the same effect as cluster munitions in ACF missiles. Of course, the payload of each sub-munition should be scaled inversely proportionately to the number of bomblets in that shell.
Cluster ACF missiles
At the moment, cluster munitions have the same amount of penetration as non cluster munitions of the same type. Sub munitions should have less pen then their single munition counterparts
Missile Armor
Heavier missiles such as the SS-24, or bombs like the 454kgGBU, have tons of armor. This makes it infeasible to shoot down with 14.5s. I do not know myself how much armor modern bombs have, but I am sure as hell that when pure explosive bombs are hit, they detonate. If changing the armor on bombs is unrealistic, I would atleast hope that their health could be significantly reduced. GBUs especially, have alot of health, making them infeasible to shoot down with guns such as the 30mmHRAC, even when penned.
test2
Short Description
Alternator/Regenerative Braking:
Be able to drive an electric engine with another ACF engine or rotating prop after a gearbox.
This would feed back into an electric fuel tank. Perhaps implement some energy loss so you can't get all of the electricity back.
This could also work nicely with #40 's heat system, where the regenerative braking/generation causes more stress on the cooling system.
Another use would be a diesel-electric powerplant.
Summary
More ammunition types and changes to existing ammo types
Raw Suggestions
Realistic round penetration (tanks in reality don't take 20 hits and survive like they do in ACF)
Have HE splash damage not be easily stopped by detail and low armor props, and also have apfsds pen buffed to a value like 800mm
I want incendiary munitions (bombs, missiles, cannon shells, bullets, etc).
[...] aphe for large HRACs
I'd love to see something along the lines of time-fuse shells, for anti aircraft.
coherent ammo types per of bore e.g hesh rather than heat on rifled cannons
Short Description
Add Contraption Framework in order to greatly simplify and speed up contraption-aware functionality in ACF.
References (Optional)
Add a way to save presets of ammo. It's for convenience. That way you don't have a thousand notes with random ass digits
Basically just add pitch & volume control on the replacer tool for guns and volume control for engines.
E2 output for sound string to be played from the gun/engine would also be interesting.
Short Description
Implement a complete overhaul of ballistics in order to achieve faster overall code while making future changes simpler.
Short Description
Seems like the barrel owner check fails as the CPPIGetOwner method doesn't exist if you don't have a prop protection mod installed. (ie. singleplayer gameplay)
Additional information (Optional)
If you spam click enough times in a pod controller, the gun will fire its shot anyway regardless of the check.
Console Error Logs (Optional)
Wire error (Entity [352][acf_gun] by Player [1][aversion]):
addons/acf-3/lua/entities/acf_gun/init.lua:260: attempt to call method 'CPPIGetOwner' (a nil value)
stack traceback:
addons/acf-3/lua/entities/acf_gun/init.lua:260: in function 'BarrelCheck'
addons/acf-3/lua/entities/acf_gun/init.lua:319: in function 'Shoot'
addons/acf-3/lua/entities/acf_gun/init.lua:287: in function 'AttemptFire'
addons/acf-3/lua/entities/acf_gun/init.lua:210: in function <addons/acf-3/lua/entities/acf_gun/init.lua:199>
[C]: in function 'xpcall'
lua/wire/server/wirelib.lua:58: in function 'TriggerInput'
lua/wire/server/wirelib.lua:530: in function 'TriggerOutput'
lua/entities/gmod_wire_pod.lua:294: in function 'fn'
lua/ulib/shared/hook.lua:109: in function 'Run'
lua/wire/wireshared.lua:1186: in function 'fn'
lua/ulib/shared/hook.lua:109: in function <lua/ulib/shared/hook.lua:92>
sv: Wire error (Entity [352][acf_gun] by Player [1][aversion]):
addons/acf-3/lua/entities/acf_gun/init.lua:260: attempt to call method 'CPPIGetOwner' (a nil value)
stack traceback:
addons/acf-3/lua/entities/acf_gun/init.lua:260: in function 'BarrelCheck'
addons/acf-3/lua/entities/acf_gun/init.lua:319: in function 'Shoot'
addons/acf-3/lua/entities/acf_gun/init.lua:287: in function 'AttemptFire'
addons/acf-3/lua/entities/acf_gun/init.lua:210: in function <addons/acf-3/lua/entities/acf_gun/init.lua:199>
[C]: in function 'xpcall'
lua/wire/server/wirelib.lua:58: in function 'TriggerInput'
lua/wire/server/wirelib.lua:530: in function 'TriggerOutput'
lua/entities/gmod_wire_pod.lua:294: in function 'fn'
lua/ulib/shared/hook.lua:109: in function 'Run'
lua/wire/wireshared.lua:1186: in function 'fn'
lua/ulib/shared/hook.lua:109: in function <lua/ulib/shared/hook.lua:92>
Wire error (Entity [352][acf_gun] by Player [1][aversion]):
addons/acf-3/lua/entities/acf_gun/init.lua:260: attempt to call method 'CPPIGetOwner' (a nil value)
stack traceback:
addons/acf-3/lua/entities/acf_gun/init.lua:260: in function 'BarrelCheck'
addons/acf-3/lua/entities/acf_gun/init.lua:319: in function 'Shoot'
addons/acf-3/lua/entities/acf_gun/init.lua:287: in function 'AttemptFire'
addons/acf-3/lua/entities/acf_gun/init.lua:210: in function <addons/acf-3/lua/entities/acf_gun/init.lua:199>
[C]: in function 'xpcall'
lua/wire/server/wirelib.lua:58: in function 'TriggerInput'
lua/wire/server/wirelib.lua:530: in function 'TriggerOutput'
lua/entities/gmod_wire_pod.lua:294: in function 'fn'
lua/ulib/shared/hook.lua:109: in function 'Run'
lua/wire/wireshared.lua:1186: in function 'fn'
lua/ulib/shared/hook.lua:109: in function <lua/ulib/shared/hook.lua:92>
sv: Wire error (Entity [352][acf_gun] by Player [1][aversion]):
addons/acf-3/lua/entities/acf_gun/init.lua:260: attempt to call method 'CPPIGetOwner' (a nil value)
stack traceback:
addons/acf-3/lua/entities/acf_gun/init.lua:260: in function 'BarrelCheck'
addons/acf-3/lua/entities/acf_gun/init.lua:319: in function 'Shoot'
addons/acf-3/lua/entities/acf_gun/init.lua:287: in function 'AttemptFire'
addons/acf-3/lua/entities/acf_gun/init.lua:210: in function <addons/acf-3/lua/entities/acf_gun/init.lua:199>
[C]: in function 'xpcall'
lua/wire/server/wirelib.lua:58: in function 'TriggerInput'
lua/wire/server/wirelib.lua:530: in function 'TriggerOutput'
lua/entities/gmod_wire_pod.lua:294: in function 'fn'
lua/ulib/shared/hook.lua:109: in function 'Run'
lua/wire/wireshared.lua:1186: in function 'fn'
lua/ulib/shared/hook.lua:109: in function <lua/ulib/shared/hook.lua:92>
Short Description
Currently, fuel and ammo refilling are hard-coded on their respective ACF entities despite behaving on a really similar manner.
In the case of ammo refills, the process of drawing the "floating round arc" can be really intensive on clients. This arc doesn't seem to persist among server rejoins, even if the crates are still being refilled. Another problem with this arc is the fact it's attached to the refill crate's draw function, meaning that if a player can't see the refill crate, he won't be able to see the arc, even if he should. This is really exploitable, leading to cases where refill crates can be hidden underground.
In relation to fuel refills, it isn't as intuitive as refill crates as there's no visual effect to show which tanks are being refilled.
My idea to solve this problems would be the introduction of refill related functions to ACF, simplifying the process of setting up a new refill entity, along with reducing the amount of hard-coded stuff inside of them and making it more intuitive for players in general, so they can know when an entity is being refilled. Ideally, it should also address the problems listed above.
Gun breeches are insanely long as of right now which makes fitting otherwise reasonable cannons for certain tanks (in some cases even their historical guns) incredibly difficult. As far as I can tell the worst offenders are the bigger calibers like 120's and up. Short barrel cannon breeches are significantly closer to what they should be.
In short: cut short barrel breech off, graft onto long barrel cannon.
Short Description
Essentially the title. It's understandable for transfer cases and for regular gearboxes, but seeing as differentials are entirely used for power transfer it doesn't make sense to give them any gears aside from gear 1.
This mainly bothers me because I now have to wire Gear
on all differentials to a constant value of 1, or to Active
on my pod controller.
Short Description
Not 100% certain what specifically is causing this, but when I spawn some tanks made in ACF2 they spawn bugged ammoboxes that don't undo with the dupe (need to remove them manually with remover tool) alongside some errors in the server console. This also causes CFrame to freak out and spew some errors of its own.
Console Error Logs
Refer to screenshots.
How to Reproduce
Spawn some old ACF2 tanks, no idea if it's just my tanks somehow.
Screenshots
Raw Suggestions
instead of set calibers make it a slider
Scalable entities, generic missiles instead of specific ordnance
Interpretation
Components that are scaled with a slider instead of fixed calibers.
Spawn a clutch type gearbox (as in, the thin thing that is literally just a clutch), then attempt to use the ACF tool to update said clutch's gear ratio, and get whacked with this fun error:
`[ERROR] addons/acf-3-master/lua/entities/acf_gearbox/init.lua:288: attempt to perform arithmetic on a string value
Other interesting info: Sometimes it actually still updates the gear ratio value, sometimes it does not. Usually not.
Scalable engines/gearboxes
Engines would be defined by:
-Fuel type (diesel, petrol, multifuel)
-Piston, rotary, turbine, or electric
-Piston/rotor amount
-Piston arrangement (this can modify fuel consumption and cooling, radial/boxer engines having a bonus in cooling for example)
-Aspiration (natural, turbo, supercharger. Turbo increases potential power/tq output and reduces displacement at high rpm at the cost o higher fuel consumption, lower durability, and increased cooling cost. Supercharging increases low rpm power/tq, reduces displacement, and increases fuel cosumption greatly but does not affect durability or added cooling cost as much as turbocharging.
-Target displacement (this defines torque, redline, size, mass, redline & available powerband range.)
-Block material (cast iron, aluminum; dictates engine weight, durability, and cooling requirement)
-Target powerband range (dictates torque & horsepower output. Setting the range higher increases HP output, fuel consumption, cooling cost, and possibly engine durability. Lower range increases torque. Can only be increased to a certain point depending on the redline that is defined by engine displacement.)
Cooling:
-Either fixed or scalable entities
-Required to be within a certain link range of the engine(s)
-Two types, air cooling (large fan) or water cooling (radiator entities of a largish size)
-Possibly require being exposed to air for air cooling fan(s) or not have its intake blocked by an acf entity.
Gearbox size defined by:
-Gear amount
-Target torque rating
-Skid steer, regenerative, or neutral steer capable
-Eliminate need for differentials and/or transfer cases (but do not remove these gearboxes)
-Output direction (transaxial/inline/straight)
-Possibly link to engine cooling system (oil) to boost durability or tq rating.
[ERROR] addons/acf-3/lua/acf/base/version/cl_version.lua:45: attempt to index local 'Branch' (a nil value)
I have the latest ACF-3 but someone is getting these errors. He has acf2 installed on his gmod which idk if that would cause the issue.
Short Description
There'd be two types;
I don't know what exact reload times would be, but I'd imagine it'd be based on caliber and drum/carousel size. It's just a wait and see type thing.
It's been a bug for eons that torque ratings are not very accurate. A long time exploit is that gearboxes do not take into account the torque of multiple engines, only one of them. Gearbox tq ratings are always overstated by 1-200nm. I would suggest either fixing that or just reducing the visible torque rating.
Could have a official ACF-3 Discord where you could easier communicate with the community where people can comfortably talk real time and voice-chat.
Short Description
Ammo not being used if crate is deactivated before firing
How to Reproduce
Set an ammo crates load input to 1, reload gun, set crates load input to 0, fire gun.
People are complaining that updating ammo takes ~5 sec? That's pretty inconvenient. Can this be reverted?
Short Description
Some fuel tanks from ACF-2 dupes might become disabled when they're spawned because their mass is slightly lower than the minimum legal mass.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.