Jump to content

3 Screenshots

  • 1.2k
  • 94
  • 40.16 kB
  • Update details
    v1.0.4
    Released
    Download size40.16 kB
    Total versions7
    Time between versions 6 days
    Typical update pace About every 8 days
    Freshness 125 days ago

Works with

Compatible add-ons, packages, or tools that pair well with this resource.

About DynamicData

DynamicData — Configurez sans limites

« Plus aucune limite de configuration. Laissez libre cours à votre imagination. »

DynamicData automatise l'application de vos fichiers de données (JSON) pour Rust selon une chronologie relative à l'effacement.

Ajoutez vos profils (par plugin) , spécifiez quand ils doivent s'appliquer (par exemple, 2j4h, 6h30m, 1j@redémarrage) ,
et le plugin cible est rechargé avec la bonne configuration, immédiatement ou au prochain redémarrage.

Objectif :
moins d’opérations manuelles, moins d’erreurs, une progression de réinitialisation claire et amusante pour vos joueurs.

Points forts

  • Aucune limite : planifiez autant de profils que nécessaire, pour autant de plugins que vous le souhaitez.
  • Délai d'activation flexible : immédiat ou au prochain redémarrage (idéal pour les changements importants).
  • Progression naturelle des réinitialisations : rendez vos serveurs lisibles et motivants, dès le premier jour.
  • Conçu pour être compatible : fonctionne avec tous les plugins utilisant des fichiers de données.

Installation et démarrage rapide

image.png.dc34b78eb1c0d2dbbbba8b5e2f5a04a7.png

  1. Déposez DynamicData.cs dans oxide/plugins et (re)chargez-le.
  2. Préparez vos fichiers JSON pour chaque plugin.
  3. Placez-les sous oxide/data/DynamicData/<Plugin>/... avec un suffixe temporel (et @restart si souhaité).
  4. Démarrez le serveur : DynamicData applique et recharge automatiquement les plugins cibles aux moments opportuns.

Comment ça marche

Placez vos profils JSON ici :
oxide/data/DynamicData/<Plugin>/<Subfolder>/*.json
(par exemple, DynamicData/RaidableBases/Profiles/Medium_2d.json) .

Les fichiers comportent un suffixe temporel (\d+[dhms] peuvent être chaînés) et éventuellement @restart.
Exemples : Easy_6h.json, [email protected] .

DynamicData calcule chaque échéance à partir du Jour 1 (effacement) , ajoute une marge déterministe (quelques secondes) pour lisser les pics, puis copie le JSON vers l'emplacement de données du plugin cible et recharge ce plugin.

If @restart is present, the profile is marked READY and only applies at the next reboot (useful for big changes).

Structure & Naming

  • Dynamic root: oxide/data/DynamicData (real-time watch on *.json).
  • Destination: the base name (without the time suffix) becomes the final data file for the plugin
  • (e.g., Profiles/Medium_2d.json ⇒ oxide/data/RaidableBases/Profiles/Medium.json).
  • Valid suffixes: concatenations of d/h/m/s (e.g., 2d4h30m, 45m, 10s).
  • Add @restart to force application on reboot.

⚠️ Important — Match the Target Plugin’s Official Directory Structure 

DynamicData applies your files only if the tree under
oxide/data/DynamicData/<Plugin>/... mirrors exactly what the target plugin expects under
oxide/data/<Plugin>/....

Golden rule
Everything after <Plugin>/ in DynamicData must be the exact same path as in oxide/data/<Plugin>/...
(same folders, same case, same filename).

Concrete Examples

oxide/data/DynamicData/RaidableBases/Profiles/Easy.json
    <- Default config (Important to place if you want a default config loaded)

oxide/data/DynamicData/RaidableBases/Profiles/Medium.json+12h
    <- Config loaded after 12h of wipe

oxide/data/DynamicData/RaidableBases/Profiles/Hard.json+2d
    <- Config loaded after 2 days of wipe

oxide/data/DynamicData/RaidableBases/Profiles/Expert.json+4d@restart
    <- Config loaded after 4 days of wipe, only after a server restart

Raidable Bases Evolving Over the Wipe

 

  • Days 1–2: Easy + Medium profiles, 1 event, component-heavy loot; applied immediately at opening.
  • Days 3–5: Medium + Hard profiles, 2–3 events, T2/T3 loot; applied on next restart for a smooth transition.
  • Day 6+: Hard + Expert profiles, 3–4 events, rich loot (rare C4/Rockets), buffed NPCs; applied immediately on the morning of Day 6.

710a3d148ba99e920342d4324e109100.jpg.d9d07e95ad7e1a35ea66a3d4809670b0.jpg

One-Click Seasonal Pack

  • Halloween (Oct 24 → 31): “Spooky” bases, themed loot, NPC +25%; trigger with @restart on 10/24.

Other Plugins (any that read data files)

  • Kits: Starter (D1–D2), weekend farm promo (D3–D5), advanced kits (D6+).
  • BetterNPC: Calm day / Night +HP +accuracy / end-of-wipe heavy loadouts.
  • 152b39b073779effef7e1519c0e22eb2.jpg.7ee0e64546bbbf03ed22ba68195a0a3e.jpg
  • Loot tables: progressive T2/T3 ramp, event boosts.
  • NTeleportation: cooldowns and costs relax as the wipe progresses.
  • Skins/SkinBox: automatic seasonal whitelists; off-season ⇒ vanilla/server set.
  • image.png.5727055ad7a49985aa09f4d0500f94a5.png

Permissions

dynamicdata.admin — access to commands (authLevel 1+ also accepted).

oxide.grant group admin dynamicdata.admin

Commands (console/RCON)

dyndata.list – Shows Day 1 (wipe), last application, and next due time per plugin; marks [PAUSE] if applicable.
dyndata.simulate <duration|all|*> – Simulates upcoming applications up to a horizon (e.g., 1h, 30m, 2d, all). Useful to verify your plan.
dyndata.rescan – Immediate rescan of the DynamicData folder, applies what’s due, reschedules the rest.
dyndata.pause <Plugin> – Pauses a plugin (no applications while paused).
dyndata.resume <Plugin> – Resumes a previously paused plugin.

Configuration (oxide/config/DynamicData.json)

Available keys (defaults shown):

LogLevel: "info" — levels: quiet, info, verbose.
RateLimitPerMinute: 3 — limit of applications per minute (built-in queue).
JitterMinSeconds: 5, JitterMaxSeconds: 30 — deterministic jitter per plugin/file to avoid bursts.
MaxDataSizeBytes: 2000000 — max JSON size (safety).
DisplayTimeZone: "Europe/Paris" — timezone for logs/displays.
InterpretSaveCreatedAs: "auto" — how to interpret SaveCreatedTime if it lacks a timezone (auto, display-tz, server-local, utc).
WipeDetectPriority: ["signature","files","serverinfo"] — wipe detection order:
signature: seed/size/level change ⇒ wipe,
files: detect via .map/.sav timestamps,
serverinfo: SaveCreatedTime reported by the server.
FileDetectionWindowHours: 12 — analysis window for .map/.sav files.
FilePreGenToleranceHours: 2 — tolerance when files are pre-generated before boot.
FileClampToBoot: true — if needed, clamps Day 1 to boot time to stay consistent.
WipeLogShowUtc: false — also show UTC timestamps in wipe logs.
ReloadTargetPlugin: true — auto-reload target plugin after copying.
QuarantineStrayDynamicFiles: true — quarantines “stray” dynamic files in oxide/data/DynamicData.__quarantine__.

Conseil : utilisez dyndata.simulate 2d pour valider votre plan avant une réinitialisation réelle.

FAQ

Q : Cela ne fonctionne-t-il qu'avec certains plugins ?
A : Non, tout plugin qui utilise des fichiers de données (JSON) .

Q : Dois-je redémarrer à chaque modification ?
R : Non. Choisissez « immédiat (en direct) » ou « @restart » . Le plugin cible se recharge automatiquement.

Q : Que se passe-t-il si je veux revenir en arrière ?
R : Conservez vos profils intermédiaires (début/milieu/fin/saisonnier) et réactivez le précédent pour revenir à l'état souhaité.

Q : Impact sur les performances ?
R : Les applications sont occasionnelles, les rechargements sont ciblés, la limite de débit est configurable — impact négligeable pour un serveur standard.

 

  • Like 1
  • Love 2

User Feedback

About Us

Codefling is the largest marketplace for plugins, maps, tools, and more, making it easy for customers to discover new content and for creators to monetize their work.

Downloads
2.3m
Total downloads
Customers
10.7k
Customers served
Files Sold
154.8k
Marketplace sales
Payments
3.3m
Processed total
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.