#Screeps Sandbox
1 messages · Page 3 of 1
Yeah, pretty much not useful :/
SyntaxError: Unexpected token u in JSON at position 0
at Object.parse ()
at global._init.global._start (:16017:61)
at ()
at make (/screeps/node_modules/@screeps/driver/lib/runtime/make.js:160:34)
Lucky I did this a few weeks ago
My code seems to be working fine regardless, sorry Harabi 😄
Oh, mine is broken
Yeah, even though my bot has errors when the memory doesn't work, it's still mostly working it seems.
Both of us never give up
@sullen condor You're… stuck, somehow?
A lot of your rooms are either empty or spawning small creeps…
OH really
@scarlet fossil Thank you. I made an manual order looks like this last night for seasonal and this made my bot to die
if (!Memory.done && Game.time > 682020 + 8100) {
missionSiege.createMission(Game.rooms["E1S4"], "E2S2")
Memory.done = true
}
Since I don't have E1S4 in sandbox
I'm glad I'm not the only one that accidentally pushes an update and kills the bot on another sever
Yeak. Grunt all killed it
@rotund olive any plans on making more reasonable prices on market (kind-of swc/ba style) ?
mostly to have some reasonable npc-level exchange ratio for minerals, being around 3:1 or smth (so for 3 of one mineral you can get 1 of other)
also, some npc-buy order for energy would be nice (for like 10-20:1 mineral ratio )
Dynamic market? It's still lacking some stuff, but at least feels like something that wouldn't feel like a waste of resources
not dynamic
prices can be static (as are now)
just more sane than 0.01 on sell
- npc energy orders as sinks for energy
Oh yrad adding more terminals and such
Forgot to do thst
@worn quest / @haughty cloak i don't like your solution for my energy overflow :p
Hah! Nightdragon just got baby military boosts mostly working. Sometimes it even boosts all the part types! 🙂
nah, it's a nuke
Apparently he decided to test on your room.
Ah. Well then! I guess he has those too now!
I'll have to log in and check to see what's going on.
he's encroaching my space and by that finds some bugs in my code :p
or makes me to implement some non-happy-path behaviors
which is good
like here, red before i stopped contesting his remote, and blue after
Nice to see that working out for you! I'm sure he's finding some similar improvements to make.
got fancy reporting even
is CPU limited to 100 once you reach GCL 8 and above? I get notifications that say "Your CPU is increased to 120" etc when my GCL increases, but I noticed my max CPU is staying at 100. is that the limit for the server?
@rotund olive is it normal that nuke kills creeps 1 tick before landing ?
http://jayseegames.localhost:8080/(http://jayseegames.com:21025)/#!/history/shard0/E19S13?t=2755311
on tick #2755312 creeps are killed, nuke has Landing in: 1 , on following tick #2755313 nuke lands and destroys stuff as expected
Likely a history visual bug
where orders 🐒
Which market mod is it using right now?
I think dyn, maybe just normal market mod
Feels like normal, because IIRC market has at least the base commodities
IIRC what Psy uses for BA is the dynamic market mod but configured to use static prices.
first i saw this i thought it is a nuke
then realise it's bunch of stacked terminals
Quite a stack, at that
How many terminals do you want?
Yes
Looks terminal
bump 😦
hm, i'd appriciate a heads-up from @worn quest @haughty cloak 😛
or he'll lose a target to practice on
I'll go let him know. And tell him to get his act together and do discord himself!
thanks. no problem for me that he's testing stuff against me, just so You/He knows 😉
I mentioned he had a message here, and he grinned and said from Gadjung? Had to run to school before replying though. So maybe tonight or tomorrow?
;D
i just wait that Marvin fixes the market, so i can deploy lab code and start on porting quads from old bot
at least i finally have proper nuke-defense code
just just for update of code to handle multiple nukes
bump 🙈
😅 keep getting distracted every time I type ssh into my terminal
I like the stat block!
Ok so I should switch to dynamic market mod? Or does it seem like I setup the market mod wrong?
cannot you just add "ENERGY" in market.yml in screepsmod-market ?
switchitng to dynamic market should work also
and given semi-ofter resets i dont think inflation/potential exploiting would be "that bad"
sadly will be offline to see landing 😦
will try
last time I did docker compose down it reset the server. How do I make sure that doesn't happen this time 😅 ?
That was because of the map bug in adminUtils, right?
Possibly if you make sure that this one is updated, we'll be fine?
Otherwise, then… I guess it's a bit messy
You'll have to get inside the container, inside the mods folder, run npm update to make sure adminutils gets its bump. Once that's out of the way you should be clear to just update config.yml with the new mod (Nice commit for the setup here: https://github.com/tiennou/screeps-server/commit/fa0c52e22b2c10645e2da79f988101d692f9a44f) and then stop and restart
I don't think you need to docker compose down, the start script will just pick up on the changes and apply them before launching the server
I think, yeah
Just to clarify, docker compose stop should be enough
Possibly the start script will also get adminutils updated, saving the map from being deleted on server startup
i think something changed with server ~9h ago - global seems to not persist long anymore
(blue are global resets on code push, red "natural ones)
Oh yeah, it's struggling
Error: Isolated is disposed
at Object.run (/screeps/node_modules/@screeps/driver/lib/runtime/make.js:168:35)
at EventEmitter.config.engine.on (/screeps/node_modules/@screeps/driver/lib/index.js:35:13)
at EventEmitter.emit (events.js:203:15)
at make (/screeps/node_modules/@screeps/driver/lib/runtime/make.js:166:23)
Random IVM disposals
i think it's dynamic-market that caused it ? or whatever Marvin was doing around the time when it started
Possible, but would be strange. I don't think that mod really has a big footprint… Not sure how it would relate to isolates, too
Didn't do anything
Uhg
I have never before had a server with such random problems
blame it on the user /s
I'm good with it
yup
great
done
happened on docker compose down. Didn't test if docker compose stop would pause, oops
who is invading you
we'll never know
@worn quest was
Time to reset the beta map!
@rotund olive I think it needs a restart?
yup
Error: No runtime status data
at Object.getRoomStatus (<runtime>:21155:23)
at Function.getRoomStatus (main:31320:50)
at RandomWalkerScoutOverlord.generateScoutMap (main:24396:42)
at RandomWalkerScoutOverlord.handleScout (main:24534:22)
at autoRun (main:24557:51)
at RandomWalkerScoutOverlord.autoRun (main:18551:21)
at RandomWalkerScoutOverlord.run (main:24557:14)
at try (main:18492:33)
at RandomWalkerScoutOverlord.try (main:18424:17)
at RandomWalkerScoutOverlord.tryRun (main:18492:21)
at Overseer.run (main:45447:22)
at try (main:46412:38)
at _Overmind.try (main:46261:17)
at _Overmind.run (main:46412:17)
at Object.main [as loop] (main:47389:16)
at __mainLoop:1:52
at __mainLoop:2:3
at Object.exports.evalCode (<runtime>:15381:76)
at Object.exports.run (<runtime>:20865:24)
Reset again?
yeah
Just restart it
TypeError: Cannot read property '0' of undefined
at WorldMapGrid._buildGridData (:28592:28)
at new WorldMapGrid (:28539:26)
at global._init.global._start (:16017:23)
at ()
at make (/screeps/node_modules/@screeps/driver/lib/runtime/make.js:160:34)
at _tickCallback (internal/process/next_tick.js:68:7)
If you don't do that, there's a bunch of stuff that's just… broken because of the map import
@rotund olive boop?
ok there are like 8 ways to restart this thing
which way do you want me to restart it?
Roll an 8-sided die
1d8+0, on it
docker compose stop && docker compose start
Just gives a poke to all the services
TypeError: Cannot read property '0' of undefined at WorldMapGrid._buildGridData (:28592:28) at new WorldMapGrid (:28539:26) at global._init.global._start (:16017:23) at () at make (/screeps/node_modules/@screeps/driver/lib/runtime/make.js:160:34) at _tickCallback (internal/process/next_tick.js:68:7) yeah something went wrong
okie thanks, done
Are you positive it updated the broken adminutils?
Also, not ticking
Hmm, under what conditions does it re-download the mods again?
Normally, on start-up it runs npm update so as long as there's an updated package to get it'll do that
Actually, I might be wrong there…
It just does a bunch of install/uninstall steps to get the mods/package.json file in sync with the list of names, but there's nothing about versions in there…
Sticks and threads~
docker compose exec screeps /bin/sh
cd mods
npm install -E [email protected]
That should bump the mod @rotund olive
Servers are so weird. Was caught into some sort of constant reset, with an "IVM disposed" error from time to time. Tried switching branches, no fix. Pushed the exact same code, sudden success
Now it's ticking and not bleeding CPU for no reason :/
Lol tf
Yeeep, not doing good…
I’m starting to think this could be a problem caused by memhack the RawMemory set one
Because I was able to cause it on a server
Will try some more commands
Ok how about now?
Reset again?
Appears to work. I had a bit of a fluke making sure it's running properly? But a push fixed that 🤷
😅 hopefully it lasts
basically I did all the steps in the right order this time lol
Haha, yeah, it really is a bit of a hassle when it starts misbehaving 😅
That was a nice opportunity to test the downgrade code, too
Server is ticking, bot is happy, life is good
No market orders tho
Just drop it on the ground if you have excess lol
Thats what I do
that breaks logic for some things
or requires writing one for stuff that does not happen on mmo/other servers
Oh, was just saying that after we switched to the dynamic market. It's not generating orders. It should be
We didn't switch to dynamic market, I just changed the market.yml
I'll add some terminals
@rotund olive What does the CPU look like on this server?
The CPU on jaysee is so hot, it bitflips my terminals to have .store[RESOURCE_ENERGY] = Infinity. I've even destroyed the terminals and rebuilt them, but it comes back eventually. Marvin, you can turn off the cronjob that does that to E17S18 and E12S18. 🙂
use a proper .getUsedCapacity() method :p
accessing .store directly is deprecated
You mean you don't use creep.carry.energy? Wat?
nope, .store.get*(arg) methods everywhere
Do you have a source on that?
I don't see that documented in the docs
Lmao you figured it out
i remember it being said/written quite some time ago
checking in engine / docs yields nothing
i see though that .carry.energy is deprecated https://screeps.com/forum/topic/2708/draft-store-prototype-api
(...)
We're going to implement new global prototype called Store and use it in all properties such as StructureStorage.store, StructureSpawn.store, Creep.store (Creep.carry will remain as a deprecated alias), etc
did not know it existed even
Yeah, that is. As far as I know .store[RESOURCE_ENERGY] is the intended method currently.
Did you fix it, or is it not a bug
Or did kalgen just give me free energy
I've seen it mentioned several times, may be apocryphal
I think it's the various non-.store accessors and .carry that are deprecated, like https://docs.screeps.com/api/#StructureLink.energy and others
And as you can see from that one, .store[RESOURCE_*] is fine
.>
i mean, thats what i have spammed everywere xD
@left forge I didnt even realise you were still an active player lol
haha me either. Getting back into it
it's fun there is a test server 🙂 who is running it?
Marvin?
Yep! Marvin
I was super confused when I saw you pop up and I clicked in to see a fairly decent start
i've got 5 remotes going, seems like an ok start!
Ye, hopefully it doesnt get too crowded in this corner
My bot isnt aggressive, so you should be fine
my bot currently doesn't auto attack rooms with towers, so pretty calm as long as you have a tower
oh, yeah, my bot can get that quite fast
Hopefully auto-safemode works now so if your bot does decide to go after me it should fully die
Oh hey, I got the Infinity energy terminal bug too!
w11n7.terminal.store.energy
=> Infinity
That broke everything ❤️
So, w11n7.terminal.store.getUsedCapacity(RESOURCE_ENERGY) is Infinity, and getFree is -Infinity. And yet there's nothing in the UI.
Just burned the cursed building down
@rotund olive It happened again 😭
😅 what can I do?
I have no clue why it's doing that 😅
But that terminal is like a never-ending energy source, every time I build it
Is your room RCL 8
What's weird is that JSON.stringify(terminal.store) is {"energy":null} and yet the store helper methods are all out of whack on it
RCL6
Oh?
Usually it only happens at 8
At least in kalgens experience
I haven't had it happen in any of my rooms yet
Yeah, the thing is that having infinite energy right now means I should be able to spawn infinite upgraders, and I have a safety check to not do that
So I don't spawn upgraders
So… I die :/
…which given I was also debugging the emergency bootstrap system and had a bug, meant I lost a few colonies to code stupidity
Sounds like you can't handle infinite energy, should add a check for that
My bot has the ability to handle it after kalgen reported the issue lol
I don't handle a lot of things lol
OOH. Infinity serializes as null. Can't believe I forgot about that 😅
That explains stuff
I'd love to see the object representation of 6701a54937a0e70c13a2e6bf, but I'm not even sure it would survive properly, given the JSON issue…
Like, see in what sort of cursed state the store is within that
…it's also weird that rebuilding just retriggers the bug
Do a flood fill to range 3 from your controller and have that as a hard cap for your room's upgraders. Fixes this and will help with upgrader packing if you work on that down the road
Oh, right, use the terrain geometry 👍
btw market still does not have energy-buy orders @rotund olive 🙈
Way to become infinitely rich, I guess
uhhhg why lol
@scarlet fossil do you want ssh? I would need to ask everyone if they'd be comfortable. But it seems like you want to debug this
and I hope understandably, I'm not really feeling up to trying
(as in, the terminal bug not the market order stuff)
lol
This is peak laziness
Well I guess I can do both 😅. Not sure how the others feel about me being admin tho
not too say my time is more valuable or I have less time to spare, I'm just lazier than Traxus
I have no issues
Yeah will ask. But tbh if people are okay with me being admin they should definitely be comfortable with you. But people aren't always so rational
I don't really care about the code in any case, but the odd ways the server breaks? 😋
@haughty cloak @sonic marsh @polar path @dawn agate @kind trench @sullen condor
you're all the important people I think. Are you guys okay with Traxus having ssh? This meens he would be able to see your code like I am presently able to
Not to say that he will, or that I have 😛
Heres my code if anyone wants to yoink it 😉
funni
that JS is the same JS I get, I think its rollup doing its thing
lel
Fine by me
Go nuts, anyone trying to copy from my code is more likely to make their bot worse XD
I don't mind
I'm good
@rotund olive That is the vote, give him SSH
it's not a majority silly
when you're in an orgy you don't ask for a majority of the people to consent, you get everyone to
what the FUCK is that example?
Argument from Consistency of Consent
Consent is important in both cases. :P
true, just an, odd example
Hm, got another infinite energy terminal :/
Was not expecting a respawn lol
At that point I'm spending more time chasing completely bonkers bugs than the ones I was actually interested it
this sandbox has some interesting bots lol
No problem by me
@left forge
My bot active there? Last time I logged in server was not normal
I might be pushing code with grunt all 😅
eh can be, nothing groundbreaking there yet
my code is more curse than benefit lol
Crap. I recolonized one of the rooms with a broken terminal, and now there's ruins with infinite energy :/
LMAOOOOO
Deterministic claim planner go brrr
Just ship it off to me, ill take it
Yeah, I did that a bit earlier. Until somehow maybe doing that borked my other room's terminal
And then it's pain. Whatever gets hit by it pretty much becomes useless
meh, dont worry, im litterally a energy sink, ill spend it rather fast
Like, you have a terminal that's full of energy but can't be transfered to
Right now, if you can get to W11N7 or W6N7, I guess you can grab energy from those
I think @rotund olive just hates me and refuses to give me infinite energy
; )
i'm seeing storage.store.energy = Infinity
is that the same issue?
another part of the code sees an amount though, that's interesting
hm, looks like an issue on my side, no surprise
ah... I think its the terminal
I was adding the terminal energy to the available... and it was infinite 😄
terminal doesn't have any displayed energy though.
Oh, another victim
For the record, I got root access. I'm gonna poke at the objects to find those who have infinite stuff
7 matches, all terminals or ruins of one
I hope I don't get it, god only knows what that would do to my hauling calculations
I think the market mod is suspect.
Is it? I don't think the server logs are enabled, so I just get the usual "process ran" chatter
List of affected stuff is ```
[ 'E12S18:terminal:66fea8ced57da70bdd128755',
'E17S18:terminal:66fead6d4009ab0c22224e76',
'E8S13:terminal:6701bf59c89cdd0c2aa8ba3f',
'W6N7:ruin:6701ef403188f3003b934e24',
'W11N7:ruin:6701ef403188f3003b934f1e',
'E12S8:terminal:67022e8f9ab2790bde4efce8',
'E12S13:terminal:6702bb8cc89cdd0c2aa9806e' ]
I'm gonna update those back to 0
The issue affects terminals, which I could see the market mod touching, and it started happening after attempts to get the market mod working.
I might have deleted those things completely :/
Problem solved! :P
Yeah, I goofed up and accidentally replaced the documents instead of setting new values
It's just terminals, who cares 😜
@haughty cloak @left forge Do check your bot, I'm pretty sure they caught up on what was going on, but still
The market mod doesn't write to the object table. It just selects terminals with a null user from it and then builds stuff in the orders table. So I don't think it's that
Is that yours or every players?
That's every object that had Infinity in the store.energy property
You should put infinite energy in my terminal because I never got bug :(
I'm sorry, I can't do that, Dave
It happened again 😭
(╯°□°)╯︵ ┻━┻
to who?
I'm really curious where this is coming from lol
fuck
@sonic marsh Psst You might want to have a look at 6701ef403188f3003b934f01
Oh, hey, look at that
Hmm. My room should be looting that automatically. Odd.
Free stuff 😄
Hmmm I think my transfer creep is just pulling infinite energy from that terminal haha
Yeah, that's what mine did too. So it choked storage full of energy and then stuff started breaking a bit from having so much
Seems to be fine…. Limited by upgrader spots now with all that energy coming in. At some point the room will stop harvesting energy probably
Okay, there's two new ones, so it's still happening :/
Your terminals again, @left forge. Weird how it's the same two…
It's something when it sends
@left forge Do you sell to the market?
I'm looking at E12S13, resetting now. Look at how it gathers energy, then sends… somewhere, and then it's borked
So it might be the market orders then…
Yes there is market code
And whoop, Infinite energy
Are you selling or buying before it happens?
Asking for a friend
Hard to tell now I’m afk
Im going to start furiously writing market orders
How do you fuffil orders, just send the resource there?
It's sending energy to the other room
Here's how it looks: ```
storage.db["rooms.objects"].findOne({ _id: "67031bd3e729200bf0bf3561" })
{ _id: '67031bd3e729200bf0bf3561',
type: 'terminal',
x: 27,
y: 37,
room: 'E12S13',
notifyWhenAttacked: true,
user: '670063683188f3003b9345a2',
store: { energy: 10000, K: 0, O: 0 },
storeCapacity: 300000,
hits: 3000,
hitsMax: 3000,
send:
{ targetRoomName: 'E12S8',
resourceType: 'energy',
amount: 1000,
description: '' },
cooldownTime: 623019 }
storage.db["rooms.objects"].findOne({ _id: "67031bd3e729200bf0bf3561" })
{ _id: '67031bd3e729200bf0bf3561',
type: 'terminal',
x: 27,
y: 37,
room: 'E12S13',
notifyWhenAttacked: true,
user: '670063683188f3003b9345a2',
store: { energy: Infinity, K: 0, O: 0 },
storeCapacity: 300000,
hits: 3000,
hitsMax: 3000,
send: null,
cooldownTime: 623062 }
E2S2, right?
Si
I sent one energy to a neighboring room
Sender gets the bug, reciever gets the energy
Real quick, dont delete my terminal quite yet, I need to test something with WASM
Its not withdrawing or using the energy
idk how its being transferred, im going to find that out now lol
That's why the UI doesn't show the energy at all
Or why it was so confusing to me at first
You get both null energy and yet the thing is full 🤣
Infinity doesnt work :(
Too bad~
The transactions are correct, too
At that point I'd need to poke some console.logs inside that thing to see up close what's going on
I guess… something wrong with the distance fee? That's where I'm thinking it goes wrong, but why? ¯_(ツ)_/¯
Did you replace my terminal?
Sending to a broken terminal doesnt appear to break the sender
About to reboot the server. I added a bunch of logging, hopefully I wrote that perfectly 😟
🤞 I don't accidentally reset the whole server, too
please dont
I was 100 ticks off from breaking my RCL4 speedrun PR, so at least if it gets nuked again I can have another go XD
Almost got it
[engine_main] market: put 141 of K from [object Object] to [object Object], pre: 3141, feeTerm: 10000, amount: 141, fee: 22
I don't have a terminal tho @pallid totem do you mind doing the trick again?
One moment
-6
No longer appears to work
Just means you don't have enough resources
That was you?
market: put 1 of energy from [object Object] to [object Object], pre: 122250, feeTerm: 122250, amount: 1, fee: 1
yep
Welp, I guess the reboot fixed it or something :/
Yep, fixed :(
Only managed to profit 1.2 million energy :(
sigh
Sorry for the unexpected server void. I accidentally ran docker in non-detached mode, and yanked the server when I closed my terminal tab 😅. Should be back up, and there's still no Infinity to be seen anywhere
I'm everywhere.
I just cleared the market after checking the config for it. Hopefully it'll regenerate prices properly now, and also add things for energy
energy sell price of 0, nice 
Honestly tempted to switch to the dynamic market, set it to static mode. 'cause it knows how to generate proper commodities prices from the base prices
Anything that involves a market with buy/sell for energy is great!
@scarlet fossil Can you allow for minerals to be sold by NPC's?
(particularly ghodium)
(For nukes)
(because I dont want to write lab code)
Can we take a vote on it?
I vote you don't do that
So Infinity has to write lab code 😄
yeah lets not drive infinity to jump off a building
barter
and the only other person with a terminal doesnt make boosts NOR do mineral harvesting
lmao
I should have a terminal up soon. Actually I need to expand probably
@left forge Ill buy ghodium off of you
no auto expand ?
Nah, never really been a priority
your bot aint doin so hot
Oh? lmao
I know HOW to do lab code
I just dont want to
Like
really dont want to
I have it on my obsidian notebook in pseudo code, its really simple, its just that, its annoying because It integrates tightly with terminals and I dont want to write that code either
It's doing fine, just blew a bunch of energy on terminal and labs is all
Its not really remoting properly it seems though
They're coming back. It did cut them off for whatever reason, hard to say. CPU use or spawn utilization for haulers or something, who knows
You can make them modular to the point that they work separately, but can still be handled by a logistics manager of some kind.
Tons of ways to structure it though, if your method doesn't work well without the terminal code then it might not be worth it to fight and try something else
Actually I guess I should probably know XD. I need better logging
If your bot is using that much CPU that's concerning
I'm always concerned about my bot XD
There, mostly back to normal. Dynamic remotes can sometimes be very dynamic. We'll call it a feature, not a bug 😛
Noted
I'm against ghodium being sold by npc
Hardcoding labs to produce is simple enough
And does not require "server specific" logic like energy-overflow due to not enough energy-sinks , in case someone would want to make "no energy orders" comparison
Yeah, it's just that getting the minerals is challenging for me
I can't SK mine (yet), and I can't use terminals (yet),
Mostly laziness, but still
If anyone wants a few minerals and or boosts dropped into their terminal because it'll help get your code improved, lmk. Think I have most, and if not will claim another room and make it happen. (Update on my bot: backlog in order is applying boosts to creeps, duos, quads.)
looks like server is having issues @rotund olive @radiant lily @scarlet fossil ?
Indeed
[engine_runner1] process 1071717 exited with code null, restarting...
Great…
Looks like it's ticking again?
Not sure what happened. I kicked it, it crashed a bit more, and now I think it's not crashing anymore
looks ok
usually when similar thing happens on my docker server it just makes ticks 5x longer, without code crashing
Said [backend] invalid room and went on happily
I can also see it complaining about @pallid totem's bucket. 3 times, then went away
Seems to be partially the fault of the server
But most of the bucket things are most likely me lol
Yeah, something just caused it to freeze. It was ticking, but the runner crashing stopped any code from actually running
i have expansion recalculating on heap reset
also, it seemed to happen after i pushed code 🙈
my theory for some time is, that if you just happen to push code at wrong time, shit breaks
but never managed to find anything in logs or do it on-demand
or on global reset
runtime restart signal
The log files are weird, I'm not sure how much I can get out of them :/
Misread that message
screeps-1 | 2024-10-23T20:02:06.907546980Z [engine_main] Game time set to 2052657
screeps-1 | 2024-10-23T20:02:07.817555424Z [engine_runner1] process 2314 exited with code null, restarting...
And then it got caught into that restart loop, with that runtime restart signal spewed out from time to time
¯_(ツ)_/¯
Uhg lol
Kind of impressive that your bot is a menace to both official and community servers lmao
@rotund olive @scarlet fossil server borked again it seems ?
totally not after i pushed code moment earlier
Looks like it is
🙈
1st it did not accept my code despite being only 17kloc, then i tied pushing via steam-client sync, it saved but stopped ticking, and then threw
[8:53:54 PM]SyntaxError: Unexpected token u in JSON at position 0
at Object.parse ()
at global._init.global._start (:16017:61)
at ()
at make (/screeps/node_modules/@screeps/driver/lib/runtime/make.js:160:34)
after Game.cpu.halt()
Same issue. Runner is null-exiting
Stopped ticking while I try to see if I can get it to work properly
A restart didn't do anything, so 😩
process 36 exited with signal SIGSEGV, restarting...
So it is a signal. Great
what cmd you used ?
docker compose stop then start
I'm poking at it. I just noticed it ticked at least two times
I dropped a few console.log to try and pinpoint why it's segfaulting, but sadly it either never got anywhere near to those, or I completely misunderstand how that thing's logging works
I don't like that it's SIGSEGV though
Oh, hey, that did appear to help
Right, it's crashing again
Lol
Y_Y
At that point you should push that to MMO, let o4 handle the issue
I have no idea what's even happening. The two console logs I added don't even seem to trigger, and yet it's running code
because if it does not crash server, this is not compatible with what i have on mmo :p
hum i commented one thing that uses reccurency, lets see
ye, looks like it was it
That's crazy that this manages to take it down completely…
export const RECIPES = {
recipes: null,
load() {
console.log('Loading RECIPES to heap');
let RECIPES = {} as any;
for (const c1 in REACTIONS) {
for (const c2 in REACTIONS[c1]) {
const r = REACTIONS[c1][c2];
if (!RECIPES[r]) {
RECIPES[r] = [c1, c2];
}
}
}
this.recipes = RECIPES;
},
get(): { [x: string]: ResourceConstant[] } {
if (this.recipes == null) {
this.load();
}
return this.recipes!;
},
getRecipe(boost: MineralBoostConstant): ResourceConstant[] | undefined {
return this.get()[boost];
},
};
RECIPES.load();
(...)
public produceBoost(rName: string, compound: ResourceConstant | undefined): void {
if (!compound) {
return;
}
const ingredients = RECIPES.getRecipe(this.production[rName]);
if (!ingredients) {
console.log(`[${rName}] needs basic ${compound}`);
resourceRequests.add(rName, compound);
return;
}
// returns amount of resource in room
const iData = inventory.GetData(rName, ingredients);
if ((iData[ingredients[0]] || 0) < 300) {
console.log(`${rName} misses ${ingredients[0]}`);
return;
// return this.produceBoost(rName, ingredients[0]);
}
if ((iData[ingredients[1]] || 0) < 300) {
console.log(`${rName} misses ${ingredients[1]}`);
return;
// return this.produceBoost(rName, ingredients[1]);
}
console.log(`${rName} will produce ${compound}`);
return;
}
the snippet
in theory this should not have infinite recurrency since it has the check on !ingredients and return
hangs again - but thats not on me :p
No, I just restarted, still trying to understand why I'm not seeing my logging
It should be running again
And yet, does not log
for a second I thought you had grabbed ahold of my recipe site's code
recipes is a funny way to describe chemical reactions to me for some reason
hmmm maybe try without that code?
just to see
Oh, it's definitely that. Server instantly start segfaulting when that code shows up
I'm gonna PR the segfault thing back into the engine. At least so there's something coming out of this
Lol sweet
It's not much, just clarifies the failure. Doesn't go anywhere near explaining what's actually going on
Hmmm
This code + .halt() spam = crash?
No idea, I just know it's bad enough to cause the Node process itself to crap out and burn
And I don't even know from which part, as the few logging statements I added to runner.js didn't show up anywhere
Im tempted to push this code he sent to MMO, but I dont want to dampen other people's experience
Well, that would be one hell of a way to get it fixed 😅
It's just weird that it causes a crash. Pretty sure a stack overflow would just raise normally
Like, the runner completely SIGSEGVs
The Node.JS process runner SIGSEGV's?
That sounds like either a node bug or a RAM issue
This versio of node has a ton if issues
turns out running a 200 year old version of node means there are a bunch of bugs that have since been fixed?
definitely a weird bug
Yeah, that's what the PR I filed is about, reporting the other reason for a process exiting
Yeah, node needs some love from o4 lol
Theoretically the community should be able to do this stuff themselves though?
I mean, some polyfillage might be needed for some removed APIs, but like, it should? be fine
Alina managed to update a lot of stuff, IIRC, from that attempt at running a more recent version of Node
Maybe that would be worth making a community server out of it?
lots of work and no money being given to do it : P
would rather just work on another game where there is active development
Oh yeah, hows the networking going?
pretty much
lol'd
I lol'd again, this has broken me
hey, it just means you have a very very very consistent platform to work with
even if its slightly green, fuzzy and resembles swiss cheese a little
thats just suprise features!
@pallid totem anything special going in E17N4 that makes you move crapload of combat creeps there ?
Huh?
fuuuuuck
Nightdragon used to be there
I was wondering where my CPU went
Those guys MUNCH the CPU budget
kalgen wont be happy
It was ages ago
o
10/7/2024
that long ago????
yep
@kind trench Still testing your luck in W2N6? I just spotted a military creep 😅
Oh hey, I accidentally took out the server
Asked for map visuals in range 400 
it's the default remote-defender
still did not touch the "dont mine hostile remotes" code
@scarlet fossil wtf is happening in W2N6
my small blinky is happily blinkng your defenders that are ignoring it
it killed some it looks like around ~2898500
looks like it drained W2N8
Not sure, you caught drills
Those are the power miners, they're not exactly hostile
drills have 20ATTACK ?
Possibly, yeah
They're on a MAAM pattern with no limit
Normally they're part of a set with coolant (those have the heals)
There's 2 coolants per drill, one set per power bank
I should be working on estimating the defense force better. This is just 
those are golden names for power miners
@rotund olive ncp on server, person called "Rodrigo" using this bot: https://github.com/NobodysNightmare/screeps-ai
My AI for screeps.com. Contribute to NobodysNightmare/screeps-ai development by creating an account on GitHub.
This bot looks really not powerful at all
but thanks for letting me know
is all good
@cunning osprey looks like is running OM ?
Delete
also, will be testing my boosting code so might cause few dead ticks
oki, found out where i made infinite recursion that crashes server ^_^
Oh, I'll kill
Oops I forgot
Sorry doing stuff with this server is weird when I don't play screeps anymore
o you stopped completely ?
breadline too long
i knew bread bot was just a diversion from commerce bot
commerce bot
Isn't that just that Market dude? lol
Lol
there's a market dude?
Right sorry
NOT THE FEEESH
Bonked CPU
I guess?
I was looking at deleting their objects completely, but controllers make that a bit hard
Ah, also, I can't set CPU to 1. The GCL-to-CPU stuff will kick in and boost them back up
oh
how about - (their gcl x 20) + 1
There's so much weird stuff going on… I tried setting blocked to true, but that resets to false
'unno. There's a blocked key in the user object
I thought I could stop them from logging in with that, but I don't think that actually sticks, for some reason
oh
which shard?
Oh, here
Gadjung colonized a room just next to me, and his bot's been doing squirmishes into my remote
So I get to witness how bad OM's combat code can be
I'm GPL 71??
Well, time for some powercreeping, I guess
just still sending creeps because i treat it as own
Yeah, makes sense
still tweaking with ramparts and walls design
now it seems it works good enough everywhere
I can see that. That's a lot of walls you got there
just need to calculate passage ramparts because that got forgotten
but running debug still eats 400cpu/tick 🥲
…My pcreeps configs are all wrong :/
I don't think I can level up the configs I want properly
It's funny how that game always throws new problems at you in unexpected places, like… how do you maximize a pcreep's power levels configuration
looks like your powerbank creeps died in my room ;D
Likely. I don't think I've got proper "don't go there" code (unless I set it manually). With time a room's hostility's gonna decay and get back to "potentially safe"
any chance we can switch to the newer market mod that has commodity orders?
I guess that's doable, yeah
I'd recommend setting it to 'fixed' instead of dynamic, unless we want this server to finally be the test bed for me to fine tune the dynamic stuff 😂 (please no, it's been on my todo list for 4 years)
Yeah, that's what I was thinking of doing; just have a static set of orders and no price changes.
I'll have a look when I get the time
@scarlet fossil you'd be up for testing offense code this weekend ?
Possibly, yeah
I'm gonna set up the dynamic market, so expect a bunch of restarts while I do that
Okay, done. Pretty sure the prices have taken a dive compared to what they were previously though
@cerulean wadi Got the dynamic market running. Just a few things I'm noticing: I'm not sure why it's making a different amount of order in some cases
…wait, now they're all very big (2M+)
That's what I noticed, but now there's a few resources where there's only big numbers left
Also this:
I've Typescripted the config file, and those look fishy to me
Wait, the big numbers are because of Consider this a "per user amount" as it is multiplied by the number of active player terminals, I think
Nevermind then
Ya if I remember right it's supposed to scale based off how many eligible traders exist. It's been a long time since I dug into that tho
i've probably been messing around with it as it is for that long 😂 .
Ya I think I made that plugin for an SWC or BA right about when commodities were a thing and just never really circled back to debug the dynamic stuff.
@scarlet fossil are you fine with this?
Yeah, no issue with me.
I limited my OM's expansion to 6 rooms, so it's not gonna grab anything new
And I'd say the remoting as it is now is complete: all the rooms that are reserved are the rooms it plans to use
even if invaded?
Would that make a difference?
Them the core rules about remote counts: ```js
static settings = {
remoteSourcesByLevel: {
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 9,
},
maxSourceDistance: 100,
};
well if there is a decently strong force that plans to occupy the remote then it probably would result in that
so maximum 9 remotes and minimum 4.5?
The only reaction OM has to invasions is to pile up creeps
Unless I decide to just drop it and remove the directives manually. I'm not even sure it's not gonna try to set up the remote back if I don't block it completely
so no remote switching?
It might switch if I convince it that the remote's not worth at all, but that's not automated
I just started writing some code to track skirmishes, because of Gadjung's placement on the other side
even the W2N6 😄 ?
This reminded me that I need to redo my remote code.. it's currently "hey our neighboring room has sources, HARVEST THEM... I don't care that it's on the opposite side behind swamps"
Find my pre 7 rooms tend to get spawn locked trying to keep up with remote creep production as well
Yeah, I got a bit of that as well. I've barely implemented spawn utilization tracking from Harabi's blog post, but it's not wired into anything yet
W1N6 is bleeding energy on that remote, but there are other rcl8 happy to just dump energy into it
@rotund olive ichigo requires CPU privileges removed, using slothBot OS bot
i'm winning !
your creep just sits and waits for bravo i think
Sloth bot sighting?
He shouldn't be punished, his punishment is using my code
yes
it doesn't seem too bad, early remotes and all
Economically it's... Ok.. the military code is shit
It is fully hands off tho, so could be worse
I only recently came back to screeps to give it some much needed TLC
so its not really worked on anymore, or just gets occasional updates?
Whenever I spawned in here was when I started updating it again.. prior to that it had been a few years before any real work was done to it
I still haven't seen anyone using the leaked version of my bot. Which would be against TOS but also very funny.
i dont think its leaked on github anymore
Yeah, it's deleted from GitHub. There's probably a copy of it somewhere though if anyone cared enough to take one. Once information is out, it generally stays out.
I have a copy
lmao
Sloth bot does everything in the game, just does none of it particularly well
does it win?
It dies and stops having to do things, so depends on your definition of winning
huh... he spawned into a 1 source room and my harvester code is as confused as he is
The logic just assumes it will always be a two source room, because why wouldn't it be 😂
does it crash trying to interact with sources[1] ?
No the second harvester will just sit next to the other one and stare at it menacingly
I actually have a 1-source room on MMO currently, for claim jumping. I'm gonna unclaim it as soon as I claim the room I'm jumping too, though.
i had 1-source room for X once
was definitely not worth it, especially without remote mining nor any resource-sharing code when it was developing
Yeaaah, definitely not the most efficent combat code around 🤣
And I'm definitely too lazy right now to work on something a bit less… eh
Between the defense directive getting removed at random, usually while it would actually be useful, leading to creeps losing their managers and thus becoming dead weights because the idling system doesn't reaffect them properly, the combat code thinking "I must take care of that creep that could be doing potential damage to nothing that just stepped in the room now", making them switch targets from claimers which are definitely getting closer and closer to the unprotected controller, or reservers that go "oh no, I'm in danger!" and spent the majority of their TTL edge-dancing, I have my fair share of creep combat memeing
What's the vote on ichigo/SlothBot?
…what's up with the abandoned @bitter lava rooms, too
where did it spawn
W7N14
a quite remote place, idc then
Yeah
if would be closer would vote for leaving since i'd need a punching bag soon :p
the bot abandons rooms if it cant get enough sources
are you talking about me?
you're far too, so i guess @scarlet fossil will have to suffice :p
I don't know much about SlothBot, but possibly could make a nice 👊💰. What I don't want is it spreading uncontrollably and lock up whole swaths of the map
yay
also i think my defense code should be ready tonight @scarlet fossil
Oh, that's gonna be an interesting night then
I think my quad code's broken. I should check that
I haven't touched the codebase for a couple months now, and I left in the middle of a bunch of stuff, so I'm lost in a sea of branches
so a forest then
heh, i'm the master type-of-guy
with lot's of bugfixes and other code inside each commit
Yeah, my master becomes like that once I'm relatively sure I'm done doing changes to something
But before that happens? Tree-fest
i guess you can send a quad
Well.. at least my bot hates itself
ok maybe not, tried to fix roads in layout and messed stuff up
@cerulean wadi your harassers seem to be wandering into my highways
It has traxus flagged as an NCP and is set to not like them by default
it shouldn't sit outside your rooms
what did traxus do
used overmind as a codebase
@scarlet fossil whyen the quad coming
i will also send a quad
it sees an overmind, it assumes it's an ncp 🤷♂️
remove?
no?
dont think you're in viable range to be testing my defense code
no to the highway
I mean, attacking my harassers passing by in a highway room will get you your own harassers
is there a number calculator for the spawning?
like "you have this much hate so this many harassers"
ya it has a standing tracker that reverts to 0 over time
also @scarlet fossil did you manually stopped defending W2N6 ?
will keep sending?
ncp's have their own array. It's holdover code from when we had an entire alliance on mmo bent on wiping them out (as they're shit for the game imo)
set number for them?
my combat code is currently broken tho, so it sends creeps that don't do a whole lot until I get around to fixing it
oh
turned off harassers until I work on that, otherwise I'm just throwing away energy 😂
donut making enabled, lets see what bugs it'll trigger in my code
Yeah I dropped it
My ability to track what's happening is limited and coding for that even worse
@radiant lily Server appears to be unreachable? Is there any maintenance going on or something?
Guess it fixed itself. Sorry about the ping
I couldn't SSH to it, so that was a bit weird
@kind trench I guess we just switched remotes, huh?
it works ^_^
got 2 sources for one, i guess it's win
😅 the server did die last night as I was uploading a code change
so we now have remote quad defense?
nah, ppl usually dont traverse in quad formation
that's just aestethic (and general movement breaker)
yes, claim, keep at rcl2, build walls, unclaim
cool
@scarlet fossil can i pls have remote to right
Sure, I guess
I still have the one right of that colony
thanks
Actually, you can have all of that
huh?
I overextended, and I'm draining bucket
I think I'm gonna have to delete a colony :/
Free stuff 4 u
Okay, CPU balance has been restored
I'm wondering if the server isn't acting up a little
Do you have a working CPU indicator top-right?
yes
its weird though
spikes from 0 CPU used when something happens to my average CPU used sometimes
sometimes, although its rare
[engine_main] FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Server's unhappy
no not that, sometimes the error indicator flashes
its probably that but i didn't check
again???
@pallid totem You're showing up in my logs. Mind having a look at what your bot's doing? It's logging about an empty bucket just after a crash happens
wait crash as in ticks went off or we need to respawn
screeps-1 | 2024-12-15T13:08:09.318087299Z [engine_main]
screeps-1 | 2024-12-15T13:08:09.318119119Z <--- Last few GCs --->
screeps-1 | 2024-12-15T13:08:09.318125189Z
screeps-1 | 2024-12-15T13:08:09.318129799Z [162:0x5617e91c6940] 99528 ms: Mark-sweep 1330.7 (1457.1) -> 1330.7 (1440.6) MB, 63.8 / 0.0 ms (average mu = 0.115, current mu = 0.007) last resort GC in old space requested
screeps-1 | 2024-12-15T13:08:09.318134889Z [162:0x5617e91c6940] 99596 ms: Mark-sweep 1330.7 (1440.6) -> 1330.7 (1440.6) MB, 66.9 / 0.0 ms (average mu = 0.062, current mu = 0.006) last resort GC in old space requested
screeps-1 | 2024-12-15T13:08:09.318139539Z
screeps-1 | 2024-12-15T13:08:09.318143649Z
screeps-1 | 2024-12-15T13:08:09.318148259Z <--- JS stacktrace --->
screeps-1 | 2024-12-15T13:08:09.318152469Z
screeps-1 | 2024-12-15T13:08:09.318156789Z ==== JS stack trace =========================================
screeps-1 | 2024-12-15T13:08:09.318161059Z
screeps-1 | 2024-12-15T13:08:09.318165439Z 0: ExitFrame [pc: 0x1072adfdbf1d]
screeps-1 | 2024-12-15T13:08:09.318169229Z Security context: 0x1ee5d27e62c1 <JSObject>
screeps-1 | 2024-12-15T13:08:09.318172119Z 1: postMessage [0x365ce40bbba9] [internal/worker.js:379] [bytecode=0x332e27fe331 offset=24](this=0x152c156d6519 <EventEmitter map = 0x1e7fba533bb9>)
screeps-1 | 2024-12-15T13:08:09.318175079Z 2: arguments adaptor frame: 2->0
screeps-1 | 2024-12-15T13:08:09.318178699Z 3: /* anonymous */(aka /* anonymous */) [0x631b8d67501] [/screeps/mods/node_modules/node-worker-threads-pool/dist/poolWorker.js:38] [bytecode=0x332e27fe091 offset=110...
screeps-1 | 2024-12-15T13:08:09.318183329Z
screeps-1 | 2024-12-15T13:08:09.318193649Z [engine_main] FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
So the main server process panics because… memory
im not a very computery guy so can you explain whats happening here?
is the main server out of memory?
It's not, it's a beefy machine. At least on the outside
I'd have to look into the container as to what might be happening
ok
why though?
No idea, still looking
history maybe?
I'm getting a ```
[historyWorker] started
(node:548) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 13 error listeners added. Use emitter.setMaxListeners() to increase limit
(node:548) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 13 error listeners added. Use emitter.setMaxListeners() to increase limit
in the logs, but it's unclear where that's coming from; could be the history mod or something else
Server didn't like me yanking the mod out of it 😅
Yeah, no more crashes
Something went wrong with the history mod, for some reason
I mean, we've been spreading, and possibly it's doing something silly that causes massive objects to get created or something, and that gets the GC into a frenzy
it doesn't work
Is my bot still running?
I haven't touched it in ages
I actually haven't looked at all
You just showed up in the logs, and I was wondering if that was related to the crashing or not (unlikely)
You have moving creeps, but roads are a bit in disrepair
Counting 6 rooms, 3 RCL8, 1 RCL7, 2 RCL6
Yeah
I think something severely perturbed it, and it's only picking back up right now
Possibly the many crashes
Yeah, you'll need to take a look. If I'm correct and ud-whatever are your upgraders, then a lot of those are just not doing their job
On top of that, one of your rooms seems to have placed all its csites, I think you're at the cap so none of the others can, and that single one isn't even building them
@kind trench You're in trouble, too, though there is a bit of movement
…not sure what happened to Alphonzo, too
Yeah, not sure as well, and I've just disabled the history mod because of the crashing :/
Yeah, this is bugged behavior
looks like you crashed @scarlet fossil
Oh, the flag-splosion bug
That hasn't happened to me in a while
Crap, I just deleted all of it without checking how many that was
That would have been a fun stat
no simple check if too-many flags ?
There's a bunch of them, but not really "how many"
I think what happens is that, if there's some sort of reset instability, I start re-running the detection code for deposits, and even through there's a presence check there, it just keep dropping new ones
So you end up with… I don't know, I had more than a screenful of flag in the right click menu
And then it starts dying because there's just so much flags to loop over
It's always deposits though, and I think the issue is that I might have no visibility over the room and acting from memory
Just a bit convoluted to force the issue to happen and actually look at what's happening
@rotund olive Rodrigo still requires ban
@kind trench It seems that your bot is not good for public interest🤣
it bugged out a bit, because it should gridify almost everything in route-range 3
besides that, it looks like it works as intended:p
but i see i need to sit down and implement the cleanup zone finally
but that requires porting and refactoring of combat code from previous bot :/
can you just reserve E8N6 so my bot stops trying to mine it ;D ?
@sonic marsh in the most inconvinient spot. can u move pls
No 🙂
But nah, I'm respawning around as I test my room planner. I'll be gone from there shortly
Or as soon as my spawn relocation logic suicides the room because I think that has a bug in it
Good luck getting through these beefy ass ramparts
I'll hop out now though, just thought it'd be nice to be neighbors again 🥲
Although I am wildly tempted to plunk the next one down directly adjacent to one of your rooms XD
im gonna need boosts
no dont
i need quad test
NOO
oh
But now that SWC is hopefully coming after the holidays, I've got strong motivation to get that completed.
how does your defense work?
How do you mean?
like
how do you get enemies
how do you get required defenders/defenders body part count
Enemies are everyone that doesn't belong in my remote. Or anyone in a room that my bot thinks should be its remote. Offensive logic is all manual at the moment, so it doesn't get harass or room siege targets on its own.
and everything that is not yours but is "owned" is enemy
For defenders, I'm working on a math solution but I don't like where it's at right now, so I'm just using basic scaling with room RCL until I do
Unfortunately it does give me the Overmind remote defense problem at the moment
so gotta start working on offensive code
Oh haven't check that. What's happening?
My goal is testing combat code... with you?
Does everyone make the hate list? I don't think I've seen any of your rooms yet 😂
My bot don't have
i try to implement one to make it a bit easier for choosing targets
why is my hate so high?
because my calculations are s**t for now 😄
oh
multi-quad-aware pathing seems to be working 🎉
Awsome. How did you make it? Pathing for one quad -> mark as unstepable -> pathing for another one -> ... ?
let's see the failure of rcl8 sieging rcl6 ;D
i think it got off after some issues
it'll be manual stuffbecause no time for doing proper logic before it reaches reasonable rcl ;D
and still easier to debug on less "lethal" room
need to scale cpu better when sieging
I disabled it last week because of some random OOM crash it caused
defender just sits
here the same : active defenders declined to move to ramparts and attack
and when my quad came close to spawn, they still did not attack despite being next to quad, even though towers shot
No sm popped?
I guess there was some severe bug
Did that small creep attacked? Were threre any repairers?
Hmm. I really don't know what happened. @kind trench Can I ask you to launch another attack when I'm online?
you had other room in safe-mode already
I see. When can you play screeps? I will be online an hour after from now
now-ish
Oh. Are you willing to help me? I'll ping you when I get home
it's sending quads all time now, hooked to flag
good that i had a bug making quads stick to another flag instead of going on automated mission, because forgot to push the dmgOutheal calculation for costmatrix 🙈
ok now it works
If your bot is sending all time my bot should be wiped in no time
your E9N6 is drained though since all night you repaired ramparts i guess
it's on manual for my debug
so ye, that aint happening soon 😄
I see
