Skip to content
TORNLIFE More

novascotia: forum

novascotia [3983589] Level 21 FLATLINE FL Flatliner

Forum posts (Torn's count)
15 observed
Archived posts
32
Threads started (archived)
6

Boards

From the 32 newest archived posts.

Threads started

Most-liked posts

Likes as archived at fetch time, adjusted for how long each post had been up. Scored posts only; the full score pass runs after the import.

NotTorn - IT Programming Term 1 Final Project · · 129 likes

 

 

Hey everyone, I'm a student at NSCC and for my Logic & Programming final project I built a Torn-inspired game from scratch in Java. Figured this was the most appropriate place to share it. Hope you enjoy it!

NotTorn Text-Based Crime Simulation

A fan-inspired idle-RPG built in Java, inspired by the game we all waste our lives on.


What is it?

I spent my semester building a single-player terminal RPG engine from scratch in Java that captures the core loop of Torn. Crimes, combat, a dynamic economy, jobs, travel, and offline progression , all running inside a retro Swing terminal window.

No web browser. No clicking. Pure keyboard-driven gameplay.


Screenshots

[image: reports.torn.com] Main UI — city overview and live stats panel

[image: i.imgur.com] Crime menu

[image: i.imgur.com] Turn-based combat

[image: i.imgur.com] ASCII city map panel


Features

City & Movement

  • 8 districts. City Center, Gym, Hospital, Drug Store, Item Market, Dark Alley, Police Station, Bank
  • Full ASCII city map (press M)
  • Instant travel between adjacent districts

Vital Stats

  • Energy, Nerve, and Happiness. all regenerate in real time, even while offline
  • Natural Nerve Bar grows with Crime Experience, unlocking harder crimes
  • Offline progression — every tick you missed is applied the moment you boot the game

Crimes

  • 10 crime types from petty shoplifting to kidnapping
  • Nerve cost per crime; success rate improves with Crime Experience
  • Failure sends you to jail for a timed lockout

Combat

  • Hostile NPCs patrol their districts and engage automatically
  • Turn-based, capped at 25 rounds
  • 14-region weighted hitbox system (Head, Heart, Throat for 3.5× crits)
  • 12% base crit chance; log-linear hit and mitigation interpolation
  • Battle stats stored as BigInteger . Infinite scaling, no overflow

Jobs

  • 4 careers: Army, Medical, Education, Law
  • Daily income ticks auto-applied; auto-promoted when stats qualify

Economy

  • Supply-and-demand shop. buy/sell pressure shifts prices in real time
  • 5% sales tax on sell-backs

Travel

  • 11 destinations with real flight times (26 min to ~5 hours)
  • Locked out of crimes and combat while airborne

Tutorial

  • George the Fragrant Vagrant walks new players through 5 intro missions

Tech Stack

Language Java 17
UI Lanterna 3.1.2 (Swing terminal emulator)
Serialisation Jackson 2.16.1
Build Manual classpath — no Maven/Gradle, just javac and java
Save format JSON (player state + live shop supply)

The game loop runs at 60 logical updates per second using a fixed-timestep delta-time architecture. Rendering is completely decoupled from logic. Save files are forward-compatible — unknown fields are silently ignored so old saves always load cleanly.


GitHub

github.com/GemsNS/NotTorn

Screenshot for those in the UK

[image: reports.torn.com]

Thanks Jynnx · · 69 likes

I wanted to take a moment to post something positive because this community can be chaotic, especially for new players. When I first spoke in Global I got the usual initiation with hosp and bounties. It’s part of the culture but it can be rough when you’re brand new.

 

Through all of that, Jynnx was the first staff member who actually took the time to be patient, friendly, and genuinely helpful. Every question I had, no matter how small, got a respectful answer. That kind of attitude makes a huge difference when you’re still figuring the game out.

 

He also shared a detailed travel guide he made for himself and let me use it. I’m posting it here because it’s genuinely helpful for anyone who travels.

 

 

 

Travel Guide from Jynnx

 

“I made this to help me see where to travel and which was best use of my time/energy. It’s not perfect and I update it irregularly but it works and I do use it from time to time. It’s based on having a PI and making use of the Pilot. There are other sites that do the same thing with better layout and up-to-date prices. I just like using my own stuff.

 

When I travel I have +29 items (PI +10, Large Suitcase +4, Faction +10, Base +5). My calculations are based on 29 items. If you have more or less then your income per flight will vary but places to travel/time will be the same.”

 

Profit – No Energy Loss

 

United Kingdom

• Nessie – profit around 39k per plushie (1.13m per trip, 179 per min)

• Red Fox – profit around 40k per plushie (1.16m per trip, 180 per min)

• Heather – profit around 37k per flower (1.07m per trip, 166 per min)

 

Argentina

• Monkey – profit around 44k per plushie (1.27m per trip, 190 per min)

• Ceibo Flower – profit around 39k per flower (1.13m per trip, 169 per min)

 

Switzerland

• Chamois – profit around 44k per plushie (1.27m per trip, 181 per min)

• Edelweiss – profit around 30k per flower (900k per trip, 122 per min)

 

Better Profit – 25 Energy Loss

 

China

• Panda – profit around 68k per plushie (1.97m per trip, 200 per min)

• Peony – profit around 69k per flower (2m per trip, 204 per min)

 

Best Profit – Heavy Energy Loss (around 75 energy)

 

South Africa

• Xanax – profit around 93.5k per drug (2.7m per trip, 225 per min)

• Lion – profit around 64.5k per plushie (1.87m per trip, 155 per min)

• African Violet – profit around 59k per flower (1.71m per trip, 142 per min)

 

UAE

• Camel – profit around 74k per plushie (2.14m per trip, 195 per min)

• Tribulus Omanense – profit around 68.5k per flower (1.98m per trip, 180 per min)

 

Short Trips – No Energy Loss

 

Canada

• Wolverine – profit around 9k per plushie (261k per trip, 154 per min)

• Crocus – profit around 8k per flower (232k per trip, 138 per min)

 

Cayman Islands

• Stingray – profit around 8.6k per plushie (250k per trip, 172 per min)

• Banana Orchard – profit around 7k per flower (203k per trip, 140 per min)

 

Mexico

• Jaguar – profit around 6k per plushie (174k per trip, 167 per min)

• Dahlia – profit around 1.4k per flower (40.6k per trip, 39 per min)

 

Other Destinations

 

Japan

• Cherry Blossom – profit around 55k per flower (1.6m per trip, 172 per min)

 

Hawaii

• Orchid – profit around 17.8k per flower (51k per trip, 95 per min)

 

What I Run Personally

“I run China twice per day (including before bed) which gives me around 4m profit daily. Then I run different places through the day and collect plushies, mostly short trips to Mexico, Canada, Caymans while waiting on drug cooldown. I also run the UK or Argentina depending on my mood. I can easily make 4–6m per day from travelling.”

 

Additional Note

Some people claim short flights are better profit than long ones. Here’s an example:

 

China

• 29 Pandas

• 6 hours

• around 1.972m profit

 

Canada

• about 7.5 trips to match that profit

• 7–8 hours

• requires perfect stock each time

 

 

 

What stood out most wasn’t just the guide. It was the attitude:

Positive, welcoming and encouraging without being condescending.

 

A lot of us remember how overwhelming the game felt at the beginning. Staff members who go out of their way to help make the experience so much better.

 

So thank you, Jynnx.

You made a chaotic start feel a lot easier.

 

Poison mistletoe · · 1 like

Does anybody got any extra poison mistletoe laying around? A faction mate told me he found 4 in total, I’m sad because this Christmas I didn’t end up finding any while searching the dump and it’s my first Christmas in TC :c

Poison mistletoe · · 0 likes

Hahah where is ur Christmas spirit? Some are richer then others and it doesn’t hurt anybody to ask lol, sorry if my post offended you but if you must know I already asked and was denied 😂

Typed the price wrong in item market.. · · 0 likes

Recent archived posts

NotTorn - IT Programming Term 1 Final Project ·

Thank you kind bogie!

NotTorn - IT Programming Term 1 Final Project · · 1 like

Whichever staff who edited this for advertisement has negative brain cells, bogie gave me special permission for this…

NotTorn - IT Programming Term 1 Final Project ·

Anybody able to test out the new version?

NotTorn - IT Programming Term 1 Final Project ·

fix: NPC auto-combat safe zones and message log word wrapping

 

This update introduces safe zone logic to prevent unwanted NPC aggression in neutral areas and fixes the long-standing issue of text truncation in the message log.

 

Commit: 3291f23

 

 

Bug 1 — NPC Auto-combat (NpcBehaviour.java)

 

CITY_CENTER has been designated as a safe zone. Three specific guard clauses were added to NPC AI logic to enforce this:

 

 

  • tickIdle: If an NPC sees a player at their current location, they will only switch to CHASE if the location is not in SAFE_LOCATIONS.
       
  • tickPatrol: Added the same safety check for when an NPC inadvertently walks into a player's location during a patrol.
       
  • tickChase: If a chasing NPC follows a player into a safe zone, the NPC will now give up and return to IDLE instead of transitioning to COMBAT.

 

Note: NPCs can still physically wander through the City Center; they simply cannot initiate or conclude a fight there. Players must move to a non-safe zone (e.g., Dark Alley, Hospital corridor) for combat to be possible.

 

Bug 2 — Text Truncation (Renderer.java)

 

The message log now properly handles long strings of text that previously overflowed the UI boundaries.

 

 

  • Word Wrapping: Replaced the single clip() call with a wordWrap() method. Every stored message is now expanded into a list of display lines broken at word boundaries.
       
  • Visual Alignment: Continuation lines are automatically indented by 11 spaces. This aligns the wrapped text with the message body (past the [HH:MM:SS] timestamp prefix), creating a clean paragraph look.
       
  • Scroll Logic: The available-row calculation now accounts for the expanded line count, ensuring older messages scroll off the screen correctly rather than causing a display overflow.

 

 

Files changed: NpcBehaviour.java, Renderer.java, Location.java

NotTorn - IT Programming Term 1 Final Project ·

fix: terminal resize support and flicker root cause (all platforms) (v0.6.2)

 

This update addresses the underlying architectural causes of screen flickering and adds proper support for terminal window resizing across all operating systems.

 

Commit: cfa57c9

 

 

Bug — Flickering persisted after 60 FPS cap (Renderer.java)

 

The previous render-rate cap reduced the frequency of flickering but did not eliminate it. The root cause was screen.clear() being called every frame.

 

   

  • The Issue: clear() marks the entire back buffer as "dirty." This forced RefreshType.AUTOMATIC to perform a full repaint every frame.
           

              

    • Linux/macOS: Lanterna would send 33[2J (erase-display) before writing the new frame, causing a visible blank flash.
                 
    • Windows: Lanterna would repaint every cell in the Swing component, flooding the AWT Event Dispatch Thread with redundant work.
             

       
       
  • The Fix: Removed screen.clear() entirely (as fillBackground() already overwrites every cell). Changed screen.refresh() calls to RefreshType.DELTA, forcing incremental diff mode—only cells that actually change between frames are updated.

 

Bug — Window resize does not redraw (Renderer.java)

 

Previously, resizing the terminal window would leave frozen content or unwritten areas outside the original frame dimensions.

 

 

  • The Issue: Lanterna queues resize events internally but does not apply them without an explicit call to screen.doResizeIfNecessary(). Without this, getTerminalSize() returns stale dimensions and virtual buffers remain the wrong size.
       
  • The Fix: Added doResizeIfNecessary() to the top of every render pass. When a resize is detected, the refresh type momentarily switches to COMPLETE for a single frame to flush the entire buffer at the new dimensions before returning to DELTA.

 

 

Files changed: Renderer.java, README.md

NotTorn - IT Programming Term 1 Final Project · · 1 like

fix: flickering, Mexico stuck on fresh clone, and travel UX hardening

 

Two bugs reported by players on fresh clones have been resolved, alongside general improvements to the travel experience.

 

Commit: b0aa076

 

 

Bug 1 — Screen flickering (GameEngine.java)

 

render() was called on every game loop iteration with only Thread.sleep(1) between each pass, producing up to ~1,000 screen.refresh() calls per second. The Swing AWT paint thread cannot process repaints that fast and draws partial frames — the visible flicker.

 

  • Fixed by adding a RENDER_INTERVAL_NS cap (60 fps).
       
  • Logic updates and input handling are unaffected and still run on the existing 60 Hz fixed-timestep.

 

Bug 2 — Starts in Mexico / can't travel home (data/, .gitignore)

 

data/savegame.json was committed to the repository. That development save had two problems stacked on top of each other:

 

  1. "currentLocationId": "MEXICO" dropped every new clone straight into Mexico.
       
  2. "jailReleaseTimestamp": 1772732929573 (expires March 2027) made isInJail() return true, causing returnHome() to refuse the return flight before it ever checked location.

 

Fix: Deleted the save file — the game creates a correct fresh save on first run. Added .gitignore to prevent savegame.json and shop_state.json from being committed again.

 

 

Additional hardening

 

  • Travel menu (GameEngine.java): Now prepends a "Return to Torn City" option when the player is abroad, making the return path discoverable without knowing the [R] shortcut.
       
  • Startup (Main.java): Heals a corrupt IN_FLIGHT + traveling=false state left by a mid-flight crash — previously the player was permanently stuck on the IN_FLIGHT screen since checkArrival() requires traveling=true to fire.
       
  • Arrival message (TravelService.java): Now reads "Press [T] or [R] to book your return flight" on foreign landing, and "Welcome home!" on return — removes the UX gap where players had no indication of how to get back.

 

 

Files changed: GameEngine.java, Main.java, TravelService.java, data/savegame.json (deleted), .gitignore (new), README.md

NotTorn - IT Programming Term 1 Final Project · · 1 like

Interesting I wasn’t able to reproduce the Mexico issue, I will have to look into it. As far as the screen flickering, I’ve heard that a couple times from a few other people I’ll have to start using the issue tracker

NotTorn - IT Programming Term 1 Final Project ·

The only AI usage was some help with the mathematics and the documentation!

 

edit my professor was telling me about alt F to auto format in vscode 😎 

NotTorn - IT Programming Term 1 Final Project ·

But that’s the whole point! It’s a mini version of torn, based on the game. I absolutely used some ai to help me calculate all the weights for the combat system that is based on torn, which took years to develop into what it is today. I really don’t think there’s anything wrong with utilizing these tools as long as it is in the right way! 

NotTorn - IT Programming Term 1 Final Project ·

I agree with you 1000%

NotTorn - IT Programming Term 1 Final Project ·

Likewise

NotTorn - IT Programming Term 1 Final Project ·

Thank you to everyone who starred my repo :D

NotTorn - IT Programming Term 1 Final Project ·

Java :D

NotTorn - IT Programming Term 1 Final Project · · 1 like

https://freeimage.host/i/qx16RSf

NotTorn - IT Programming Term 1 Final Project ·

Heheh you caught me :P, I used Gemini to write my Readme.MD, I’m just so bad with formatting sometimes and I honestly believe AI is such a powerful tool when used properly, I believe Ai Will help lead our future generation of programmers and creative types to produce top tier content. Even my professors advise use that we are allowed to use AI in certain circumstances as long as it doesn’t interfere with academic integrity (code is authored by myself) 

NotTorn - IT Programming Term 1 Final Project · · 3 likes

Thank you for your positive comments! I am a student at Nova Scotia Community College :)

NotTorn - IT Programming Term 1 Final Project · · 129 likes

 

 

Hey everyone, I'm a student at NSCC and for my Logic & Programming final project I built a Torn-inspired game from scratch in Java. Figured this was the most appropriate place to share it. Hope you enjoy it!

NotTorn Text-Based Crime Simulation

A fan-inspired idle-RPG built in Java, inspired by the game we all waste our lives on.


What is it?

I spent my semester building a single-player terminal RPG engine from scratch in Java that captures the core loop of Torn. Crimes, combat, a dynamic economy, jobs, travel, and offline progression , all running inside a retro Swing terminal window.

No web browser. No clicking. Pure keyboard-driven gameplay.


Screenshots

[image: reports.torn.com] Main UI — city overview and live stats panel

[image: i.imgur.com] Crime menu

[image: i.imgur.com] Turn-based combat

[image: i.imgur.com] ASCII city map panel


Features

City & Movement

  • 8 districts. City Center, Gym, Hospital, Drug Store, Item Market, Dark Alley, Police Station, Bank
  • Full ASCII city map (press M)
  • Instant travel between adjacent districts

Vital Stats

  • Energy, Nerve, and Happiness. all regenerate in real time, even while offline
  • Natural Nerve Bar grows with Crime Experience, unlocking harder crimes
  • Offline progression — every tick you missed is applied the moment you boot the game

Crimes

  • 10 crime types from petty shoplifting to kidnapping
  • Nerve cost per crime; success rate improves with Crime Experience
  • Failure sends you to jail for a timed lockout

Combat

  • Hostile NPCs patrol their districts and engage automatically
  • Turn-based, capped at 25 rounds
  • 14-region weighted hitbox system (Head, Heart, Throat for 3.5× crits)
  • 12% base crit chance; log-linear hit and mitigation interpolation
  • Battle stats stored as BigInteger . Infinite scaling, no overflow

Jobs

  • 4 careers: Army, Medical, Education, Law
  • Daily income ticks auto-applied; auto-promoted when stats qualify

Economy

  • Supply-and-demand shop. buy/sell pressure shifts prices in real time
  • 5% sales tax on sell-backs

Travel

  • 11 destinations with real flight times (26 min to ~5 hours)
  • Locked out of crimes and combat while airborne

Tutorial

  • George the Fragrant Vagrant walks new players through 5 intro missions

Tech Stack

Language Java 17
UI Lanterna 3.1.2 (Swing terminal emulator)
Serialisation Jackson 2.16.1
Build Manual classpath — no Maven/Gradle, just javac and java
Save format JSON (player state + live shop supply)

The game loop runs at 60 logical updates per second using a fixed-timestep delta-time architecture. Rendering is completely decoupled from logic. Save files are forward-compatible — unknown fields are silently ignored so old saves always load cleanly.


GitHub

github.com/GemsNS/NotTorn

Screenshot for those in the UK

[image: reports.torn.com]

$1 sale per day! x100 · · 1 like

:)

Torn ads are BRAIN ROT · · 1 like

this is legit how i found torn

DUKE'S DUMP GIVEAWAY - DAY ELEVEN ·

Reserved