Summary
# LHDF Core
LHDF Core is the framework the other mods of the Lost Hope Dynamic Framework (LHDF) build on. It adds no gameplay of its own.
Description
# LHDF Core
LHDF Core is the framework the other mods of the Lost Hope Dynamic Framework (LHDF) build on. It adds no gameplay of its own.
Each LHDF mod registers with Core when it is loaded. Core loads the mod's settings from JSON files on the server, sends the values clients need, stores the mod's data inside the vanilla save, and adds the mod's attributes and placeables to the Game Master editor.
## Features
- Settings for every LHDF mod in one JSON file per mod. The file only needs the keys you change; the server never overwrites it.
- A reference of every key with its default, range and description, written on every start.
- Live changes by a Game Master: settings marked as live appear as checkboxes and sliders in the mod's attribute tab, apply at once and are kept in `<Key>.live.json`. Delete that file to go back to the owner's settings.
- Saved data of LHDF mods (per player and per world) is part of the vanilla save. Data of a mod that is not loaded is kept.
- Returning players get their saved character back when vanilla would spawn them fresh after a restart.
- Game Master editor: one attribute tab per LHDF mod, LHDF placeables in the Game Master content browser, plain-text search ("LHDF" or a mod name). Only Game Masters in unlimited edit mode and admins can read or change these attributes.
- Admin rights for LHDF features: logged-in and listed server admins, and players named in the start parameter `-lhdfAdmins "<identity id>,<identity id>"`.
- Shared world index of buildings and named map locations, built once and cached.
- Work queue that spreads long jobs of LHDF mods over many frames.
- Performance log and a warning when LHDF work in one frame takes too long.
## Required on server and clients
Core replicates settings to clients and adds Game Master attributes, so it must be loaded on the server and on every client. It is normally pulled in as a dependency of the other LHDF mods.
## Dependencies
- Arma Reforger
## Configuration
Settings live in `$profile:LHDF/<namespace>/Core.json`. The namespace is taken from the scenario's mission header file name unless the scenario sets one. On every start the server writes every key with its default to `_defaults/Core.md` and `_defaults/Core.json` in the same folder; copy the lines you need into `Core.json`. The same applies to every other LHDF mod, with its own key (for example `Server.json`, `VehicleLock.json`).
Main keys of `Core.json`:
- `debug` (default `[]`): mods whose debug lines are logged, by key, or `"*"` for all.
- `perfLog` (default false): log a performance summary of LHDF work. The start parameter `-lhdfPerf` switches it on for one run.
- `perfIntervalSeconds` (default 60, 10 to 3600): seconds between summaries.
- `frameWarnMs` (default 25, 5 to 1000): warn when LHDF work in one frame takes longer.
- `workBudgetMs` (default 2, 1 to 8): milliseconds per frame for long LHDF jobs.
- `writeDefaults` (default true): write the `_defaults` reference on every start.
Start parameters:
- `-lhdfAdmins "<identity id>,<identity id>"`: LHDF admin rights (for example `#save` and `#message` of LHDF Server Tools) for servers without listed admins. Vanilla admin features still need `#login`.
- `-lhdfUnverifiedIdentity`: name-based player ids for local test servers without backend. Anyone using the same name gets the same data. Never use it on a public server.
## Known limitations
- Without a persistence system (for example Workbench play), LHDF mods run but nothing is saved.
Beta (0.9.0): feedback welcome on the Lost Hope Survival Discord: https://discord.gg/uDzYTTdsM6License
CUSTOM LICENSE – RESTRICTED SERVER USE
Version 1.0 – 2026-10-01
1. OWNERSHIP
This mod, including all code, assets, configurations and documentation
(the "Content"), is created and owned by BoomstickBarry / the LHDF Team (the "Author").
All rights not expressly granted in this license are reserved.
2. PERMITTED USE
Without further permission, you may:
a) download the Content through the Arma Reforger Workshop;
b) use it in single-player, offline or local Workbench sessions for
personal, non-commercial purposes;
c) host it on the following authorized servers only:
[Lost Hope Survival - Nizla Island].
3. SERVER RESTRICTION
You may not load, host, run or otherwise deploy the Content, in whole or
in part, on any multiplayer server other than those listed in Section 2(c)
without prior written permission from the Author. This applies to public,
private, password-protected, unlisted, test and event servers, and to
server-side-only use.
4. REQUESTING PERMISSION
Requests must be sent through the Lost Hope Survival Discord:
https://discord.gg/uDzYTTdsM6. Permission is valid only if
given in writing by the Author, applies only to the servers named in it,
and cannot be transferred or sublicensed.
5. NO REDISTRIBUTION
You may not reupload, mirror, repack, merge into another mod, or otherwise
redistribute the Content on any platform.
6. NO DERIVATIVES
You may not modify, adapt, decompile, extract assets or code from, or
create works based on the Content without written permission. Creating a
separate mod that lists the Content as a dependency is allowed only for
use on authorized servers.
7. NO COMMERCIAL USE
You may not sell the Content or use it in any context involving direct or
indirect financial gain, including servers with paid access, paid perks
or donation-based advantages.
7a. NO USE OUTSIDE BOHEMIA INTERACTIVE PRODUCTS
The Content may only be used within Arma Reforger and other Bohemia
Interactive products. It may not be transferred to, used in, or adapted
for any other game, engine or platform.
8. TECHNICAL MEASURES
The Content may include checks that limit its functionality to authorized
servers. Circumventing, disabling or removing these checks is prohibited.
9. TERMINATION AND REVOCATION
Any breach of this license automatically ends your rights under it. The
Author may revoke any granted permission at any time. After termination
or revocation, you must stop using the Content on any server immediately.
10. NO WARRANTY
The Content is provided "as is", without warranty of any kind. The Author
is not liable for any damage, data loss or server issues arising from its
use.
11. THIRD-PARTY CONTENT
Any third-party material included in the Content remains subject to its
own license, and nothing here overrides those terms.
12. CHANGES
The Author may update this license. The version shown on the Workshop
page is the one that applies.
13. SEVERABILITY
If any part of this license is found unenforceable, the rest remains in
effect.