RP and RepeatPan's mods

Remove rp_merge_names. They conflict with each other. Also, there’s a bug in rp_proxy_factions, re-download the smod from GitHub.

I completely agree. For all I care, I embrace the removal of lua’s io library from a security point of view. However, lack of logging is going to be a real issue. It’s possible to survive without dir (although quite uncomfortably), but io.output is going to be a breaker.

True enough and this wouldn’t be a problem as long as we could adapt. We can work with (or around) changed interfaces and systems, that’s not a big deal. After all, it is what we have to do if we want to get this not-quite-authorized access to certain things. But if your code suddenly falls completely silent, debugging is going to be a nightmare (or impossible in certain cases). That’s the problem.

I didn’t want to imply that they’re wearing monocles and laugh diabolically while printing those questions on gold paper and pin it on their office wall.

Somehow being open to modding contradicts with those two points in some ways. A very quick “Well, that’s how we do it/would probably do it”, even if that’s not what the long term solution is going to be would be appreciated. As for the secret part, I don’t know. I’m merely referring to things that are either in the lua, which is kind-of-plaintext and the livestreams. Both things that I would not call secret.

I have only Workforce (working), Sized People (working) and AltNam. Maybe is some problem in config? Just look:

stonehearth.log and stonehearth_mod_server.log please.


On a general note, please don’t take my “complaining” here as some sort of… discontent? Anger? I’ve merely been disappointed a bit too often by games and have lost faith in developers in general - so it’s not something personal directed at Radiant. If they manage to pull off an interesting update they’ll definitely have earned my trust and that will be the last update that I’m preaching about the possibility of an upcoming apocalypse.

2 Likes

…solved by myself xD

All newer configs have beginning ‘rp_’ (in example: rp_alternate_naming.json). I changed the ones I had on PC with ones from rep… and AltNam works. Even one of spawned villagers was called Steve Adamo (Persona: Psychopathic Misantrope). Sorry I didn’t screenshot him. :confused:

…but now Sized People don’t works. I will repair the paths in file by myself this time :slight_smile:

Heh.

Meanwhile, I’ve downloaded lua and compiled lua-5.1.5.dll myself - only to find out that I completely forgot how annoying C programming is. I’ve ended up with a library that is 1/4th the size of the shipped one. Perhaps @Xavion was right and they did modify lua - but I believe this is more of a case of “Find the right toolset/CRL” .

i have to admit, that was the tone that came across (to me, at least)… so this followup comment is certainly appreciated! my apologies for the misunderstanding… still (almost) besties?

right! we’ll, all we can do now is wait to see what Radiant provides in terms of a modding framework/modding APIs, and we’ll go from there! :+1:

Can I still try to hack the planet though?

2 Likes

only if these guys (and gal) can help…

4 Likes

I’d expect it to have minor changes at most anyway, the most I’d predict would be an extra function or two to let it interface with the engine more easily.

As for my modifications as I mainly wanted stuff rooted in ui anyway having to call it from js is fine. It’s just trying to learn everything while simultaneously reading this awesome book I started that’s slowing me down. The book keeps winning, luckily after something like 16 hours of reading over a few days it’s getting closer to the end and I might actually make a mod.

I thougt about it though and couldn’t you save stuff to the renderer settings? Super hacky, and you’d need to patch into the settings panel to make sure they don’t get accidently deleted but it could be possible as a temp fix. Depends on how they’re saving.

Also what exactly did you do to get it redirecting output to a separate file with the logger. Because I just saw code that looked like it called the built in logger.

1 Like

I don’t think so. It would go against the idea of lua being a module if you had to compile not only luabind but lua too. Even GMod moved away from custom-compiled lua at some point I believe. It’s not worth the hassle when you need to update it. Not that 515 is going to see many updates I think, mind you.

And that’s exactly the reason why I’m not going to. This might sound ridiculous, but whenever I patch something or work around something, I try to do it in a clean manner. The hack itself might not be the prettiest, but the result should be. I don’t want users (or mods) to mess around in the renderer options as they can render your game really messed up.

I’ve called io.output and specified the filename. After that, all calls to io.write (which was called by my re-defined print and rp.log) were redirected into that file instead of… if only I knew. I don’t think that stuff ever reached stdout.

RP doesn’t call the built in logger because I never really managed to get those to log into the files properly on the server side - which was what all mods (minus hotfix) used.

(Taking the liberty of a new post here because 9h and I might need to link to this in the future)

Let’s talk business. There is one thing that we absolutely need to talk about: The absolutely certain incoming end of all lua modding an unspeakable horror from another realm.

##With two flashing red eyes, hundreds of bacon tentacles and at least as many teeth and eyes, it’s coming for your citizens…

 

 

 

 

 

 

 

 

Nobody really knows what it is, nobody knows where it comes from… Rumours are that it is roaming the lands, in search of Ph’teven… But what Ph’teven is or how it could be sacrificed remains a mystery. Those who have encountered it have never really been the same. Unable to sleep, in fear of meeting it again, they have been running for their whole life. Or what little of it remained… Because it is always watching from its realm, eager to strike as soon as somebody falls asleep.

rp_geoffers_nightmares (requires RP 2201+)

(Ping @Geoffers747 and @SteveAdamo)

Note that due to the fact that I’m once again abusing systems that are not completely finished yet (this episode: “Materials that are loaded from a path outside of horde3d/”), it is not possible to smod this file. Simply extract it to mods/. I’m not going to explain what the addon really does, as the explanation itself should be enough of a hint while remaining all mysterious and stuff.

If you are disappointed by nothing happening, try more settlers, sleeping more often or adjust the user_settings.json / mods / rp_geoffers_nightmares / chance entry to something like… 40? 80? 100? The default is 1 (i.e. 1% chance something bad happens per sleep cycle).

This might very well be the most comfort-ish addon that I’ve written (right next to rp_workforce; minus the fact that I’m loading materials from a path I’m not supposed to; the non-existing entity_created event; the fact I’m absolutely ignoring any sort of file structure with directories and just smashed all of it in two folders; I’m manually loading a personality file; … but that’s about it, honestly! I’ve even used components! Which is probably the completely wrong address and should have been an observer of some sorts but eh, there’s no get_observer or has_observer, so components are superior in case another addon wants to geoffer people manually)

In this context, @sdee asked for event hooks that would be useful - I’d like to add “add_buff” and “remove_buff” to the list if they aren’t already. Mostly because I require some sort of start sleep/end sleep thing and checking for the buff proved to be quite okay.

… I should stop coding things between 00:15 and 7:00. This is silly, really. You could say it’s… nightmare fuel.

6 Likes

So you’re posting this like one hour before I wake up… noticing this while eating breakfast bun at work. Have to wait 11 hours to check out this mystery… :frowning:

The psychopathic misanthrope say “limp” where it looks like it should say “limb”. Interesting theme, I wonder a series of mods around screwing with the player could work? Something to think on. Seems kinda nifty though, the main reason I like ti of course is using stuff so that I can have something to learn from that doesn’t involve as much poking through the code.

1 Like

i have so been pinged… how may i serve thee?

glances at the latest content to emerge from the depths of @RepeatPan’s nightmare addled brain

ahhh, i see!

so, like poor @tkh, i too must wait for the whistle to blow at the end of the day, before i can partake… :cry:

Woops. My English skills aren’t that great at 3 o’clock in the morning it seems. It was kind of difficult for me to get something that would fit the personality - I’ve looked at the other logs but didn’t really “feel” a character out of it.

Does RP have the Override/mixintos stuff that the Stonehearth Modding API will have?

I really thought about implementing it, but not really. You can abuse that RP sends stonehearth:entity_created events (radiant.events.listen(radiant.events, "stonehearth:entity_created", function(event) event.entity:do_stuff() end)), which is what rp_workforce and friends do.

And of course, there’s also rp.set_entity_proxy, which allows you to create another entity type instead of the one that was requested. I should probably use that one for rp_lucky_worker, hm.

Right, since I’ve had a vision that the next Alpha is not coming next week (or, by releasing this I am summoning it - who knows) I’ve decided to Mann Up and finish 2699.

The result is quite nice, I would say. You can grab the three .smod files for RP here and the updated mods here. To enjoy the loading screen that I have made using my amazing art skills and witty writing skills (and not just by copying phrases from a very well known game), just download rp_delay and see ten seconds of completely true facts in a loading screen that has HACKS written all over it.

There’s a high chance all this gets obsolete with the next update; but oh well. The next step would have been to switch mods from pcall to coroutines and allow mods to be loaded in some sort of “deferred” way too; therefore allowing the GUI to show progress on the lua side of things as well.

Nobody has that bad of a machine and/or mods are not that expensive yet, however, so I doubt it would have been of much use. But still. Loading screen. :expressionless: I would even go as far as to say that mine’s better in the sense that it doesn’t throw messages at you you can’t possibly read because it’s switching so fast - also, because fade effects. Yes.

Edit: Since I am supposed to be bold and clear, the changes that are in this preview are about the following:

  • JS is now loaded after lua (if the mod was written for such) and follows all rules lua mods were following so far: Require, before, requests and of course disabled.
  • Yepp, you can disable JS mods now in your rp.json/user_settings.json.
  • The mods are loaded in a loader, which is shown before the main intro. This also gives mods a great opportunity to mess around during post-Stonehearth, but pre-execution (minus ShellView’s initialization).
  • There’s no music in this loading screen. Not just because it would annoy me and make it really impossible for mods to stop, but also because it would be unfair to play it before the intro was shown.
  • Did you know? r2699 has a loading screen implemented which contains over 5019 “Did you know?” facts.
  • The loading screen is not defective.

And I bore you once again with a new update that brings you absolutely zero new features! Hooray for zero new features.

If the current update proves stable, it will be the end of r2699 and I’ll merge it into the master branch. I’ve removed rp_proxies and rp_merge_names and instead provide some functionality in RP directly. I’ve added a bunch of events (which can be read in world_generation.lua/population_faction.lua) which allows mods to do their stuff without modifying existing classes. Well, almost; world generation is a bit tricky but I’ll see what the Radiant guys and gals had in mind.

So in this update, modding got a bit easier in the sense that mods can slightly better co-exist without modifying core elements (which RP does now) - at least for factions. World generation is, as I’ve said, kind of a heavy topic that I have no need in diving in yet - if anyone needs a specific event he can give me a call and I’ll add it, but so far there seems to be no need.

In case you downloaded the previous r2699, you should be able to Steve Cannon everything but RP (which was renamed to -rp, rp and zzz_rp - curses!). Due to the odd way files seem to be loaded (smod files are loaded and executed, then directories are loaded and executed), it is necessary that you extract at least zzz_rp when working with an extracted stonehearth.smod/extracted mods. Otherwise, stuff won’t happen/bad stuff will happen. I really hope we get some proper mod loading soonish.

That being said I’ll take a break for a few hours (or today, we’ll see) and then try my luck at providing some sort of “harvest” button that allows you to spam-click trees/bushes. That shouldn’t be too hard with all the APIs I have in place now.

You can get RP r2701 here and RP-Mods r2701 here. As with r2699, they’re not compatible to mods written for r2300 or earlier.

rp_click_and_gone (requires RP r2701+)

Simple mod that has some stuff that will be merged into RP 2703. Basic functions:

  • Adds a new button to the menu, “Harvest”. Click it, then click on as many harvestable things as you please. Berries will be picked, trees will be chopped. Works with mods that use the default commands.
  • Berry bushes now display a harvesting icon.
  • Accessible by the hotkey “h”; not configurable at the moment (might come with 2703+). Press Escape to abort.

This is an extremely unpleasant mod, coding-wise, but it works as intended. As mentioned before I’ll re-structure it for hooks and put those into RP unless the next update comes really soon.

2 Likes