DUXPLIMA Documentation

The folder model

What each folder in a package is for, and which copies are safe to edit.

A package has four top-level folders. Which folder a file is in decides where it ends up at runtime and who is allowed to see it.

ServerScriptService/
  uxrExampleSystem/            the package you dropped in
    init.server.luau           the bootstrap
    Shared/                    copied to ReplicatedStorage
      Config/Settings.luau     your settings
      Lib/                     Types, Util
    Server/                    stays here, never replicated
      Bootstrap.luau
      Net.luau
      ApiHandlers.luau
      PlayerLifecycle.luau
      Hooks.luau
      Services/ProfileService.luau
    Storage/                   moved to ServerStorage
      Assets/
    Client/                    ScreenGuis, copied to StarterGui
      uxrExampleSystemGui/
FolderEnds up inVisible to the clientEdit it?
SharedReplicatedStorage/<package>YesYes, here in the package
ServerStays in ServerScriptServiceNoYes, here in the package
StorageServerStorage/<package>NoYes, here in the package
ClientStarterGui/<package>GuiYesYes, here in the package

Only the ServerScriptService copy is real

At runtime you will see the same names in four places:

ServerScriptService / uxrExampleSystem      the source of truth
ReplicatedStorage   / uxrExampleSystem      a copy of Shared, rebuilt every start
ServerStorage       / uxrExampleSystem      Storage, moved every start
StarterGui          / uxrExampleSystemGui   a copy of the interface
Edits to the runtime copies are thrown away

The bootstrap destroys and recreates the ReplicatedStorage and ServerStorage copies on every single server start. If you edit settings in ReplicatedStorage because that is where you found them, your change survives until the next Play and then vanishes without a message.

Always edit inside ServerScriptService/<package>.

Server-only means server-only

Anything under Server/ is never replicated. That is the reason the reward code, the hooks file and the profile store live there: a player cannot read them, so they cannot be used to work out what an unclaimed reward is or to fake a grant.

The rule to carry into your own edits: if a file contains a secret, a payout, or logic a player would benefit from reading, it belongs under Server/.

Where your settings live

FileWhat it holds
Shared/Config/Settings.luauEvery toggle. Replicated, so treat it as public
Server/Hooks.luauOptional callbacks for your own analytics or effects
Product-specific server filesReward ladders, action lists, command tables

Settings are replicated because the interface reads them too. Do not put an API key or anything else private in there.

The interface

Client/<package>Gui is a ScreenGui. The CoreScript folder inside it is code and is managed by the product; everything else is design and is yours.

The bootstrap copies the ScreenGui into StarterGui only if a ScreenGui of the same name is not already there. That is what lets a designer keep an edited copy in StarterGui without the package overwriting it on every test.

Each product's Interface page lists the exact frames and buttons its code expects to find. Rename one of those and that part of the panel stops working; add or restyle anything else freely.