MoreDoors
I don't mod much these days as I've been focusing on game development, and as a result this mod went to the wayside a bit until some very helpful community members revitalized it. Unfortunately that version is no longer available, however shoutouts to MDC for heavily improving upon the original system and providing so much for the community. Though this mod is depreciated, it will stay on the workshop to be used as… (more)
I don't mod much these days as I've been focusing on game development, and as a result this mod went to the wayside a bit until some very helpful community members revitalized it. Unfortunately that version is no longer available, however shoutouts to MDC for heavily improving upon the original system and providing so much for the community. Though this mod is depreciated, it will stay on the workshop to be used as reference in case its useful to anyone. This mod has not been updated for 1.13 at this time and may not be depending upon availability More Doors! This mod is made to assist in the process of locking down a vanilla house when a gate just won't cut it. More Doors are craftable doors that behave like gates but are just a door and a frame, allowing you to lock down an entrance in a much smaller location without exposing any of the backside of your wall. There are also a few extra bells and whistles (and more to come ^_^) such as a lockable safe container that players can use to hide their most treasured valuables and a giant unraidable vault door for events and other creative uses. Lastly, the mod is equipped with its own server side config file that is generated in the profile folder and allows for various customization such as Raid times, toggle recipes, raid tools, etc. Hope you enjoy the mod, please report any issues and such you find to me. Steam comments are ok for little blurbs but discord is the place to talk and really get to the bottom of things if you need support. Fresh out the door I may have missed a few bugs, consider this the beta of More Doors but as far as I can tell its very stable so don't feel like your takin a gamble. Just be sure to report any bugs to me and I'll try and fix em ^_^ Discord [Click Here For Support] (Link Updated 11/19) Recipes 5 Wooden Planks + Hammer = Shanty or Wooden Door Kit 10 Wooden Planks + Hammer = Metal Door Kit Then you must put the required ingredients into the kit object before it will place the door you would like to build. 5 planks + 25 nails = Small Shanty Door 10 planks + 25 nails + Metal Wire = Small Wooden Door 20 planks + 75 nails + 5 Sheet metal + Metal Wire = Small Metal Door Other noncraftable items = Vault door (still has kit for placement ease) and the Safe. FAQ: Do Codelocks lock these doors? Yes. Codelock, combination locks, any locks that work on a fence. Currently no proxy of the lock appears while its connected but will likely fix that in the near future. Does this work with X mod? It should be compatible all around and if its not I'll be sure to fix it. Uses its own actions and configs so vanilla overrides also won't effect this mod hopefully. Whats the best way to place these? I tried to size them in a way that would fit most small doors, I find its less finicky opening and closing them if you dont line them up on the exact plane as the vanilla door your covering (little to the forward or back). Keep in mind these place the same way fence kits do when building them as in, the dismantle side faces towards you as you place them and the destroy side faces away (unless you rotate the object). Y u no do dis? :Facepalm: Spare us both the trouble, you are the because lol. I am happy to answer questions and recieve feedback in a civilized fashion. I will definitely remove your comment if your just being a turd, if you want to give helpful feedback you know where to find me Permissions This mod is open source, feel free to repack it or do as you will. All I ask is that if you are using the mod inside your own or picking it apart to learn from it, please throw out some shoutouts. Many brilliant minds other than my own are the only reason I am here with all of this anyway, what you see is the culmination of group effort, knowledge, and sharing. If you wanna customize anything that isn't already provided with the config buzz me and I'll see if I can throw you a hand. Shoutouts Munghard the model man, Helkhiana the refactah mastah (more like fix the whole mod mastah lol), MDC with the big brain scripting, Jon and the whole Sanctuary Gang for being the best, Creep for giving me a nice working sample to get the OB juices flowin, Chopper and the BBP bois for always bein awesome but also the words "these are just a fence in disguise", MarkDaOne for assisting helk with rpc vodoo, All the modders makin great content and lending a hand when they can. Hop, SaltyBob, the list goes on and on. Special thanks to Spud from DDU for his generous donations and his decision to share with you MoreDoor's newest addition: Window Barricades! Also just for a lot of great ideas and input in general, great people over there. Show them some love Another special thanks to Islerok!! He sent me the fix for the punching of the doors going away, the community continues to support each other and it warms my heart, enjoy all!
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
Every server-visible override preserves its chain.
less than 0.001% of each server frame at 100 players (0.001 ms/s). Counts hook dispatch and timers only, not what the hooks do inside. Methodology.
Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 32 others share it. Ranked list.
Event hooks carry 99.5% of this mod's structural load. 0.001 ms/s in all.
5 hooks · 0.00099 ms/s
1 hook · 0.000002 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 5 hooks | 0.00099 ms/s | 99.5% | Crowbar.SetActions, Hacksaw.SetActions, Hammer.SetActions and 2 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | 0.2% | MissionServer.OnInit |
Counts how often each hook is dispatched and how many timers stay alive, not what the code inside does. Some rates are order-of-magnitude estimates; the methodology lists which.
Where this mod runs often
Hooks on per-frame and high-rate surfaces, with what their bodies call. Body work, not the hook itself, is what costs frame time.
Other findings
super() only on some paths · 3 · warning
- Hologram.EvaluateCollision calls super.EvaluateCollision() only on some paths — on the others the chain below this mod is dropped.
MoreDoors.pbo::scripts\4_world\holograms.c:35 - Hologram.ProjectionBasedOnParent calls super.ProjectionBasedOnParent() only on some paths — on the others the chain below this mod is dropped.
MoreDoors.pbo::scripts\4_world\holograms.c:3 - VicinityItemManager.IsObstructed vetoes early (returns false) on some paths and defers to super.IsObstructed() otherwise — composes safely with vanilla's and earlier mods' conditions.
MoreDoors.pbo::scripts\5_mission\vicinityitemmanager.c:3
- Hologram.EvaluateCollision calls super.EvaluateCollision() only on some paths — on the others the chain below this mod is dropped.
Which vanilla methods the mod hooks, which of them drop the chain, how often each hook fires, and which risky calls sit inside hot hooks.
How long hook bodies take, network cost, or engine-side load. Measured across live fleets, most server lag comes from the engine and world state, not mod script chains — a light footprint does not clear a mod of lag, and a heavy one does not convict it. Methodology.
Everything else
All 14 overrides
Surface is the dispatch tier the rubric can price (— = unpriced); server is whether the override exists on a dedicated server; super() shows whether the vanilla chain is preserved on a server.
| method | surface | server | super() | where |
|---|---|---|---|---|
ActionConstructor.RegisterActions |
— | yes | ✓ | MoreDoors.pbo::scripts\4_world\actions\actionconstructor.c:4 |
Crowbar.SetActions |
T2 | yes | ✓ | MoreDoors.pbo::scripts\4_world\tools\hatchet.c:13 |
Hacksaw.SetActions |
T2 | yes | ✓ | MoreDoors.pbo::scripts\4_world\tools\hacksaw.c:3 |
Hammer.SetActions |
T2 | yes | ✓ | MoreDoors.pbo::scripts\4_world\tools\hatchet.c:22 |
Hatchet.SetActions |
T2 | yes | ✓ | MoreDoors.pbo::scripts\4_world\tools\hatchet.c:3 |
Hologram.ProjectionBasedOnParent |
— | yes | conditional | MoreDoors.pbo::scripts\4_world\holograms.c:3 |
Hologram.PlaceEntity |
— | yes | ✗ none | MoreDoors.pbo::scripts\4_world\holograms.c:16 |
Hologram.EvaluateCollision |
— | yes | conditional | MoreDoors.pbo::scripts\4_world\holograms.c:35 |
MissionGameplay.OnInit |
T3 | yes | ✓ | MoreDoors.pbo::scripts\5_mission\missiongameplay.c:9 |
MissionServer.OnInit |
T3 | yes | ✓ | MoreDoors.pbo::scripts\5_mission\missionserver.c:10 |
ModItemRegisterCallbacks.RegisterHeavy |
— | yes | ✓ | MoreDoors.pbo::scripts\4_world\playerbase.c:13 |
PlayerBase.SetActions |
T2 | yes | ✓ | MoreDoors.pbo::scripts\4_world\playerbase.c:3 |
PluginRecipesManagerBase.RegisterRecipies |
— | yes | ✓ | MoreDoors.pbo::scripts\4_world\recipes\moddedrecipe.c:3 |
VicinityItemManager.IsObstructed |
— | yes | conditional | MoreDoors.pbo::scripts\5_mission\vicinityitemmanager.c:3 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
PlayerBase.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Hacksaw.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Hatchet.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Crowbar.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Hammer.SetActions | T2 | 8.0 | placeholder | 0.0002 |
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.0000 |
Includes 0.001 ms/s from placeholder-rated surfaces.
Load-order constraints (CfgPatches)
What each PBO declares: its addon identity and the addons it requires to be loaded first (requiredAddons). A partial load-order signal from the mod's own metadata.
MoreDoors.pbo
MoreDoorsrequiredVersion 0.1 — requiresDZ_Data,DZ_Gear_Camping,DZ_ScriptsMoreDoors_SoundsrequiredVersion 0.1 — requiresDZ_Data
census 1.1 · findings 1.1 · hash b7bba7894e226e34