Unisystem

If you have searched the other User Creations subforums and an answer to your question has not been found, please post here!

Moderators: dorpond, trevor, Azhrei, Gamerdude

Post Reply
Vulgar
Kobold
Posts: 7
Joined: Sun Jul 13, 2014 11:26 am

Unisystem

Post by Vulgar »

Get ready for a story.

So there isn't a whole lot of support for Unisystem here or.. much of anywhere. I get it. I understand why. I don't approve. xD But I understand.

I'm far from what you'd consider a coder, but I've decided that RPTool needs a Unisystem framework. I've stumbled across a few things already, but as with most things on this site it was old and out-dated.

Regardless, what I found was quite helpful. Unisystem is a very simple game, it has as few system mechanics as possible without sacrificing detailed gameplay, I'd like to think.

The core mechanic is (d10 + attribute + skill - difficulty modifier) vs the Success Table.

Easy enough, right?

Then the dice explode.

Unisystem rerolls 1's and 10's any time they are rolled naturally and then subtracts five from the result and tacks it onto your previous roll. This can continue forever if your luck bends in one direction or another.

This was an issue 'cause I'm not a coder and I'm stuck looking at boolean loops, if-then statements, an excessive amount of variables, linking tables, all sorts of things I cannot wrap my feeble mind around. I'm a writer, not a programmer.

aliasmask solved this for me, though. Or so I thought. He provided a library token with a "uniRoll" macro attached that, with minor editing, I was able to get to work how I needed. (I later found out it was an unnecessary edit as I learned how to call the macro...)

I find that windows no longer has an issue with the newer editions of maptool (don't ask, still dunno why it wasn't..), so I move from 1.3b87 to 1.3b90 because I have aspirations of using the Bag of Tricks... But on 90, aliasmask's uniRoll no longer works. Now the "framework" (I hesitate to use the word because I'm barely along in my quest) that I've written up around uniRoll no longer works. I have no idea why.

I am honestly not cut out for this. xD I'd like a bit of help, please. Here is a link to the original thread featuring uniRoll. It can be downloaded near the bottom of the page.

http://forums.rptools.net/viewtopic.php?f=20&t=18742

This is the result I get from using:

Error in body of roll.
Statement options (if any): H
Statement Body: roll = uniRoll()



If I could get this to work on Maptool 1.3b90, then all I would really need to complete the simple "framework" for the core mechanics (I don't plan to add equipment and the like unless this gets quite a bit easier as I progress) would be to find a way for a player's roll to question the DM for the modifier needed. If that's impossible I can trust my players to enter the proper amount but it would be a nice function.

Any help at all would be appreciated. x_x

P.S. Kudos to all of you guys who've stuck through this and are producing all of these amazing results I've been seeing. Great job!

User avatar
Bone White
Great Wyrm
Posts: 1124
Joined: Tue Aug 23, 2011 11:41 am
Location: Cornwall, UK

Re: Unisystem

Post by Bone White »

Works without error as is for me, using b90 (bear in mind there are many versions of b90 and mine is old).

find a way for a player's roll to question the DM for the modifier needed. If that's impossible I can trust my players to enter the proper amount but it would be a nice function.


Very possible, you can put a link in the chat for the GM to click to input the modifier, or if you want to get fancy/complex, it can automatically popup for the GM. See [wfunc]macroLink[/wfunc]

User avatar
wolph42
Deity
Posts: 9853
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Unisystem

Post by wolph42 »

Bone White wrote: (bear in mind there are many versions of b90 and mine is old).


No! There is only one version!! There are branches and those are called differently and I've very recently added a version b91-beta. But b90 == b90. Old or not.

@vulgar: there is a log.txt in the user\name\.maptool directory. Could you provide this as well.

edit: I just tested the macro and they all work. So its something on your end. The log would greatly help, though before you send it: delete it first, then start maptool, run the culprit macro and then send the log over. If it turns out empty, you need to replace the:
"logging.xml" found in the .maptool directory with "macros-logging.xml" found in the maptool-b90.zip (in the logging directory). Note that you have to rename "macros-logging.xml" to "logging.xml". The (re)start maptool once more and try the macro again.

Also, you could check in the meantime:
- edit macro
- go to options tab
- make sure that 'allow players to edit macro' is turned OFF

as for your request, as BW said, doable, but not really easy, actually its quite complex if you want to do it right.

Point is:
macro X is lets say: 1d10+GM_Modifier
- players Tim executes macro X
- now to get the GM_mod, macro X needs to send a command to your/GM PC/client
- on the GM client another macro is executed, requesting for a GM_mod for player Tim's roll
- GM enters mod.

So far its doable, but now the mod needs to be send back AND it needs to be applied to the roll...

- the sending back can be done by a macro, which executes on players Tim pc BUT he has already macro X running, so thats no go. Hence you store that value on lib:uniroll where macro X can retrieve it
- The issue here is: HOW does macro X *know* when you have given the mod,
- The *other* issue here is: HOW do you let macro X 'wait'? cause that's not really possible in MT
--> one way I found is a while loop:
1. make sure that the value (e.g. gm_mod) on lib:uniroll is empty: ""
2. send request to GM client
3. while (gm_mod on the lib:uniroll remains empty wait) problem with that one is that you completely lock-down the players pc and if something goes wrong the player is in an endless while loop. So you need to break that loop with an input request whith which you can cancel the while loop. So the player gets some pop-up with: 'press ok to continue (after you GM has set the mod)'.
4. after the gm has set the mod, the while can continue, value can be retrieved from lib:uniroll and applies to the roll.

so: a bit complex to do.

User avatar
Full Bleed
Demigod
Posts: 4560
Joined: Sun Feb 25, 2007 11:53 am
Location: MD
Contact:

Re: Unisystem

Post by Full Bleed »

Vulgar wrote:Now the "framework" (I hesitate to use the word because I'm barely along in my quest) that I've written up around uniRoll no longer works. I have no idea why.

This is the result I get from using:

Error in body of roll.
Statement options (if any): H
Statement Body: roll = uniRoll()


You're going to have to share the framework or specific code that is failing.
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

User avatar
wolph42
Deity
Posts: 9853
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Unisystem

Post by wolph42 »

Full Bleed wrote:
Vulgar wrote:Now the "framework" (I hesitate to use the word because I'm barely along in my quest) that I've written up around uniRoll no longer works. I have no idea why.

This is the result I get from using:

Error in body of roll.
Statement options (if any): H
Statement Body: roll = uniRoll()


You're going to have to share the framework or specific code that is failing.


he did. checked it. it works!

User avatar
Full Bleed
Demigod
Posts: 4560
Joined: Sun Feb 25, 2007 11:53 am
Location: MD
Contact:

Re: Unisystem

Post by Full Bleed »

wolph42 wrote:he did. checked it. it works!

The code in his link to the other thread works.

But he went on to say:

Now the "framework" (I hesitate to use the word because I'm barely along in my quest) that I've written up around uniRoll no longer works. I have no idea why.

That tells me that how he's using it or how he has implemented it is leading to the error he mentions in *this* thread.

Hence the reason why he should share the framework that is throwing the actual error. Being told "it works" when he's getting an error isn't really solving the problem for him.
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."


Vulgar
Kobold
Posts: 7
Joined: Sun Jul 13, 2014 11:26 am

Re: Unisystem

Post by Vulgar »

wolph42 wrote:as for your request, as BW said, doable, but not really easy, actually its quite complex if you want to do it right.

Point is:
macro X is lets say: 1d10+GM_Modifier
- players Tim executes macro X
- now to get the GM_mod, macro X needs to send a command to your/GM PC/client
- on the GM client another macro is executed, requesting for a GM_mod for player Tim's roll
- GM enters mod.

So far its doable, but now the mod needs to be send back AND it needs to be applied to the roll...

- the sending back can be done by a macro, which executes on players Tim pc BUT he has already macro X running, so thats no go. Hence you store that value on lib:uniroll where macro X can retrieve it
- The issue here is: HOW does macro X *know* when you have given the mod,
- The *other* issue here is: HOW do you let macro X 'wait'? cause that's not really possible in MT
--> one way I found is a while loop:
1. make sure that the value (e.g. gm_mod) on lib:uniroll is empty: ""
2. send request to GM client
3. while (gm_mod on the lib:uniroll remains empty wait) problem with that one is that you completely lock-down the players pc and if something goes wrong the player is in an endless while loop. So you need to break that loop with an input request whith which you can cancel the while loop. So the player gets some pop-up with: 'press ok to continue (after you GM has set the mod)'.
4. after the gm has set the mod, the while can continue, value can be retrieved from lib:uniroll and applies to the roll.

so: a bit complex to do.


Wow. That's all I can say to that. Wow. xD I'll just trust my players to enter the right modifer, with tooltip I can mouse over and double check if I'm feeling unsure.

Full Bleed wrote:Hence the reason why he should share the framework that is throwing the actual error. Being told "it works" when he's getting an error isn't really solving the problem for him.


I ended up getting uniRoll to work. The issue I was having was the "if any" statement and a few other parts, I suppose. I'm still not entirely sure why it wasn't working but now that I've learned how to call uniRoll() from a macro, all is good. Things now work, even on b90.

Did you guys test the test button by chance?

I didn't think I'd get such a quick or plentiful response. xD But thank you guys. I'll upload the framework if you like, it's not much to look at.

https://www.dropbox.com/sh/ovfdof7r6fbjsei/AAD44uGnxEJeNpUZpUwrxYoNa

I think that'll get you there? UniSuck is the broken version, UniSys is currently working. Not entirely sure why this is. xD I copied the uniRoll library token to the new map and.. it broke.

I'm fine with using a frontpage, it's probably for the best anyhow. Also. While I've got your attention... is there any way I'd be able to move my map? It is made mostly of drawings... I haven't had any luck so far and from what I've seen.. the only method out there is a whole lot of work.

Vulgar wrote:The core mechanic is (d10 + attribute + skill - difficulty modifier) vs the Success Table.


Also, how would I call a table to compare the final result and produce a Success Level?

Roll - Success Level
9-10 --- 1
11-12 -- 2
13-14 -- 3
15-16 -- 4
17-20 -- 5
21-23 -- 6
24-26 -- 7
27-29 -- 8
30-32 -- 9
33-35 -- 10
+3 ----- +1
Last edited by Vulgar on Wed Jul 23, 2014 10:15 am, edited 2 times in total.

Vulgar
Kobold
Posts: 7
Joined: Sun Jul 13, 2014 11:26 am

Re: Unisystem

Post by Vulgar »

EDIT:

On second thought, I've got another question. xD Sorry!

Would there be any way I could output the uniRoll result to a variable, display that result, then continue with uniRoll's exploding dice macro? I tried changing it from hidden but this does nothing. It's not a huge deal, it'd just be nice to see exactly when you get a critical and the entire process of the d10's roll.

As it is, from time to time you will get a solid 10 after modifiers, which only happens when you roll a nat10 then follow it with a 5. While it shouldn't be confusing for the players, it'd just be nice to see the results as the d10 rolls.

User avatar
wolph42
Deity
Posts: 9853
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Unisystem

Post by wolph42 »

first off, you can edit your posted post, there's an edit button for that.

'how to move the map': That question can probly be interpreted in 5 different ways. So ill give answer to one interpretation: you click with your right mouse button on the map and then drag it around.

'call a table': assuming the table is called 'final result':

Code: Select all

 [roll = 18][successLevel = table("final result", roll)]

When creating that table, make sure that ALL the numbers are there, you can use ranges, but if you call

Code: Select all

[successLevel = table("final result", 3)]
you'll get an error, im guessing 0-8-->0 should cover it.

'showing the result':

Code: Select all

[h:result = 1d10]
Resultin roll is [r:result]


like that?

Vulgar
Kobold
Posts: 7
Joined: Sun Jul 13, 2014 11:26 am

Re: Unisystem

Post by Vulgar »

I was going to edit my post but they were waiting on mod approval. >_> I figured the mod would see them both and mash them together. And now I don't see where to delete my second post. xD

Anyhow...

That did indeed work! I simply added the table and this code to the end of my macro:

Code: Select all

[table("Success Table", roll)]


Exactly what I needed and that little bit of knowledge will be stored away for future exploitation. xD

As for moving the map...

What I meant was that I used the Draw tool and drew my map well away from the spawn point. I'd like to move all of the drawings a huge distance without having to redraw them. (This problem came from zooming out and zooming back in on a blank map without realizing I'd just greatly offset myeslf by doing so.)

If you look at the UniSuck campaign I attached you'll see the issue. It also features the issue I was having in my first post.

Btw, Wolph, amazing job on the lighting codes. It looks great and I'm trying to teach myself how to work that, too. xD But that's an issue I'm seeing some progress with. Slow and tedious progress, but sweet never-the-less.


EDIT:

Anybody who knows Unisystem and checks that out will see that the skill list is neither Cinematic or Classic. It is what I like to consider a happy medium between the two. A lot of thought has went into what skills to cut and which to keep, but in my opinion 50 is too many and 15 is too few.

There's a lot of debate over the skill list out there, so I'll let you take that how you will. It's a homebrew skill set that I think covers everything needed for the game I'm going to run.

I plan on trying to make this framework as flexible as the Unisystem is, which... Unisystem has a lot of games with slightly varying takes on the core rules, mostly a bunch of name-changes but there are some scaling problems as well. So to do a real framework with it would be to focus on one of those or to do all of them... and I don't want to do either.

But with the core mechanics virtually matching I plan to handle those and add more as I learn how to do more.

What way would you suggest to set up weapons, armor and other loot? For calling for damage and ranges and the like. ...keeping in mind that I'm not a coder in the least. xD (I needed an HTML cheat sheet to remind me how to make a horizontal line!) So I'd say if json has a strong learning curve.. that's probably out of the question. Then again, what I need to do with it is fairly simple, I'd guess... So I dunno.

Post Reply

Return to “Requests for HELLLLP!”