Sk0rs Server Bible

by Sk0r91

1.1.3

CHANGED: MOD GROUPS START CLOSED
--------------------------------
Opening the Instructions or Settings folder now shows every mod's group closed, so you open the one mod
you need right away. The folder's first page is still shown on the right.
Game Version
1.8.0.13
Created
Wed, 14 Oct 2026 12:16:39 GMT
Last Modified
Wed, 14 Oct 2026 12:16:42 GMT

1.1.2

NEW: MOD GROUPS OPEN AND CLOSE
------------------------------
In the Instructions and Settings folders every mod has its own group, headed by the mod's name. A click on
that name now opens or closes the group, like a folder ("+" closed, "-" open).

- Groups start closed, so the list stays short however many mods add pages.
- Opening a folder shows its first page and opens that page's group.
- The groups you opened stay open until you close the menu.
- With a controller the mod name can be marked and opened with A like any other entry.


CHANGED: AUTO-OPEN ON JOIN IS OFF BY DEFAULT
--------------------------------------------
A new config starts with AutoOpenOnJoin: false - the menu no longer opens by itself after joining unless
you switch it on (in Sk0rsSB_Config.json or in the Bible Manager).

- Your existing config keeps the value it has. If the menu opens on join on your server today, it still
  does.


CHANGED: MORE ROOM FOR PICTURES BY DEFAULT
------------------------------------------
A new config starts with ImageTotalMaxKB: 16384 (16 MB for all pictures together) instead of 4096. Since
1.1.0 a player only downloads the pictures of the page being read, so the larger total costs nothing on
joining.

- Your existing config keeps the value it has. Raise it by hand or in the Bible Manager if you want.
- The limit per picture is unchanged (default 128 KB, at most 512 KB).


CHANGED: LOOK OF THE WINDOW
---------------------------
The light page now reaches under the dark menu box instead of standing beside it with a gap, so the page
looks as if it comes out from below the menu. Header, text and footer are exactly where they were.


Update the Bible Manager to 1.1.2 together with this version.
Game Version
1.8.0.13
Created
Mon, 12 Oct 2026 18:13:35 GMT
Last Modified
Mon, 12 Oct 2026 18:13:46 GMT

1.1.1

FIXED: SERVER DID NOT START WITH A LARGE MOD SET
------------------------------------------------
On servers with many mods the game could fail to start with "Can't compile "Game" script module" and
"Too many instructions per function". The mod no longer adds to the limit behind that error.
Game Version
1.8.0.13
Created
Sun, 11 Oct 2026 18:06:40 GMT
Last Modified
Sun, 11 Oct 2026 18:07:25 GMT

1.1.0

Game Version
1.8.0.13
Created
Sat, 10 Oct 2026 19:56:46 GMT
Last Modified
Sat, 10 Oct 2026 19:57:27 GMT

1.0.10

Game Version
1.8.0.13
Created
Sat, 10 Oct 2026 16:54:50 GMT
Last Modified
Sat, 10 Oct 2026 16:55:04 GMT

1.0.9

NEW: A SETTINGS FOLDER FOR MODS
-------------------------------
The menu has a second built-in folder next to Instructions: Settings. Other mods put their settings pages
into it, listed by mod.

- You only see the folder while at least one mod on your server uses it. Without such a mod nothing
  changes in your menu.
- Its line in PageOrder (Sk0rsSB_Settings) is added automatically and is always there. Move it to move
  the folder, hide it with "Active": false, and set who may open the settings with "Access".
- Default: GM. Everyone who is logged in sees the folder, normal players don't.
- Whoever sees the folder sees every settings page in it.
- Like Instructions it can't be renamed, and nothing else can be put into it.


NEW LOOK FOR CHECK BOXES AND SLIDERS ON MOD PAGES
-------------------------------------------------
The check box and the slider that mods can put on their pages were hard to see. They are now in the
Server Bible's own look:

- Check box: a small box with a thin frame and dark text next to it. Off: grey frame, empty inside.
  On: orange frame with an orange square inside. A click on the box or on its text switches it.
- Slider: orange, with its value in dark text right of it. The number follows the knob while you drag.


FOR MODDERS
-----------
- Sk0rsSB_SliderElement has new fields: Step (the knob snaps to steps), ValueFormat (e.g. "%1 KB"),
  Decimals and ShowValue. Without them a slider just shows its number.
- Sk0rsSB_ToggleElement has SetText(label). The toggle is a button now, no longer the engine's check box;
  nothing changes in your code.
- Sk0rsSB_API.RegisterSetting("My Mod", page) adds a settings page to the folder - a normal Sk0rsSB_Page,
  usually with Elements. Sk0rsSB_API.UnregisterSetting(page) removes it.
- The page has no access level of its own and no line in the config.
- Sk0rsSB_API.MayUseSettings(playerId) tells your SERVER code whether a player may use the Settings folder.
  Check it before you apply a setting on the server - the menu only hides the page.
- Registering on the client is enough; on the server too only for JPG files from the img folder.
- The guide "Modding API" has a new section "Adding A Settings Page".
Game Version
1.8.0.13
Created
Mon, 05 Oct 2026 10:17:17 GMT
Last Modified
Mon, 05 Oct 2026 10:17:31 GMT

1.0.8

ONE SETTING INSTEAD OF TWO: ACCESS
----------------------------------
"GMOnly" and "AdminOnly" are gone. Every page and folder now has one setting:

  "Access": "All"      everyone
  "Access": "GM"       everyone who is logged in on the server
  "Access": "Admin"    logged in AND on the server's admins list

- A page has it in its page file, a folder in its PageOrder line.
- Your existing pages and folders are converted automatically on the first start. Nothing to do.
- A text that is none of the three counts as Admin, and the server log tells you which entry it is.


YOU DECIDE WHO SEES A MOD'S PAGE
--------------------------------
Pages and folders that other mods add - the Bible Manager, for example - now show their Access in their
PageOrder line. The mod only sets the starting value. Change the line and your value stays, also after
a restart or an update of that mod.


INSTRUCTIONS IS A FOLDER NOW
----------------------------
- The Instructions entry is a folder that lists the guides. It works as before: click to open, click a
  guide to read it.
- Its line in PageOrder (Sk0rsSB_Instructions) decides the rest: move it, hide it with "Active": false,
  and set who reads the guides with "Access". Its name is fixed.
- NEW DEFAULT: GM. Everyone who is logged in sees the guides, normal players don't.
- The guides no longer have a level of their own: whoever sees the folder sees all of them.
- The "Instructions" block in the config is removed. If you had set it to Active false or AdminOnly,
  that is taken over.


AUTOMATIC UPDATE
----------------
On the first start with 1.0.8 the config is updated from Rev 14 to Rev 15. With SaveOldConfig on, the old
config is kept as Sk0rsSB_Config_rev14.json. Page files with the old switches are written again with
"Access".


FIXED
-----
- Deleting Sk0rsSB_Config.json while the server (or Workbench) keeps running no longer brings old folders
  and settings back: the new config starts clean.


FOR MODDERS - BREAKING
----------------------
- Sk0rsSB_Page.GMOnly and Sk0rsSB_Page.AdminOnly no longer exist. Use page.Access = "GM"; ("All", "GM",
  "Admin"). A mod that still sets the old fields does not compile.
- page.Access of a registered page is the START value of its PageOrder line. The server admin can change it.
- Sk0rsSB_API.GetEffectiveLevel("YourPageId") returns the level in force for your entry (its own line and
  everything it sits below). Check your server requests with it:
    Sk0rsSB_Access.GetPlayerLevel(playerId) >= Sk0rsSB_API.GetEffectiveLevel("YourPageId")
- RegisterFolder has an optional fourth parameter: the folder's starting Access.
- A guide's Access is not used any more; guide.Active still hides a guide.
- Sk0rsSB_Access.CanLocalPlayerSee now takes a level; RequiredLevel(bool, bool) is gone.
Game Version
1.8.0.13
Created
Mon, 05 Oct 2026 08:44:56 GMT
Last Modified
Mon, 05 Oct 2026 08:45:06 GMT

1.0.7

NEW
---
- Controller support. The Server Bible can be opened, read and closed with a gamepad:
    Left stick / D-pad   move the marker
    A / Cross            use the marked entry, button or link
    LB / RB (L1 / R1)    switch between the menu on the left and the page
    Right stick          scroll the active side (menu or page)
    B / Circle           one step back; in the menu it closes the Server Bible
- Sliders and text fields on a page are used with A and released with B. On a console, A on a text field
  opens the on-screen keyboard.
- The Login window can be used with a gamepad.
- A line at the bottom right shows what the buttons do at the moment.

FOR MODDERS
-----------
- Pages with content of their own can take part in "back": override Sk0rsSB_OnBack() in your
  Sk0rsSB_CustomSectionProvider and return true when your content went back a step by itself.
- Sk0rsSB_Gamepad.SetScope() limits the gamepad to a part of your content, MarkFirstIn() puts the marker
  into it, IsInUse() tells whether a gamepad is being used. SetModal() marks a window of yours that is only
  looked at and closed with B.
Game Version
1.8.0.13
Created
Sun, 04 Oct 2026 19:56:55 GMT
Last Modified
Sun, 04 Oct 2026 19:58:33 GMT

1.0.6

Game Version
1.8.0.13
Created
Sun, 04 Oct 2026 13:59:21 GMT
Last Modified
Sun, 04 Oct 2026 13:59:50 GMT

1.0.5

Game Version
1.8.0.13
Created
Sun, 04 Oct 2026 12:55:53 GMT
Last Modified
Sun, 04 Oct 2026 12:56:17 GMT

1.0.4

LOGIN BUTTON
------------
- If you are on the "admins" list of the server's config.json, you can leave the password field empty and
  just click Login. Everyone else still needs the admin password.


THE MENU UPDATES LIVE
---------------------
The open menu no longer closes and opens again to show something new. It updates in place:

- An admin saves in the Bible Manager, uploads or deletes a picture, or the server reloads changed files
  (auto-reload): every player who has the Server Bible open sees the change at once.
- You log in or out - with the Login button or with #login / #logout in the chat: your menu shows what you
  may see now. Closing and opening the menu after a chat login is no longer needed.
- Entries that are new fade in, entries that are gone fade out. The page you are reading stays where you
  are; it is only shown again - with a short fade - if its content changed.
- If the page you are reading is no longer there for you, the first page you may see is shown.


GM AND ADMIN CONTENT IS NOW REALLY PROTECTED
--------------------------------------------
Until now "GMOnly", "AdminOnly" and "Active": false only hid entries in the menu - the server still sent
every page to every player. Now the server sends a player only what their level may see:

- Pages from the Pages folder that are for GMs or admins, with everything below them.
- The names of such pages and folders - a player doesn't learn that they exist.
- The pictures used on them.
- A page with "Active": false is sent to nobody. The Bible Manager still lists and edits it.

After a login the menu gets the rest from the server by itself.

Not protected: pages and guides that other mods add (and the Server Bible's own guides). Their content is
part of the mod every player has loaded - for them the switches still only hide the entry.


FOR MODDERS
-----------
- Sk0rsSB_Menu.Refresh() asks the server for the current state and updates the open menu in place.
- A page of your mod is never built again by such an update - its elements keep their state. To bring your
  own content up to date, listen: Sk0rsSB_Menu.GetOnRefreshed().Insert(YourFunction);
Game Version
1.8.0.13
Created
Sun, 04 Oct 2026 12:22:53 GMT
Last Modified
Sun, 04 Oct 2026 12:23:31 GMT

1.0.3

SUB PAGES AND FOLDERS
---------------------
Pages can now sit below other pages, up to three levels deep - build a whole wiki in the menu:

  - Wiki
    - Vehicles
        Helicopters
        Tanks
    + Weapons
  + Server Info

- Give the PageOrder line of the sub page a "Parent" with the Id of the page it belongs to:
    { "Id": "20260923140003", "Name": "Vehicles", "Parent": "20260923140002" }
- A page with sub pages shows a + in the menu. A click opens the page and lists its sub pages.
- A folder is a menu entry without a page that only opens and closes. It is a PageOrder line with
  "Folder": true, an Id of your choice and the Name shown in the menu:
    { "Id": "Wiki", "Name": "Wiki", "Folder": true }
- Only the branch you are in is open, so the menu stays short.
- A folder can be hidden or limited to game masters or admins, like a page: add "Active": false,
  "GMOnly": true or "AdminOnly": true to its line.
- A hidden page or folder hides everything below it. A folder without a visible page is not shown.
- If a "Parent" can't be used (unknown Id, a loop, a fourth level), the entry is shown on the top level
  or on the third level, and the server log says why about a minute after the server start.
- The Instructions page can be put below a page or into a folder too, but has no sub pages of its own.

Long names in the menu now wrap onto more lines instead of being cut off.


PLAYERS, GMS AND ADMINS
-----------------------
Pages, folders and guides can now be limited to one of three levels:

- Player: everyone.
- GM: everyone who is logged in on the server - with #login in the chat, or with game master rights.
- Admin: logged in AND on the "admins" list of the server's config.json.

- New switch "GMOnly": true shows an entry to GMs and admins. "AdminOnly": true still means admins only.
  A page has both in its file, a folder in its PageOrder line, the Instructions page in the Instructions block.
- CHANGED: someone on the admins list now has to log in (#login) before admin entries show up. Before, being
  on the list was enough. And a player who logs in with the admin password is now a GM - before, the Server
  Bible didn't notice that login at all.
- New Login button at the bottom of the menu: it opens a small field for the admin password and logs you
  in exactly like #login in the chat. Once you are logged in it becomes a Logout button. After a login or
  logout the menu opens again by itself and shows what you may see now.
- If you log in through the chat instead, close the menu and open it again.
- As before, these switches only hide entries in the menu - they are no protection for secret content.


ONE INSTRUCTIONS PAGE INSTEAD OF THREE
--------------------------------------
The three Instructions pages are now one built-in page: "Instructions". Click it in the menu and it
opens a list of guides right below it, grouped by mod:

  - Instructions
      SERVER BIBLE
        Formatting
        Links & Setup
        Modding API
      SOME OTHER MOD
        Getting Started

- Click a guide to read it. Click "Instructions" again to close the list.
- Other mods on your server can add their own guides to this page, so every manual is in one place
  instead of one menu entry per mod.
- The page is built into the mod. It has no file and its content can't be edited.
- The three Server Bible guides are for admins only. A player only sees guides meant for players - and
  if there are none, the "Instructions" entry isn't shown to them at all.


YOUR CONTROLS (NEW CONFIG BLOCK)
--------------------------------
  "Instructions": {
      "Active": true,
      "GMOnly": false,
      "AdminOnly": false
  }

- Active: false hides the Instructions page for everyone.
- GMOnly: true shows it to GMs and admins only.
- AdminOnly: true shows it to admins only.
- Position: the page has its own PageOrder line (Sk0rsSB_Instructions). It starts at the end of the
  menu - move it like any other line.


AUTOMATIC UPDATE
----------------
On the first start with 1.0.3:
- The config is updated from Rev 12 to Rev 14 (the Instructions block is added, PageOrder lines can
  have "Parent" and "Folder"). With SaveOldConfig on, the old config is kept as
  Sk0rsSB_Config_rev12.json.
- The three old Instructions page files are deleted, and their PageOrder lines are removed. They are
  recognised by their Id, wherever they are in the Pages folder. Changes you made to them are lost.
  The empty Pages/Instructions folder stays - delete it if you like.
- Your own pages are not touched. A page file of your own inside Pages/Instructions keeps working.
If one of the old files can't be deleted (read-only), the server logs a warning once per server start
and ignores the file.

If you had set the old Instructions pages to Active false or AdminOnly: nothing to do - the new guides
are admin-only by themselves.


FOR MODDERS
-----------
Add a guide to the Instructions page instead of a whole menu page:

  Sk0rsSB_Page guide = new Sk0rsSB_Page();
  guide.MenuLabel = "Getting Started";
  guide.Header.Text = "My Mod - Getting Started";
  // Sections like on any page
  Sk0rsSB_API.RegisterGuide("My Mod", guide);

- A guide is a normal Sk0rsSB_Page: text, links, images, Elements and CustomContent all work.
- The first parameter is the heading your guides are listed under.
- guide.AdminOnly = true: only admins see the guide.
- guide.GMOnly = true: game masters and admins see the guide. The same switch exists on every page.
- The Dropdown element has a new look: the chosen option between an arrow left and an arrow right, no box.
  It is as wide as its widest option. Nothing changes in your code; the new field Width sets a fixed width.
- Buttons now really change colour under the mouse. A button layout of your own needs its background
  panel to be named "Background" for that.
- Registering on the client is enough. Register on the server too only if the guide uses JPG files from
  the server's img folder.
- Sk0rsSB_API.UnregisterGuide(guide) removes it again.

Put a page below another entry, or share a folder with other mods:

  Sk0rsSB_API.RegisterSubPage(page, "MyMod_Main");

  Sk0rsSB_API.RegisterFolder("Settings", "Settings");
  Sk0rsSB_API.RegisterSubPage(page, "Settings");

- The second parameter of RegisterSubPage is the Id of the parent: your own main page, a folder or any
  other page.
- Every mod that registers the folder Id "Settings" gets the same folder.
- Parent and folder name are start values for the PageOrder line. Afterwards the admin decides.
- Register on the server too, within 60 seconds after the game started - as for every page.
The guide "Modding API" explains all of it in the game.
Game Version
1.8.0.13
Created
Sun, 04 Oct 2026 09:55:57 GMT
Last Modified
Sun, 04 Oct 2026 09:56:35 GMT

1.0.2

PICTURES STRAIGHT FROM THE SERVER - NO WORKBENCH IMPORT NEEDED
---------------------------------------------------------------
Put JPG files into the new img folder next to the config and use them on any page:

  $profile:QoL Sk0r/Server Bible/
      Sk0rsSB_Config.json
      Pages/
      img/
          banner.jpg
          maps/
              north.jpg

  <img>banner.jpg</img>
  <img>maps/north.jpg | 400 | 200 | Center</img>

- Just the file name (subfolders allowed) - no GUID, no Workbench import, no mod update.
- The server sends the pictures to every player by itself. The first time a player joins they load
  in the background and appear a moment later; after that they come straight from the player's own
  cache. A picture you replace on the server is downloaded again automatically.
- JPG only (.jpg / .jpeg). The game can't load PNG or other raw picture files from disk, so save them
  as JPG first. Transparency is not possible here - for a transparent logo, import it into a mod through
  Workbench and use its {GUID} path as before.
- Works everywhere an image works: in page text, as Header image and as Footer image.


AUTOMATIC PICTURE SIZE
----------------------
For pictures from the img folder the size is optional:
- no size: the picture is shown at its real size
- only a width  (<img>banner.jpg | 400</img>):    the height follows the picture's proportions
- only a height (<img>banner.jpg | | 200</img>):  the width follows the picture's proportions
- both: exactly that size
In Header and Footer, ImageWidth / ImageHeight 0 mean "work it out" the same way.


HEADER & FOOTER IMAGES ALWAYS FIT
---------------------------------
A Header or Footer image never takes more than 90% of its bar's height. A taller one is shrunk evenly,
keeping its proportions, so nothing gets squashed. This applies to {GUID} textures too - an existing
oversized header/footer image now fits its bar. The Footer text still makes room for the image
automatically.


SIZE LIMITS (NEW CONFIG KEYS)
-----------------------------
- ImageMaxKB: largest allowed picture file (default 128 KB, max 2048 KB)
- ImageTotalMaxKB: all pictures used on your pages together (default 4096 KB). Pictures past the limit
  are skipped, in menu order.
A picture that is missing, too large or over the total limit shows a red note on the page instead,
e.g. [Image not found: banner.jpg] or [Image too large: banner.jpg (212 KB, max 128 KB)]. A file the
game can't read at all shows [Image could not be loaded: banner.jpg]. The server log names the file too.


LINKS & IMAGES ARE NOW WRITTEN DIRECTLY INTO THE TEXT
-----------------------------------------------------
Links and images no longer need a separate "Links" / "Images" list. Everything goes straight into the
tag inside a page's Body text:

  <link>https://example.com | Example Link | Center</link>
  <img>banner.jpg | 400 | 200 | Center</img>
  <img>{GUID}UI/Textures/MyPicture.edds | 203 | 64 | Center</img>

- Link: web address | button text | position (Left, Center or Right)
- Image: file name or resource path | width | height | position
- The parts are separated by a | character. Only the first part is required:
  - Without a position, the button/image sits on the left.
  - A link without text shows the address itself on the button.
  - A {GUID} image without a size is shown at 200x200 (img-folder pictures: see above).


SEVERAL BUTTONS IN ONE ROW
--------------------------
Links written one after another, with only spaces between them, now sit side by side in one row
instead of each getting its own line:

  <link>https://discord.gg/yourinvite | Discord</link> <link>https://example.com | Website | Right</link>

Every button keeps its own position: Left ones line up on the left, Center ones in the middle, Right
ones on the right. A full row wraps onto a new line by itself. A <br/> between two links puts the
next one in a new row; any other text between them does the same.


IMAGES SIDE BY SIDE & TEXT AROUND IMAGES
----------------------------------------
Images written one after another, with only spaces between them, now share a row like link buttons.
Text written directly after a single image flows around it:

  <img>banner.jpg | 200 | 150</img>This text starts next to the picture...

- Left / Right image: the text starts beside it and uses the full width again below it.
- Center image: the text sits centered below it as a caption, as wide as the picture, up to the first
  <br/>.
- A <br/> right after the image keeps the text below it, as before.
- If the text is shorter than the image, whatever comes next starts below the image.
- A row of several images never has text flowing around it.


WRONG TAGS ARE NOW VISIBLE
--------------------------
If a link or image tag can't be read, the page shows a red note in its place, e.g.
[Invalid link: Discord], including what's written inside the tag. That's the case if:
- the address doesn't start with http:// or https://
- the image path is neither a {GUID} path nor a .jpg / .jpeg file name (file names can't contain
  "..", a backslash or a colon)
- a width or height isn't a whole number above 0
- the tag has more | parts than allowed
Players see the note too, so check your pages after editing them. An unknown position is not an
error: the button or image just sits on the left.


FIXED
-----
- A # followed by letters or numbers in page text (e.g. "#2" or "#rules") is now shown as written.
  Before, the game treated it as a translation key, and the log filled with "Missing string ID" warnings.
  This covers page text, headings, code blocks, menu labels, link buttons and header/footer text.
- A stray space around a Header/Footer ImagePath no longer makes the picture "not found".
- Switching to another page now starts at the top. Before, the new page kept the scroll position of
  the page you came from.
- The line under the header is now always visible. Before, it disappeared on screens or windows lower
  than 1080 pixels.


INSTRUCTIONS PAGES
------------------
The "Links & Setup" Instructions page explains all of the above with live examples, including the new
"Image Size And Format" and "Images Side By Side & Text Around Images" sections. The Instructions pages
update themselves automatically; your MenuLabel, Active and AdminOnly settings are kept.


NEW EXAMPLE PAGE
----------------
A fresh install now creates one "Example Page" instead of the "Welcome" and "Server Rules" pages. It
shows everything a page can do, live: headings, bold/italic, paragraphs, colors, lists, code blocks,
link buttons in every position and in rows, images in every position and in rows, text flowing
around Left/Right images, a caption under a Center image, a heading-only section, and a Header and
Footer with images. Existing servers keep their Welcome/Server Rules page files; they belong to you
and are not touched.


FOR MODDERS
-----------
Pages registered through Sk0rsSB_API.RegisterPage can use img-folder pictures too, as long as the page
is also registered on the server (that's where the list of pictures to send is built).

Pages of other mods can now be put anywhere in the menu. The server gives every registered page its own
line in PageOrder (marked "Mod": true), at the end of the list; move that line like any other and the
page stays there, also after a restart. For this a mod has to:
- give its page a fixed Id (e.g. page.Id = "MyMod_Stats"), otherwise the MenuLabel is used
- register the page on the server too, not only on the client, right when the game starts
60 seconds after the server start, the lines of pages that are no longer registered are removed.
Sk0rsSB_API.RegisterPage(page, true) registers a page that always stays the last menu entry.


!! ACTION NEEDED FOR SERVER ADMINS !!
-------------------------------------
The "Links" and "Images" lists in Sk0rsSB_Config.json and in the page files have been removed.
Old tags that only contain a name, like <link>Discord</link> or <img>My Logo</img>, now show the
red "Invalid" note. Rewrite them in the new form, e.g.:

  old:  <link>Discord</link>
  new:  <link>https://discord.gg/yourinvite | Discord</link>

Your old URLs and image paths are still in the Links/Images lists of your page files (they're simply
ignored now), and, if SaveOldConfig is on, in the backup copy Sk0rsSB_Config_rev9.json. Copy them from
there, then delete the old lists whenever you like.

Also check pages where text is written directly after an image (no <br/> in between): that text now
flows beside the image (Left/Right) or becomes a caption under it (Center). Add a <br/> after the
image if you want the old layout back.


AUTOMATIC CONFIG UPDATE
-----------------------
On the first start with 1.0.2 the config is updated from Rev 9 to Rev 12: the Links/Images lists are
removed and ImageMaxKB / ImageTotalMaxKB are added with their defaults. The img folder is created
automatically. With SaveOldConfig on (the default), the old config is kept as Sk0rsSB_Config_rev9.json.
Page files are not touched.
If the config can't be written (e.g. no write permission), the server logs a warning and keeps
running with the old file. Your pages stay visible.
Game Version
1.8.0.13
Created
Thu, 01 Oct 2026 15:44:07 GMT
Last Modified
Thu, 01 Oct 2026 15:44:52 GMT

1.0.1

PAGES NOW LIVE IN THEIR OWN FILES
---------------------------------
Pages are no longer stored inside Sk0rsSB_Config.json. Every page now has its own JSON file in a new
Pages folder next to the config:

  $profile:QoL Sk0r/Server Bible/
      Sk0rsSB_Config.json
      Pages/
          Welcome.json
          Server Rules.json
          ...
          Instructions/
              Instructions Formatting.json
              Instructions Links & Setup.json
              Instructions Modding API.json

- Adding a page: copy any page file, give it a new file name and empty its Id ("Id": ""). The server
  gives it a fresh Id on its own and adds it to the end of the menu.
- Removing a page: delete its file. Its menu entry is cleaned up automatically.
- Every page file gets a unique Id. Copied files with a duplicate Id automatically receive a new one.
- New in the config: PageOrder. It sets the menu order, with one line per page (Id + Name). Move a
  line up or down to reorder the menu. Name is filled in automatically from the page's MenuLabel.


AUTO RELOAD
-----------
New "AutoReload" section in the config (Enabled / IntervalSeconds / DebugLog). The server re-scans
the Pages folder at a set interval, 15 minutes by default (min 10 s, max 24 h). New page files get
an Id and a PageOrder entry, and deleted ones are removed. You don't need a restart to add or remove
pages.


LOCAL LINKS & IMAGES PER PAGE
-----------------------------
Every page file can now have its own "Links" and "Images" lists in addition to the global ones in
the config. <link>Label</link> and <img>Label</img> check the page's own list first. If the same
Label exists in both, the page's own entry wins.


SELF-UPDATING INSTRUCTIONS PAGES
--------------------------------
The three built-in Instructions pages now live in Pages/Instructions/ and are versioned. When a
mod update brings new Instructions text, only their content (Header, Footer, Sections, their own
Links/Images) is replaced. Your MenuLabel, Active and AdminOnly settings are kept. Deleted
Instructions files come back on their own. To hide them, use "Active": false.
The Instructions text has been rewritten to explain the new Pages folder, PageOrder, AutoReload and
local vs. global Links/Images.


AUTOMATIC MIGRATION OF YOUR EXISTING CONFIG
-------------------------------------------
On the first start with 1.0.1, your existing config is converted automatically:
- A copy of the old config is always saved first as Sk0rsSB_Config_rev8.json, regardless of the
  SaveOldConfig setting. If that copy can't be written, nothing is changed.
- Every page from the old config becomes its own file. The PageOrder keeps your old menu order.
- Your global Links and Images stay in the config unchanged.
- The migration never deletes anything.


NEW FOR MODDERS: INTERACTIVE ELEMENTS API
-----------------------------------------
Sections can now contain interactive, Bible-styled controls with no UI code of your own:
Label, Button, Toggle, TextInput, Dropdown and Slider.

- Add them via the new Sk0rsSB_Section.Elements list (e.g. Sk0rsSB_ButtonElement,
  Sk0rsSB_ToggleElement, ...).
- React to player input by extending the matching handler class (Sk0rsSB_ButtonHandler,
  Sk0rsSB_ToggleHandler, Sk0rsSB_TextInputHandler, Sk0rsSB_DropdownHandler, Sk0rsSB_SliderHandler).
  Your callback always receives the element's current value.
- Change values at any time from your own code (SetText, SetValue, SetOptions, SetSelectedIndex,
  SetEnabled). If the page is open, the change shows up immediately. If not, it shows up the next
  time the page is opened.
- Mixed use: from inside your own Sk0rsSB_CustomSectionProvider you can call
  Sk0rsSB_Elements.BuildButton / BuildToggle / ... to embed standard Bible controls in a fully
  custom layout.
- The Bible never runs your logic itself. It only displays the elements and calls your handlers.
The Modding API Instructions page documents all of this with examples.


IMPROVEMENTS & FIXES
--------------------
- Fixed: The menu could stop opening from the pause menu after a server sync request was lost
  (e.g. after rejoining). A lost request now times out after 5 seconds.
- Fixed: AutoOpenOnJoin could only open the menu once per game launch. It now works again on every
  new session / server join.
- Clients no longer read or write any Server Bible files. Only the server touches the disk and sends
  everything to the players.
- If the config or a page file contains invalid JSON, the server logs an error and keeps using the
  last valid version. Clients are unaffected and the menu keeps working. Broken page files are
  simply skipped until they are fixed.
- Extra entries in a page file (e.g. a "_comment" line) are ignored instead of causing errors.
- Various robustness fixes (null-safety, UTF-8 BOM handling in hand-edited files).
Game Version
1.8.0.13
Created
Thu, 24 Sep 2026 02:47:10 GMT
Last Modified
Thu, 24 Sep 2026 02:47:19 GMT

1.0.0

Game Version
1.8.0.13
Created
Sun, 20 Sep 2026 13:07:20 GMT
Last Modified
Sun, 20 Sep 2026 13:07:31 GMT

Showing 1 to 15 of 15 results

Rows per page