1.) Auto-run at Windows startup and the auto-login feature have been added.
2.) Tick the checkbox "Run On Startup" while logging in to the FLG application to activate auto-startup and auto-login.
New year offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com
From 10th December 2025, SRv1.5 and SRv2 routes can't be purchased or downloaded from https://fastlinegames.com. SRv1.5 and SRv2 routes have been transferred to https://indiantrainsim.com/. If you have already purchased those routes from FLG, then you can contact the ITS site owner or route owner to get access and download files from https://indiantrainsim.com/.
Due to some UPI payment issues, we are extending our offer for 3 more hours. The new offer timing is 10AM to 1PM on 20-10-2025. Please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com
Diwali offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com
Purchase has been resumed with the manual payment method system; only IMPS and UPI are acceptable. Please read the terms before placing any order. blob tree template
Independence Day offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com
Grab the best deal on Train Simulator Classic 2024 visit : https://store.steampowered.com/app/24010/Train_Simulator_Classic/
Signals and NRv1 Route update has been released with total 11 Quick Drive scenarios.
Please be aware that (FLG Website/FLG Application) will be unavailable from (28-06-2025 8:00PM) to (29-06-2025 4:00AM) to scheduled maintenance at this time.
During this time, use Offline Login which is provided in the FLG application. When the maintenance is complete, services will be restored.
Anniversary offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com // generate SVG path string (simple blob shape
A new route, ECR (ARA - JHAJHA) by VISHVAKARMA is now available. Check product page for more information: https://upanel.fastlinegames.com/addons.php?action=viewProduct&id=67
A new update is available for Tracks, Signboard, and Advance OHE. Check product page for more information: https://upanel.fastlinegames.com/addons.php?action=viewProduct&id=1
Holi offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com
A new route, KERALA V2 ERS - CLT - MAQ by MUHAMMED SAVAD is now available. Check product page for more information: https://upanel.fastlinegames.com/addons.php?action=viewProduct&id=66
New year offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com How do you relate
Signals and NRv1 Route update has been released with 8 Quick Drive scenarios.
25% to 50% Off on MG Addons and Routes, 28 Nov to 30 Nov, Time: 00:00 to 23:59
FLG product prices will be increased by 10% from 1st January 2025.
Diwali offer has been announced, please check the countdown and offer timing on FLG main webpage: https://fastlinegames.com
// generate SVG path string (simple blob shape based on given path) function renderBlobSVG(pathData, idNum) // random pastel fill based on ID to keep distinct friendly look const colors = ["#FFB77C", "#FFA56E", "#F7B787", "#FEC196", "#FDAC6A", "#F6BD8C", "#FEC68B"]; const fillColor = colors[idNum % colors.length]; return `<svg class="blob-svg" viewBox="0 0 100 90" xmlns="http://www.w3.org/2000/svg"> <path d="$pathData" fill="$fillColor" stroke="#D48C54" stroke-width="1.2" stroke-linejoin="round" /> <circle cx="38" cy="42" r="3" fill="#4F2D14" /> <circle cx="62" cy="42" r="3" fill="#4F2D14" /> <path d="M44 54 Q50 62 56 54" stroke="#5D341B" stroke-width="2" fill="none" stroke-linecap="round" /> </svg>`;
<div class="response-panel" id="responsePanel"> <div class="selection-display"> <span>🌱 Currently selected:</span> <span class="blob-name" id="selectedBlobName">— none yet —</span> </div> <div class="emotion-note" id="emotionNote"> 💭 Tap on a blob to reflect. Each character represents a different mood or social dynamic. </div> <textarea id="reflectionInput" rows="2" placeholder="Write your reflection, journal entry, or share how you relate to this blob..."></textarea> <button id="saveReflectionBtn">📘 save note</button> <div style="font-size: 0.7rem; margin-top: 8px; color:#b48a54;" id="saveMessage"></div> </div> <footer> 🧸 Blob Tree method inspired by Pip Wilson · use for teams, classrooms, therapy </footer> </div>
// update panel document.getElementById("selectedBlobName").innerHTML = `$blob.name (blob #$blob.id)`; document.getElementById("emotionNote").innerHTML = `💭 "$blob.emotion" — $blob.name often represents $blob.emotion.split(',')[0] feelings. How do you relate?`;
// branch display mapping (order + titles) const branchConfig = [ key: "canopy", label: "🌿 CANOPY · high energy & visibility" , key: "middle-left", label: "🌘 LEFT MID · inner tension & quietness" , key: "middle-right", label: "☀️ RIGHT MID · expressive & reactive" , key: "lower-ground", label: "🍂 LOWER · withdrawn, grounded or tired" , key: "top-solo", label: "✨ TOP · spotlight / leadership" ];
.branch-title text-align: center; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1.5px; color: #b97f48; margin-bottom: 24px; background: #fff2e2; display: inline-block; width: 100%; padding: 6px 0; border-radius: 60px;
function persistData() localStorage.setItem("blobtree_notes", JSON.stringify(savedNotes)); if (currentSelectedId) localStorage.setItem("blobtree_selected", currentSelectedId);
.sub color: #7a4a28; border-left: 4px solid #ffb46e; padding-left: 18px; margin: 12px 0 28px 0; font-weight: 500; font-size: 1rem;
.selection-display font-size: 1.3rem; font-weight: 600; color: #2c1a0c; display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; justify-content: space-between;
function selectBlob(blobId) const blob = blobData.find(b => b.id === blobId); if (!blob) return; currentSelectedId = blobId;
.blob-item.selected .blob-number background: #ffaa44; color: white; border-color: #ff8800; box-shadow: 0 0 0 2px white;
body font-family: 'Segoe UI', 'Quicksand', system-ui, -apple-system, 'Helvetica Neue', sans-serif; background: linear-gradient(145deg, #f9f3e6 0%, #fff0e0 100%); margin: 0; min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px;
function init() loadPersistedNotes(); buildTreeUI(); // after building, trigger selection to display current selected or default if (currentSelectedId) selectBlob(currentSelectedId); else // if nothing selected, default to blob 1 selectBlob(1); document.getElementById("saveReflectionBtn").addEventListener("click", () => saveCurrentReflection(); persistData(); ); // optional: auto-save on textarea blur document.getElementById("reflectionInput").addEventListener("blur", () => if (currentSelectedId) savedNotes[currentSelectedId] = document.getElementById("reflectionInput").value; persistData(); );
// generate SVG path string (simple blob shape based on given path) function renderBlobSVG(pathData, idNum) // random pastel fill based on ID to keep distinct friendly look const colors = ["#FFB77C", "#FFA56E", "#F7B787", "#FEC196", "#FDAC6A", "#F6BD8C", "#FEC68B"]; const fillColor = colors[idNum % colors.length]; return `<svg class="blob-svg" viewBox="0 0 100 90" xmlns="http://www.w3.org/2000/svg"> <path d="$pathData" fill="$fillColor" stroke="#D48C54" stroke-width="1.2" stroke-linejoin="round" /> <circle cx="38" cy="42" r="3" fill="#4F2D14" /> <circle cx="62" cy="42" r="3" fill="#4F2D14" /> <path d="M44 54 Q50 62 56 54" stroke="#5D341B" stroke-width="2" fill="none" stroke-linecap="round" /> </svg>`;
<div class="response-panel" id="responsePanel"> <div class="selection-display"> <span>🌱 Currently selected:</span> <span class="blob-name" id="selectedBlobName">— none yet —</span> </div> <div class="emotion-note" id="emotionNote"> 💭 Tap on a blob to reflect. Each character represents a different mood or social dynamic. </div> <textarea id="reflectionInput" rows="2" placeholder="Write your reflection, journal entry, or share how you relate to this blob..."></textarea> <button id="saveReflectionBtn">📘 save note</button> <div style="font-size: 0.7rem; margin-top: 8px; color:#b48a54;" id="saveMessage"></div> </div> <footer> 🧸 Blob Tree method inspired by Pip Wilson · use for teams, classrooms, therapy </footer> </div>
// update panel document.getElementById("selectedBlobName").innerHTML = `$blob.name (blob #$blob.id)`; document.getElementById("emotionNote").innerHTML = `💭 "$blob.emotion" — $blob.name often represents $blob.emotion.split(',')[0] feelings. How do you relate?`;
// branch display mapping (order + titles) const branchConfig = [ key: "canopy", label: "🌿 CANOPY · high energy & visibility" , key: "middle-left", label: "🌘 LEFT MID · inner tension & quietness" , key: "middle-right", label: "☀️ RIGHT MID · expressive & reactive" , key: "lower-ground", label: "🍂 LOWER · withdrawn, grounded or tired" , key: "top-solo", label: "✨ TOP · spotlight / leadership" ];
.branch-title text-align: center; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1.5px; color: #b97f48; margin-bottom: 24px; background: #fff2e2; display: inline-block; width: 100%; padding: 6px 0; border-radius: 60px;
function persistData() localStorage.setItem("blobtree_notes", JSON.stringify(savedNotes)); if (currentSelectedId) localStorage.setItem("blobtree_selected", currentSelectedId);
.sub color: #7a4a28; border-left: 4px solid #ffb46e; padding-left: 18px; margin: 12px 0 28px 0; font-weight: 500; font-size: 1rem;
.selection-display font-size: 1.3rem; font-weight: 600; color: #2c1a0c; display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; justify-content: space-between;
function selectBlob(blobId) const blob = blobData.find(b => b.id === blobId); if (!blob) return; currentSelectedId = blobId;
.blob-item.selected .blob-number background: #ffaa44; color: white; border-color: #ff8800; box-shadow: 0 0 0 2px white;
body font-family: 'Segoe UI', 'Quicksand', system-ui, -apple-system, 'Helvetica Neue', sans-serif; background: linear-gradient(145deg, #f9f3e6 0%, #fff0e0 100%); margin: 0; min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px;
function init() loadPersistedNotes(); buildTreeUI(); // after building, trigger selection to display current selected or default if (currentSelectedId) selectBlob(currentSelectedId); else // if nothing selected, default to blob 1 selectBlob(1); document.getElementById("saveReflectionBtn").addEventListener("click", () => saveCurrentReflection(); persistData(); ); // optional: auto-save on textarea blur document.getElementById("reflectionInput").addEventListener("blur", () => if (currentSelectedId) savedNotes[currentSelectedId] = document.getElementById("reflectionInput").value; persistData(); );
| Information | Created DateTime | Expected Complete Date | Finished Date |
|---|---|---|---|
| [UPDATE] WAP4 Update | 2022-06-08 22:42:59 | 2024-05-30 | 2024-06-06 |
| [NEW] WAP 7/WAG 9 | 2020-07-05 12:50:17 | 2020-09-15 | 2020-09-15 |
| [UPDATE] WDP4D/WDG4D | 2019-08-13 23:14:16 | 2020-05-30 | 2020-05-26 |
| [UPDATE] WDM3D Update Variant #2 & #3 | 2019-08-13 23:13:14 | 2020-02-15 | 2020-02-12 |
| [NEW] Indian Signals | 2019-02-21 15:25:12 | 2019-08-15 | 2019-08-13 |
| [NEW] WDP4D/WDG4D | 2018-11-06 10:34:50 | 2019-04-30 | 2019-04-27 |
| [UPDATE] ICF Rake Updates with Interior | 2018-11-01 09:44:21 | 2019-02-20 | 2019-02-21 |
| [UPDATE] ICF Rake Updates | 2018-08-23 16:07:35 | 2018-11-30 | 2018-11-22 |
| [NEW] Jan Shatabdi ICF coaches | 2018-08-23 16:04:55 | 2018-10-15 | 2018-10-15 |
Indian Railways Addons for DTG Train Simulator Classic
Today Visits: 183