34658 Commits
Author SHA1 Message Date
KashargulandGitHub a0c5678533 transfer to subsystem (#19323)
* transfer to subsystem

* ,

* .

* .
2026-03-26 18:30:32 -04:00
KashargulandGitHub 2388aaba11 subsystem access (#19337)
* init

* access to controller

* .
2026-03-26 18:04:19 -04:00
Cameron LennoxandGitHub 9311e3e7eb Internal germ healing (#19327) 2026-03-26 15:50:07 +01:00
KashargulandGitHub c779adfeef move those back (#19336)
* move those back

* .
2026-03-25 23:17:33 +01:00
Cameron LennoxandGitHub e73af74f1f Slip Prone Trait (#19303)
* Slip Prone

* Update vorestation.dme
2026-03-25 22:31:36 +01:00
Cameron LennoxandGitHub e117d27b05 Robot Consumables (#19328)
* Consumables

* Update station.dm

* Update station.dm
2026-03-25 22:29:46 +01:00
WillandGitHub 507a53422b Fix rig pai slot not accepting Btype card, and buffed rig ai movement distance (#19343)
* feeexxxx

* unneeded

* actually why over complicate
2026-03-25 22:25:19 +01:00
WillandGitHub f9517853e0 Autolathe Disk Loading (#19331)
* disk loading autolathe

* rsf too

* oops

* kick ci
2026-03-24 01:54:56 -04:00
WillandGitHub 3f5a509f55 Ammoboxes In Lathe (#19329)
* boxes!

* kill these

* chonky boxes

* dupe

* proper hacked state for ammoboxes
2026-03-24 01:54:14 -04:00
ARGUSandGitHub c182831a0d BYTECRAWL: NtOS idle hacking game (#19306)
* BYTECRAWL: NtOS idle hacking game

Hack the world

* Add jobs clear command and expand explain with cipher table

commands/jobs.ts: jobs clear subcommand strips all failed jobs from the list
commands/autocomplete.ts: offer clear and --filter as first-arg completions after jobs
commands/meta.ts:
  - help jobs entry updated to document jobs clear
  - explain: new CIPHERS section with full abbrev/tier/name/types/uptime table;
    T4/T5 uptime warning highlighted; market section trimmed of inline tier list
  - explain tips: note added for jobs clear

* bytecrawl: ascend confirmation gate, sell all command

ascend now requires --confirm to execute; running ascend alone shows a
preview of the GHOST bonuses and a reset warning, matching the upgrade
--confirm pattern. sell all sells the entire cache at current market
prices, printing per-item lines and a total. autocomplete updated for
both: ascend offers --confirm alongside --preview, sell offers all as a
first-arg candidate.

* bytecrawl: merge connect into scan subcommand

scan <id> now probes a target directly; scan with no args or flags
still refreshes the list. connect command removed. autocomplete updated
to offer scan pool IDs at argPos 1 for scan (non-flag). constants and
help entries updated throughout.

* Unangy the belly lint

Make Linters happy

* fix(bytecrawl): resolve all remaining biome lint errors and warnings

* Exlpicitly return FALSE

* Make var h more verbose as handle

* unasterisk the react

he will be missed

* Add more Style points

get it

* remove stale bread

we dont need you

* forgor the other asterisks, not they gone for good
2026-03-24 01:19:36 -04:00
WillandGitHub 795c98d2c8 removed hacked requirement from chem sprayer (#19330) 2026-03-23 17:54:18 -04:00
WillandGitHub 48aaa61faf Circuitboard Unit Test (#19322)
* fix

* updated test

* types of

* correct boards

* fix those circuits

* clarity

* fix

* try again

* circuit test

* Revert "fix those circuits"

This reverts commit d4468d669a.

* Revert "correct boards"

This reverts commit b49b0d7f2e.

* Reapply "fix those circuits"

This reverts commit 1189ee9524.

* Reapply "correct boards"

This reverts commit af69adbfe8.
2026-03-23 17:51:53 -04:00
WillandGitHub 5b92b952dc boop (#19321) 2026-03-23 11:21:46 -04:00
Cameron LennoxandGitHub 4e0ce943c6 Small SM tweak (#19334) 2026-03-22 22:41:00 -04:00
Cameron LennoxandGitHub cbc4151bfb Radiation Refactor (#19270)
* Part 1

* WIP

* The rest of these

* More stuff

* Whoops, did that wrong

* typo

* gweeen

* This all works

* SHOWER

* Rads

* awa

* rad

* Update life.dm

* edits

* Makes lvl 3 rads give you a warning.

You should already know by this point, but this makes it EXTRA clear you're getting fucked

* Update vorestation.dme

* aaa

* propagate

* gwah

* more fixes

* AAA

* Update radiation.dm

* Update radiation.dm

* mobs rads

* rads

* fix this

* Update _reagents.dm

* these

* Get rid of these

* rad

* Update config.txt

* fixed

* Update radiation_effects.dm
2026-03-22 12:29:09 -04:00
WillandGitHub 8c24060294 Cable coils in lathe (#19324)
* cables in lathe

* cable count

* uh

* blacklist wires for now

* feedback
2026-03-21 23:59:46 -04:00
89fb9871e0 next set of admin verbs (#19260)
* next set of admin verbs

* invoke

* .

* a few more

* few more

* .

* few more

* some more

* move thos

* next

* some debug verbs

* axe the old mod loading

* del

* is local for some verbs

* few more

* .

* .

* .

* Add local narrate.

* Fixes this

Needed to be user.mob, since user is  the client and usr was the old user.mob

* fixes

* .

* .

* .

* .

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
2026-03-21 17:16:41 -04:00
Aura DusklightandGitHub c6f10bfeb3 Convert species, organ_data, and rlimb_data to TG (#19277)
* First test batch bulk change

* remove desync'd old file

* Small change
2026-03-21 04:06:36 -04:00
KashargulandGitHub 418bc73c80 whitelist updates (#19288)
* whitelist updates

* migrate things to module

* .

* some more

* robot IDs are now handled by module

* special ids

* .

* .

* .

* .

* .

* .

* move that

* .

* initial

* admin whitelist TGUI

* .

* .

* lol
2026-03-20 20:16:13 -04:00
0c8488b0ae Move autolathe design datums to techweb datums (#19202)
* testing makes me feel good

* invalid lists

* get rid of those boards

* show expected mats

* oop

* error

* wip techweb porting

* more techweb entries

* ported too

* disable those for now

* okay nevermind i guess

* already exists

* assemblies

* moar

* welding helmet

* many entries

* lol tg

* fix test

* again

* fixagain

* more moved

* update techweb test

* catch that too

* screeee

* more fixes

* missing announcement

* orphaned sleevecard

* some more fixing

* test

* more

* oops

* glasses

* illegal icons

* non starting

* it's starting

* messed up

* cleanup

* more generic stuff

* morrrreee

* the plastic set

* oops

* correct value

* barbed wires

* more cleaning

* many more

* gone

* cleanup

* no longer

* do not allow duped designs

* it's own node

* proper order no dupes

* last of the broken nodes

* fix bad path

* cleanup

* more test more limits

* gone

* almost done

* these are gone

* syringe gun

* bioregenerator design

* all moved

* organized and webbed

* more fixes

* oops

* cleaning up

* organization

* clean up

* organize

* organized

* didn't save

* wrong mat

* adds many missing ammo types

* svd doesn't exist

* 10mm pistol added

* magazines not casings

* these are pistols

* this is used by like, one weapon

* m1 is ancient

* this is hunting

* extremely botched untested lathe

* disk junk

* rough foundations

* slowly converting

* slowly building this

* local materials

* almost

* big reorganization

* more cleanup

* more cleaning

* lathe stuff

* small fixes

* oops

* many fixes

* mat fix

* more fixes

* actually isolate the hacked designs

* protolathe hacking

* imprinter hacking

* missing ammos

* sheet printing for autolathe

* fixs

* again

* fixed test

* test test

* fix

* fix

* WHY

* fix it...

* here we go

* material print

* on turf

* body disk

* consistant name

* Many weapons to hacked lathe

* missing node

* wrong section

* fixes

* this list should be unified

* ammo boxes

* don't do single shells anymore

* wat

* specifics

* snowflake

* not needed

* already available

* pickaxe too

* tweak

* removed unneeded node

* missing surgery items

* Apply suggestion from @Cameron-The-Raven

* Adds RMS

* typo

* illegal needs hacked

* disabled material weapons

* circuit testing

* STRING TEST

* test

* fixing some things

* huh?

* hidden circuits

* some flakey boards

* grammar

* fixes

* more hidden

* wrong board

* security cams

* alert consoles

* spaceheater is simple enough to not have one

* pcus

* cargo vendors

* tcomms stuff

* solar tracker circuit

* artifact stuff

* SM stuff

* illegal machines

* med machines

* no longer needed

* more stuff

* these are not standard

* moreeee

* doppler and more

* organized

* finishing

* oop

* use the define

* inheret

* dopper fixes

* space heater

* doing some organization

* explain the var

* some tweaks

* wrong one

* fixed test

* material test too

* simple roto gens

* use the define

* emergency power node

* tgui fixes for icons

* not needed

* color blended material designs

* icons for large research

* oops

* unshit that

* use stack here

* center math

* .

* .

* .

* .

* .

* unifi

* fix these

* NO COPYPASTA

* ILLEEGGALLL

* mandate descriptions

* agony

* actually lets do this

* use macros

* description

* desc

* desc

* desc

* desc

* desc

* desc

* gps desc

* telecomms component desc

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2026-03-20 19:38:00 -04:00
KashargulandGitHub 69b919507b allows to update player logs manually, 5 seconds cooldown (#19318)
* allows to update player logs manually, 5 seconds cooldwon

* eh

* .

* better

* .

* .

* .

* .

* .
2026-03-20 20:29:57 +01:00
Aura DusklightandGitHub 9247ab8e2f Fix diagonal movement of bots near walls (#19317) 2026-03-20 20:26:43 +01:00
5fda487e43 fix: update_dna no longer resets SE blocks, fixing morph gene wipe bug (#19291)
update_dna() was calling dna.ready_dna() which internally calls
ResetSE(), setting all SE blocks to rand(1,1024) (the OFF range).
Any subsequent domutcheck(MUTCHK_FORCED) call would then deactivate
every trait gene because all SE values read as inactive, including
the morph gene itself.

Replace dna.ready_dna(src) with dna.ResetUIFrom(src), which re-encodes
appearance DNA from the mob's current state without touching the SE
layer. Also correct the stale sync_organ_dna(dna) call to the correct
no-argument form matching the proc signature.

Affected call sites that triggered this bug: the morph appearance
editor, change_gender, add_marking, remove_marking,
change_priority_of_marking, and change_marking_color.

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2026-03-20 00:32:37 +01:00
ARGUSandGitHub acc2f6046d Fix jukebox volume setting (#19312)
* Fi jukebox volume setting

Jukebox volume is a 0-1 not a 0-100
:fenneko:

* Apply 0-1 remap fixes to more media code
2026-03-20 00:29:50 +01:00
ARGUSandGitHub 4e0ee95fec fix: MUTE trait no longer blocks say emotes (\! prefix) or radio say emotes (;\!) (#19302)
Noise language is used for audible emotes when '\!' is prefixed in say.
handle_speech_problems() was unconditionally clearing the message for
any mob with sdisabilities & MUTE, including Noise language pieces.

'*emote' in say() bypasses mute entirely by redirecting to emote()
before handle_speech_problems is reached. '\!emote' and ';\!emote' should
be consistent with that: MUTE suppresses speech but not emote actions.

Now, when MUTE is the sole reason the suppression block fires (not
silent or paralysis), Noise language pieces fall through to the parent
proc instead of being cleared.
2026-03-20 00:28:32 +01:00
ARGUSandGitHub 1ebb3a4f40 Fix laptop card slot not being checked for software access (#19300)
can_run() only checked the user's worn/held ID via GetIdCard(), ignoring any
card inserted into the computer's RFID card slot. This caused access-locked
software to always show an RFID error for users relying on a slotted card.

Three fixes:
- can_run(): add explicit_card param; resolution order is explicit_card,
  then user.GetIdCard(), then computer.card_slot.stored_card
- run_program(): set TM.using_access from the slotted card when present,
  falling back to user.GetAccess()
- ntdownloader.dm: pass my_computer.card_slot.stored_card to can_run() so
  the software download list respects the slotted card
2026-03-20 00:24:27 +01:00
Cameron LennoxandGitHub f6e3b50988 Gets rid of skip_some_updates (#19284) 2026-03-20 00:09:53 +01:00
KashargulandGitHub ad5a08fd0e fixes some bad spawn handling (#19315) 2026-03-19 23:12:02 +01:00
KashargulandGitHub 6c768b06ec reimplements attack and player logs (#19313)
* reomplements attack and player logs

* right log cat

* updates logging, makesDB optional

* regex serarch

* .

* .

* .

* sucks

* db load

* .

* .

* db logging
2026-03-19 22:37:45 +01:00
KashargulandGitHub 91ce60e01b next globs (#19292)
* next globs

* few more

* some more

* .

* should be added on map laod

* .

* that needs its own PR

* .
2026-03-18 21:27:27 +01:00
KashargulandGitHub 167bb4683f cleans that fully up (#19311)
* cleans that fully up

* .
2026-03-18 21:23:56 +01:00
KashargulandGitHub cc2b0c253d fix missing explo tall parent path (#19310)
* fix missing explo tall parent path

* Add icon_x and pixel_x properties to exploration sprites
2026-03-18 19:43:30 +01:00
KashargulandGitHub ab0aa84714 missing parent paths (#19309) 2026-03-18 10:12:25 +01:00
2185fe56f1 Gooborg Standard and Exploration (#19297)
* Adds Gooborg sprites for Standard and Exploration

* fixes

* fixes

* fix meta

* fixes

* wrong order

* ..

* fix goo borg datums

* .

* .

* .

---------

Co-authored-by: Ryan Sundin <kiathef0x@04a6976511c5>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2026-03-17 22:25:50 +01:00
OliveandGitHub f0efa3774f fixes keys (#19307) 2026-03-17 22:22:28 +01:00
ARGUSandGitHub edf2ebb557 Fix Copy Slot sharing references between loadout slots (#19296)
copy_loadout used check_list_copy on the outer gear list only,
leaving the inner tweak metadata lists as shared references.
Modifications to gear tweaks in the copied slot would write
into the shared inner lists, affecting the original slot until
a save/reload cycle broke the reference.

Fix: deep copy both levels, matching the pattern used for
body_markings in 03_body.dm.
2026-03-17 20:20:25 +01:00
OliveandGitHub 6cdc214508 adds new sprites (#19301) 2026-03-17 20:19:54 +01:00
KashargulandGitHub 4d99fe7027 copy slot needs to override (#19299)
* copy slot needs to override

* space

* Delete code/__defines/js_snippets.dm
2026-03-17 20:07:51 +01:00
Cameron LennoxandGitHub 9313193c1b Caseless rifle and protolathe boards (#19238)
* Adds cryogun and caseless rifle techwebs

* disable

not the cryogun I was thinking of

* Update techweb_nodes.dm

* Protolathe boards

* Update science.dm
2026-03-17 08:14:40 -04:00
Cameron LennoxandGitHub 32905c231e Gets rid of some unused plane vars (#19289) 2026-03-17 01:45:55 +01:00
GutiandGitHub bf6c3559b9 QoL stuffs (#19285) 2026-03-17 01:44:25 +01:00
Cameron LennoxandGitHub 0c6db8dd6e Prevents crash from movement (#19287)
Prevents crashing when moving while restrained
2026-03-16 21:50:58 +01:00
KashargulandGitHub 660b83bcce bunch of wall items (#19290)
* bunch of wall items

* bunch of icons
2026-03-15 19:26:42 +01:00
KashargulandGitHub 72628d226c More globals (#19247)
* More globals

* planets

* .

* .

* Update jukebox.dm

* Fix timer callback syntax in jukebox.dm

* .
2026-03-15 02:54:17 -04:00
WillandGitHub 4bfd268737 Slime Research Unittest (#19282)
* slime test

* missed slime
2026-03-14 22:44:01 +01:00
KashargulandGitHub 6f52aaa5e1 use ring buffer for admin logs (#19272)
* use ring buffer for admin logs

* spelling

* ,
2026-03-14 22:41:47 +01:00
KashargulandGitHub 794d55ca73 cleans up dest tagger (#19280)
* cleans up dest tagger

* fix that
2026-03-14 22:27:09 +01:00
KashargulandGitHub 547e887c31 Cleanup (#19283)
* some code cleanup

* .

* .

* .

* change that

* .

* .
2026-03-13 23:10:39 +01:00
KashargulandGitHub e2f7568c55 fix disposal target (#19279) 2026-03-12 23:10:20 +01:00
GutiandGitHub 9a37ecee96 Anomaly Harvesting Tweaks (#19278)
* Tweaks

* Up the cost + Map changes

* Makes unsimulated turfs non-transformable

* Almost :)
2026-03-12 21:55:26 +01:00