Dot Product doesn’t behave like normal function

I am trying to slightly modify the Dot function by treating it like a usual function, but soon I notice something weird about it.

Suppose there is a set set = {λ}, and I want to force Dot[a, λ] (having two arguments) to just print out {a, λ}.

set = {λ};  Unprotect[Dot]; Clear[Dot] Dot[x_, λ_] := Module[{}, Print[{x, λ}]] /; MemberQ[set, λ] Unprotect[Dot];  (* test *) Dot[a, λ] Dot[a, b, λ]  

The two tests print out



{b, λ} {a.b, λ} 


However, the same code for a different function Dott behave completly differently,

set = {λ}; Dott[x_, λ_] :=   Module[{}, Print[{x, λ}]] /; MemberQ[set, λ]  (* tests *) Dott[a, λ] Dott[a, a, λ] 

where the two tests print out {a,λ} and an unevaluated expression Dott[a, a, λ] respectively, and as expected.

I wonder what is going on under the hood (it appears that Dot is trying to exhaust all possible "two-factor product" given any number of dotted factors), and how to properly temper with the Dot product? (my ultimate goal is to adapt it for some non-commutative algebra).

Why doesn’t the Gutenberg code editor allow code to be nested in sections?

I’m trying to add my own HTML code in the Gutenberg code editor, but unfortunately when trying to save the editor automatically moves the closing tag </section> to the end of the first line. What is this about ? Why can’t I nest my code this way normally ? To illustrate the problem I attach a picture.

enter image description here

I would like the section closing tag to be at the end of all code.

Bounce with 2 contacts point doesn’t work without some trick

Sorry in advance for my bad level in english :/

I have the same issue as the one on this topic :

2D physics engine: Impulse based collision response with contact point manifold

I must separate linear and angular impulse resolution, else I don’t have bounce with 2 contacts point. I don’t understand why because I am using the same way like Matter.js

public void SolveVelocity(Pair _pair)         {             if (!_pair.tk_isActive)                 return;                         Vector3 rpA_;             Vector3 rpB_;             //Normal Impulse             float linearImpulse_X;             float linearImpulse_Y;             float angularImpulse_X;             float angularImpulse_Y;             //tangent Impulse             float tangentLinearImpulse_X = 0;             float tangentLinearImpulse_Y = 0;             float tangentAngularImpulse_X = 0;             float tangentAngularImpulse_Y = 0;             Vector3 tangent;             Vector3 _normal = _pair.tk_normal;              int _count = _pair.tk_count;             float J_Scalar;             float JT_Scalar;              float _miA = _pair.tk_bodyA.massI_;             float _miB = _pair.tk_bodyB.massI_;             float _iA = _pair.tk_bodyA.inertiaI_;             float _iB = _pair.tk_bodyB.inertiaI_;             float rv;                        float _uS = (float)Math.Sqrt(_pair.tk_bodyA.uS_ * _pair.tk_bodyA.uS_ + _pair.tk_bodyB.uS_ * _pair.tk_bodyB.uS_);             float _uC = (_pair.tk_bodyA.uC_ * _pair.tk_bodyA.uC_ + _pair.tk_bodyB.uC_ * _pair.tk_bodyB.uC_)/2.0f;             float _elasticity = (_pair.tk_bodyA.tk_elasticity + _pair.tk_bodyB.tk_elasticity) / 2.0f;               Vector3 _positionA = _pair.tk_bodyA.position_;             Vector3 _positionB = _pair.tk_bodyB.position_;              Vector3 _velocityA = _pair.tk_bodyA.velocity_;             float _omegaA = _pair.tk_bodyA.omega_;              Vector3 _velocityB = _pair.tk_bodyB.velocity_;             float _omegaB = _pair.tk_bodyB.omega_;                     for (int c = 0; c < _count; c++)             {                 rpA_ = _pair.tk_contacts[c].tk_position - _positionA;                 rpB_ = _pair.tk_contacts[c].tk_position - _positionB;                                  Vector3 _relativeVelocity = (_velocityB + new Vector3(rpB_.Y * -_omegaB, rpB_.X * _omegaB, 0)) -                                             (_velocityA + new Vector3(rpA_.Y * -_omegaA, rpA_.X * _omegaA, 0));                   float _countInv = 1.0f / (_count);                 float _relativeNormalVelocity = _relativeVelocity.X * _normal.X + _relativeVelocity.Y * _normal.Y;                 rv = _relativeNormalVelocity;                  #region Normal                  J_Scalar = (1 + _elasticity) * _relativeNormalVelocity;// * _count*_count                 float crossNA = (rpA_.X * _normal.Y) - (rpA_.Y * _normal.X);                 float crossNB = (rpB_.X * _normal.Y) - (rpB_.Y * _normal.X);                 float _crossASqr = crossNA * crossNA * _iA;                 float _crossBSqr = crossNB * crossNB * _iB;                                                             float invSum = _miA + _miB + _crossASqr + _crossBSqr;                 float invShareSum = _countInv / invSum;                 float J = J_Scalar * invShareSum;                  if(rv > 0)                 {                     _pair.tk_contacts[c].tk_normalImpulse = 0;                 }                 else                 {                     var contactNormalImpulse = _pair.tk_contacts[c].tk_normalImpulse;                     _pair.tk_contacts[c].tk_normalImpulse = _pair.tk_contacts[c].tk_normalImpulse + J;                     if (_pair.tk_contacts[c].tk_normalImpulse < 0)                         _pair.tk_contacts[c].tk_normalImpulse = 0;                     J = _pair.tk_contacts[c].tk_normalImpulse - contactNormalImpulse;                 }                 /* if(contactNormalImpulse !=0)                 {                      int i = 0;                     J += i;                 }*/                  linearImpulse_X = (J) * _normal.X;                 linearImpulse_Y = (J) * _normal.Y;                 angularImpulse_X = (J) * _normal.X;                 angularImpulse_Y = (J) * _normal.Y;                  #endregion                                 #region Impulse                 //if (rv > 0)                 {                     Vector2 totalImpulseLinear = new Vector2(linearImpulse_X, linearImpulse_Y) + 0 * new Vector2(tangentLinearImpulse_X, tangentLinearImpulse_Y);                     Vector2 totalImpulseAngular = new Vector2(angularImpulse_X, angularImpulse_Y) + 0 * new Vector2(tangentAngularImpulse_X, tangentAngularImpulse_Y);                      if (!(_pair.tk_bodyA.is_Sleeping || _pair.tk_bodyA.Is_Static))                     {                          _pair.tk_bodyA.oldPosition_.X -= totalImpulseLinear.X * _miA;                         _pair.tk_bodyA.oldPosition_.Y -= totalImpulseLinear.Y * _miA;                         _pair.tk_bodyA.oldTheta_ -= (rpA_.X * totalImpulseAngular.Y - rpA_.Y * totalImpulseAngular.X) * _iA;                     }                     if (!(_pair.tk_bodyB.is_Sleeping || _pair.tk_bodyB.Is_Static))                     {                         _pair.tk_bodyB.oldPosition_.X += totalImpulseLinear.X * _miB;                         _pair.tk_bodyB.oldPosition_.Y += totalImpulseLinear.Y * _miB;                         _pair.tk_bodyB.oldTheta_ += (rpB_.X * totalImpulseAngular.Y - rpB_.Y * totalImpulseAngular.X) * _iB;                     }                 }                 #endregion              }          } 

Thx in advance for your advise

My CSS suddenly doesn’t load anymore

I’ve did some small changes on my CSS, nothing crazy, uploaded them to my website. Cleared my cache and suddenly, the website doesn’t show my custom styles.


My styles are included in the enqueue.php file, but it always worked.

if (!function_exists('understrap_scripts')) {     /**      * Load theme's JavaScript and CSS sources.      */     function understrap_scripts()     {         // Get the theme data.         $  the_theme = wp_get_theme();         $  theme_version = $  the_theme->get('Version');          wp_enqueue_style('slider-slider-styles', '');         wp_enqueue_style('lity-style', '');         $  css_version = $  theme_version . '.' . filemtime(get_template_directory() . '/css/theme.min.css');         wp_enqueue_style('understrap-styles', get_stylesheet_directory_uri() . '/css/theme.min.css', array(), $  css_version);          }     } } // endif function_exists( 'understrap_scripts' ).  add_action('wp_enqueue_scripts', 'understrap_scripts', 10); 

If I check my source code in the browser, it seems that the slider-slider-styles and lity-style are loaded, but not my styles "understrap-styles".

The file is available on the server because I can directly open the file in my browser.

Is there another +1 Charisma feat for a half-elf warlock who doesn’t want to be a “face”?

My half-elf warlock has 16 Charisma, and I’m considering taking the Elven Accuracy feat (XGtE, p. 74), which would boost his Charisma to 17. Since I definitely want 20 Charisma eventually, a +2 Cha ASI and a second +1 Cha feat would get me there.

However, every other feat I can find that offers +1 to Charisma falls into one of three categories:

  • Specific to some other race (e.g. Dragon Fear for dragonborn, from XGtE p. 74)

  • Redundant for a warlock (i.e. Resilient choosing Charisma, from PHB p. 168)

  • Related to being a “face” character (e.g. Actor, from PHB p. 165)

Since I am a half-elf warlock, and I’m not really looking to be a face character, these options seem to run counter to the sort of character I’m trying to build. Are there any other options? Charisma for my warlock is all about “spirit” and magic.

Any Wizards of the Coast material, including Unearthed Arcana, might be considered here.

rest_sanitize_value_from_schema doesn’t sanitize string

This is a part of a simplified piece of code. It accepts a JSON post, validates it against a schema and if ok, sanitize the JSON structure

$  schema = array(         'type'       => 'object',         'properties' => array(             'email' => array(                 'type'   => 'string',                 'format' => 'email',             ),             'name'  => array(                 'type' => 'string',             ),         ),     );      $  json = json_decode( '{"email":"","name":"John <script>x.js</script>Doe"}', true );      $  result = rest_validate_value_from_schema( $  json, $  schema );     if ( is_wp_error( $  result ) ) {         echo 'Error';         die();     }      $  clean = rest_sanitize_value_from_schema( $  json, $  schema ); 

I’m expecting that the <script>x.js</script>part is stripped from the JSON-name field in ‘rest_sanitize_value_from schema’, but its not happening.

Looking into the function ‘rest_sanitize_value_from_schema’ on trac (rest-api.php lines 2471) it’s obvious why it is not sanitized because all strings are just casted to string!?

if ( 'string' === $  args['type'] ) {     return (string) $  value; } 

Is it me doing something wrong or is it a bug in ‘rest_sanitize_value_from_schema’.

spam filter for contact-form.php doesnt work

I am trying in vain to include SPAM protection in the contact form … Can someone help me with this? It’s just getting worse with the spam messages! Google Recaptcha does not work … the checkout field is displayed, but no matter whether it is confirmed or not, the messages go out. Unfortunately, this is also the case with other plugins. In principle, a "simple" // "invisible" query would be enough for me. Most bots should fall for it … But I just don’t get it involved. I uploaded the original_code to github. Below is a file with "invisible" spam protection ….

/* ........................................................... Template Name: Kontaktformular * * * @file           contact-form.php * @filesource     wp-content/themes/handwerk/contact-form.php ............................................................ */ ?>  <?php  $  data = get_option('bo_options'); $  response = isset( $  data['contact']['bo_contact_response'] ) ? $  data['contact']['bo_contact_response'] : null; $  recipient = isset( $  data['contact']['bo_formmail_address'] ) ? $  data['contact']['bo_formmail_address'] : null; $  shdata = isset( $  data['contact']['bo_show_dataprot'] ) ? $  data['contact']['bo_show_dataprot'] : null; $  datalink = isset( $  data['contact']['bo_dataprot_page_url'] ) ? $  data['contact']['bo_dataprot_page_url'] : null; $  bloginfo = get_bloginfo('admin_email'); if ($  recipient == '') { $  rec = $  bloginfo; } else { $  rec = $  recipient; } $  sub = isset( $  data['contact']['bo_formmail_subject'] ) ? $  data['contact']['bo_formmail_subject'] : null; $  offerinfo = isset( $  data['contact']['bo_offer_info_text'] ) ? $  data['contact']['bo_offer_info_text'] : null;  if(isset($  _POST['submitted'])) {     if(trim($  _POST['checking']) !== '') {         $  captchaError = true;     } else {         if(trim($  _POST['contactName']) === '') {             $  nameError = __('Bitte tragen Sie Ihren Namen ein','bobox');             $  hasError = true;         } else {             $  name = trim($  _POST['contactName']);         }         $  phone = trim($  _POST['phone']);             $  subject = trim($  _POST['subject']);             if(isset($  _POST['objectName'])) {                 $  objectname = trim($  _POST['objectName']);             }         if(trim($  _POST['email']) === '')  {             $  emailError = __('Sie haben vergessen, eine E-Mail Adresse einzutragen');             $  hasError = true;         } else if (filter_var(trim($  _POST['email']), FILTER_VALIDATE_EMAIL))  {         $  email = trim($  _POST['email']);          } else {             $  emailError = __('Sie haben eine ungültige E-Mail Adresse eingetragen');             $  hasError = true;         }                  if(trim($  _POST['comments']) === '') {             $  commentError = 'Sie haben vergessen, eine Nachricht einzutragen';             $  hasError = true;         } else {             if(function_exists('stripslashes')) {                 $  comments = stripslashes(trim($  _POST['comments']));             } else {                 $  comments = trim($  _POST['comments']);             }         }         if(!isset($  hasError)) {              $  emailTo = $  rec;             $  msubject = $  sub;             $  body = " \n\nEine Anfrage zum Thema: $  objectname  \nvon:\nName: $  name \nEmail: $  email \nBetrifft: $  subject \nTelefon: $  phone \n\nNachricht: $  comments ";             $  headers = 'From: <'.$  emailTo.'>' . "\r\n" . 'Reply-To: ' . $  email. "\r\n";             $  headers .= "MIME-Version: 1.0\r\n";                 $  headers .= "Content-type: text/plain; charset=utf-8\r\n";                 $  headers .= "Content-Transfer-Encoding: 8bit";                          mail($  emailTo, $  msubject, $  body, $  headers);                           $  emailSent = true;          }     } } ?>   <?php get_header(); ?>                                   <div id="page-entry">                           <?php if(isset($  hasError) || isset($  captchaError)) { ?>         <h1>Sorry, <?php echo $  name;?></h1>             <p class="error">Bei der &Uuml;bermittlung hat es einen Fehler gegeben!<p>         <?php } ?>                                   <?php if(isset($  emailSent) && $  emailSent == true) { ?>      <div class="thanks">         <h2>Vielen Dank, <?php echo $  name;?></h2>         <p><?php echo $  response; ?></p>     </div>  <?php } else { ?>      <?php if (have_posts()) : ?>          <?php while (have_posts()) : the_post(); ?>                            <h1 class="post-title"><?php the_title(); ?></h1>                             <div class="contact-content">                  <?php the_content(); ?>                  <?php include ("google-map-iframe.php"); ?>         </div><!-- eof contact content -->                               <div class="contactform">           <?php if(isset($  _POST["object-title"])) { ?>         <div class="selected-offer">                               <p><?php echo $  offerinfo; ?> <a href="<?php echo $  _POST["object-link"] ?>"><?php echo $  _POST["object-title"] ?></a></p>                          </div>         <?php } ?>                        <form action="<?php the_permalink(); ?>" id="contactForm" method="post">           <div class="formcolumn"> <label for="contactName"><?php echo __('Ihr Name','bobox'); ?>*:</label><input required="required" type="text" name="contactName" id="contactName" value="<?php if(isset($  _POST['contactName'])) echo $  _POST['contactName'];?>" class="requiredField" /><?php if(isset($  nameError)) { if($  nameError != '') { ?><span class="error"><?php echo $  nameError;?></span> <?php } } ?>                            <label for="subject"><?php echo __('Betrifft','bobox'); ?>:</label>   <input type="text" name="subject" id="subject" value="<?php if(isset($  _POST['subject']))  echo $  _POST['subject'];?>" class="email" /> </div>          <div class="formcolumn">                  <label for="email"><?php echo __('Ihre E-Mail Adresse','bobox'); ?>*:</label>             <input required="required" type="text" name="email" id="email" value="<?php if(isset($  _POST['email']))  echo $  _POST['email'];?>" class="requiredField email" />                     <?php  if(isset($  emailError)) { if($  emailError != '') { ?>                         <span class="error"><?php echo $  emailError;?></span>                     <?php } }?>            <label for="phone"><?php echo __('Ihre Telefonnummer','bobox'); ?>:</label>   <input type="text" name="phone" id="phone" value="<?php if(isset($  _POST['phone']))  echo $  _POST['phone'];?>" class="email" />     </div>                 <div class="clear"></div>                                            <label for="commentsText"><?php echo __('Ihre Nachricht','bobox'); ?>*:</label>                     <textarea required name="comments" id="commentsText" rows="10" cols="30" class="requiredField"><?php if(isset($  _POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($  _POST['comments']); } else { echo $  _POST['comments']; } } ?></textarea>                     <?php if(isset($  commentError)) { if($  commentError != '') { ?>                         <span class="error"><?php echo $  commentError;?></span>                      <?php } } ?>                                       <?php  if(isset($  shdata) && $  shdata == 'yes') { ?>  <div class="wr clearfix">                     <input required="required" type="checkbox" name="contactData" id="contactData" value="true"<?php if(isset($  _POST['contactData']) && $  _POST['contactData'] == true) echo ' checked="checked"'; ?> /><label class="shortleft agreelabel" for="contactData"><?php  echo sprintf( __( 'Ja, ich habe die <a target="_blank" href="%s">Datenschutzerkl&auml;rung</a> gelesen und bin damit einverstanden, dass meine Daten elektronisch erhoben und gespeichert werden. Meine Daten werden ausschlie&szlig;lich zweckgebunden zur Bearbeitung meiner Anfrage genutzt.', 'bobox' ), $  datalink ); ?>*</label></div><?php } ?>                                                <div class="screenReader" style="left: -9999px; position: absolute; top: -9999px;"><label for="checking" class="screenReader">If you want to submit this form, do not enter anything in this field</label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($  _POST['checking']))  echo $  _POST['checking'];?>" /></div>                   <input type="hidden" name="objectName" id="objectName" value="<?php if(isset($  _POST["object-title"])) { echo $  _POST["object-title"]; } ?>" class="readonly " />                 <input type="hidden" name="submitted" id="submitted" value="true" />                  <button type="submit"><?php echo __('Nachricht jetzt absenden','bobox'); ?></button>                                                 </form>     </div>            <?php endwhile; ?>     <?php endif; ?> <?php } ?>     <div class="clear"></div> </div>     </div><!-- eof content -->  <?php get_footer(); ?> 

and here is "actually" a simple invisible checkbox.

$  errors = array();  //Prüfen ob Formular abgesendet if(isset($  _POST['submit'])) {          //Spamcheck mit jedem neuem Absenden zurücksetzen     $  spamcheck = false;       //Spamcheck     if(!empty($  _POST["repeat_email"]) || isset($  _POST["terms"])) {         $  errors[] = "Zusatzfelder wurden ausgefüllt, wir vermuten Spam und brechen hier ab.";        } else {         $  spamcheck = true;     }      // Eingaben Validieren     if($  spamcheck = true) {           if(empty($  _POST['name'])) { //Wenn Name leer             $  errors[] = "Bitte geben Sie Ihren Namen an";         }                  if(empty($  _POST['email'])){ //Wenn Email leer             $  errors[] = "Bitte Emailadresse angeben";         } elseif (filter_var($  _POST['email'], FILTER_VALIDATE_EMAIL) == false) { //Emailformat überprüfen ab PHP 5.2             $  errors[] = "Bitte geben Sie ein gültige Emailadresse an";         }                          if(empty($  _POST['message'])){ //Wenn Nachricht leer             $  errors[] = "Bitte geben Sie Ihre Nachricht ein";         }          if(!isset($  _POST["gender"])){ //Wenn Spamcheck nicht markiert             $  errors[] = "Bitte bestätigen Sie den Spamcheck";         }                 }      if(isset($  _POST['submit']) && empty($  errors) && $  spamcheck == true) {         // Spamtest bestanden, alle erforderlichen Felder richtig ausgefüllt         // Eintrag in Datenbank oder Email Versand         echo "Alles richtig gemacht";     }  } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns=""> <head>  <title>Tutorial: PHP Formular Spamschutz und Validierung – Spam Emails verhindern auch ohne Captcha</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      <script src=""></script> <script type="text/javascript"> $  (document).ready(function(){     $  ('.terms').append('<input type="text" name="repeat_email" value="test" />'); }); </script>  <style>     /*Demo Formular Styles*/     label { display:inline-block; width:100px; }     input { padding:5px; width:300px; }     input[type="checkbox"] { width:20px; margin-right:10px; }     textarea { width:410px; }        .terms { display:none; } </style>    </head>  <body>        <h2>Demo: PHP Formular Spamschutz und Spamabwehr ohne Captcha</h2>     <p><a href="">Zum Blogartikel &raquo;</a></p>          <noscript>Bitte aktivieren Sie Javascript zum Absenden des Formulars oder nutzen Sie eine der alternative Kontaktmöglichkeiten unter</noscript>        <?php if(isset($  _POST['submit']) && empty($  errors) === false) {?>       <div style="background:#FCC">           <strong>Bitte überprüfen Sie Ihre Angaben!</strong><br />           <?php echo '<ul><li>'.implode('</li><li>',$  errors).'</li></ul>'; ?>       </div>       <?php } ?>                          <form id="phpform" method="post" action="formular-spamschutz.php">              <p><label for="name">Name<span>*</span></label>             <input type="text" name="name" value="<?=(isset($  _POST['name'])) ? $  _POST['name'] :''?>"></p>              <p><label for="email">Email<span>*</span></label>             <input type="text" name="email" value="<?=(isset($  _POST['email'])) ? $  _POST['email'] :''?>"></p>              <p><label for="message">Nachricht<span>*</span></label><br />             <textarea name="message" rows="8"><?=(isset($  _POST['message'])) ? $  _POST['message'] :''?></textarea></p>              <p><input type="checkbox" name="gender" <?=(isset($  _POST['human'])) ? "checked='checked'" : ''?>><span>*</span> Ich versende keinen Spam</p>              <p><input type="submit" name="submit" value="Absenden"></p>              <div class="terms">             Folgende Felder bitte frei lassen!             <input type="checkbox" name="terms">             </div>                   </form>         <p><a href="" target="_blank">Made with love by - Rico Loschke</a></p>  </body> </html> ``` 

How to deal with player who won’t roleplay, insists character-friction is bad, and doesn’t take the game seriously?

Edit- I’d browsed most of problem-players and still felt we needed more info, or more allegorical advice from experienced gamers but am now seeing stuff in gm-techniques I had missed that is somewhat relevant, if this question is redundant then I won’t begrudge it being moderated and locked or deleted, but I would still like to request some more specific advice.

I know this is a bit of an amalgamation of other similar questions on here, but this feels a little more of a specific case. The GM encouraged me to post this here to try and get some advice since we’re both kind of stumped.

I’m a player in a 3-person group (four including the gM) playing the modern Conan game. Three of us are close friends and the third party member is the girlfriend of the other party member, which is to say that this is a tight group and "booting someone from the game" is basically the nuclear option where me and the GM would potentially fracture off and form a new group with people we know, the least preferable option all things considered.

We’re continuously getting in to arguments about how the game should be played and how roleplaying and mechanics should work (specifically the more vague "non-dice roll" mechanics). The problem party member is consistently at arms with me when I insist that we should be in character more often, or that I’m not "acting in character", or that he doesn’t understand my character (which the GM understands very well, it’s just not a one-dimensional character like his is winding up to be), or that "it won’t be fun if your (my) character has a fleshed out backstory and the GM just turns it into an adventure about your guy."

The problem here is that the GM has pretty specifically stated that this is a "Roleplaying" game and the entire purpose of us playing this is to roleplay. When I (and the gm backs me up) suggest we should try and stay more in character, and use out of character chat more specifically, he basically said that it’s "cringe and I’m not going to go "OOC!!!!!" to talk about things." The problem here is that him and his girlfriend spent literally an hour and a half arguing over a plan in a very split second sort of hostage negotiation where I was set aside to ambush in case things go wrong. After everyone was clearly getting fed up with him trying to hatch some scheme where we come out on top with every reward and absolutely no bad things on our end I roleplay my guy coming up and basically ending the negotiation preemptively with a demand and ultimatum. I do this without consulting them, hoping to throw in some "surprise" to the entire thing. This goes over horribly and results in a huge fight over "we’re a team and we HAVE to always work together." The girlfriend has never played a tabletop and is sort of only here because he is, so she takes his side heavily and insists we have to always have perfect group cohesion or come to a mutual agreement before acting.

The problem with this is that the problem player in question constantly acts of his own accord without consideration for anyone else, but he’s almost never actually roleplaying. His character so far has consisted almost solely of acting like a toddler (playing "keep away" with an amulet an NPC is demanding back that he had stolen and acting confused that she isn’t "friends" with his character despite the fact that we basically murdered the entire group she was with before this). Of note is that he basically kidnapped this NPC for no in character reason just to "see what would happen."

During this amulet keep away, I once again try to have my character swoop in and grab the amulet away and toss it to the NPC and give him some light knock on the head and a quip about "If it’s baubles you want, I’ll treat you to some, let’s keep moving." I tried using advice I’d found in similar questions on here to encourage him to roleplay the situation, or do a pvp skill test to resolve the situation, but he got livid and insisted it was terrible and both him and his girlfriend compared it to "stealing from player characters at night with no consequences," a thing that both the GM and I rebuked were not remotely similar at all, as one was directly encouraging roleplay and in-group friction that isn’t necessarily conflicting. I even offered a friendly "out" for him to benefit by offering to buy him things at the market.

Because of him acting like this, and constantly challenging both me and the GM (for instance his character sheet was very wrong because he didn’t read anything in creation and just sped through in 15 minutes [it took me 4 hours and even took the GM like an hour to make a random gen character], but he got pouty about the fact that the GM said he had to rebalance it to be not broken), his girlfriend is basically staying silent and not roleplaying at all, despite having implied that she was interested in trying to get in to her backstory.

In addition, the GM has specifically requested us to give him a fleshed out backstory for incorporating story elements along the lines, to which he insists is "not fun and it’s more fun to make things up and develop our characters from a blank sheet as we go." Which is to say he basically wants to play a video game where nothing matters.

The biggest problem here is that he is the one who was the most insistent on wanting to play a tabletop RPG, but he both says he doesn’t want it to be "combat focused", but also consistently refuses to engage with roleplay in any meaningful way, and actively fights against it if anything happens that isn’t the literal perfect outcome for his character outside of dice rolls.

Sorry for the long post, but this feels like a pretty complex situation considering his girlfriend is constantly getting annoyed with him despite her always taking his side on things that the GM takes my side on, and it’s ruining the fun for everyone in different ways. The GM constantly has no idea how to handle the situation because his character is acting like a toddler, his girlfriend is bored out of her mind because he constantly overtakes any attempts of ours to have character agency, and I’m having no fun because I’m constantly being told to just not play my character and be a mindless video game companion character.

Is there any way for us to salvage this situation? Any last ditch efforts to try? Do we ultimately just have to have the GM message him and say "this is how I want to play the game, please take it more seriously or we will just have to stop"? The GM set up scenarios that will hopefully encourage him to roleplay, and I’ve been trying to stay in character (and the GM says he will force an in character resolution, instead of bending to his will that it’s not what he wants to happen, or at least a dice roll one, the next time there is friction between his and my character) in order to try and encourage him to roleplay.

Edit for clarity and as a TL;DR – The problem here is basically that the player refuses to actually get in to character, insists that "roleplaying is cringe" despite being the one who specifically wanted to play this game and said he didn’t want it to be a "combat exclusive" adventure (ie lots of roleplaying). He’s hostile towards anything not going his way or any "trolley car" situations he can’t BS his way into derailing the trolley car to save everyone and also find 5 gold on the ground. Any friction (that the GM says is good and interesting) between player characters is taken as a personal offense by him and leads to fighting between me and the GM and him and his girlfriend. He refuses to develop any sort of backstory for his character and is dragging down the entire party, but the group will stop existing without him since his gf would leave, so we’d like suggestions on how to push him in to actually roleplaying / taking things a bit more seriously and treating it less like he’s the protagonist of Oblivion or something.

The GM is linked to this question per his request, so any GM specific advice for him or player specific advice for me are both welcomed.

Some wordpress plugins doesn’t work so well on external php page outside wordpress?

I am using some php pages (outside wordpress)

The page name :

Test.php in the path (www)

I used

require_once('wp-load.php');  include('wp-config.php'); get_header(); 

The problem is that there are some plugins that doesn’t work probably in these pages, is there anyway to define these pages as a wordpress page ?

Method for playing an online text-based RPG that doesn’t require everyone to be online at once?

I am contemplating starting up a web-based text game for my D&D group to be played alongside our weekly sessions. The idea would be to play through events related to the main storyline, but not so involved that the outcomes would directly affect our current adventure.

I don’t want to require everyone to be online at once (or else this is just another session), so IRC and chatrooms are out. I am looking for a method that allows us to play at a slow pace but gives everyone a chance to respond to what the GM says before moving onward with the story or the combat.

The only idea that comes to mind is a forum-based game with heavy restrictions (e.g. each player must post a response or opt out of responding before the GM posts again). For combats I would post maps with the position of all the monsters and characters between each turn.

Does anyone have any experience running a game like this?

What’s the best way to run a web-based text RPG in such a way that not all players need to be online at the same time?