Let's talk "Code"
Advice : Developers ONLY!
WikiPage which describes each file in the source tree.
ROM.sh is the heart of ScriBt.
ScriBt="ROM.sh";
Files in src/ are Not Code - but are Informational Modules, which are required by ScriBt to execute any module.
ROM_NAME is the full name of a ROM, which is shown to the user.
ROMNIS - ROM Name In Source - eg. cm, lineage, aosp, full, etc.
src - Directory Structure
distro/[distro_codename].rc
  - Folder containing 
*.rc files for each Supported distro, named after the ID of each distro.
    
      ID as in the file /etc/os-release 
    
   
  - Contains Package-List assignments according to its Year of Release
 
info/*.rc
  rc files containing echo statements, which act as explanatory statements to certain prompts 
misc/banner.rc
  - Contains the ScriBt startup banner
 

Yeah, this one.
misc/device_types.rc
  - Consists of an array TYPES which contains various Device-Types
    
  
 
misc/intmake.rc
  - Contains the Content of the Apache2 License, which is included in Device-ROM Target makefiles
 
pkgs/Dxy.rc
  - Folder containing 
*.rc files which contain Package Lists according to the Year of Release
    
      xy denotes the Last two digits of Release Year 
      - Required for Ubuntu/Debian based GNU/Linux distributions
 
    
   
  - Arch Linux packages list is present in 
archcommon.rc 
roms/caf/[ROM_NAME].rc
  - Consists of Information on a ROM’s Source in GitHub (or any code-hosting website)
 
  - ROM present in here should be buildable for CAF (Qualcomm) devices, as well as for Pixel/Nexus Devices
 
  - Information required by a ROM
    
      - ROM’s GitHub Organization/User name (eg. LineageOS)
 
      - Name of ROM’s manifest repo (eg. android.git)
 
      - ROM’s codename (lineage)
 
      - If the ROM source contains both CAF as well as Non-CAF (Pure AOSP) sources, AND if their CAF branches contain the word ‘caf’ in it (DirtyUnicorns/NitrogenOS for instance), then a variable ‘CNS’ is required to be set to ‘y’ in this way
CNS="y"; 
    
   
roms/aosp/[ROM_NAME].rc
  - Same information as above, except for a change in Point 2
    
      - The ROM is buildable only for Pixel/Nexus Devices
 
    
   
utils/[binary_file]
  - Contains certain binaries which are required by the Tools Installer
    
  
 
strat/[ROMNIS].rc
  - Contains strategies to add a Device to a ROM vendor
 
  - Files are named after ROM’s codename
 
  - Non-CAF (AOSP) based ROMs - containing vendor/[ROM_NAME]/products folder require these strats
 
upScriBt.sh
  - A script which updates ScriBt to the latest version
 
  - Provides changelog from local tag to the latest tag
 
  - Inspired from JustArchi’s updater-code for the ArchiKitchen Project
 
  - Initially developed by me, re-written later by TimSchumi
 
dist_db.rc
  - Script to detect a distro and assign a package list according to its Version as well as its Year Of Release
 
color_my_life.rc
  - Script to provide colors to ScriBt
 
usage.rc